在 H5 页面和 uniapp 小程序之间进行数据通信可以使用以下方法:
- URL 参数传递
在 H5 页面中使用 URL 参数来传递数据,然后在小程序中使用 uni.getLaunchOptionsSync() 或者 onLaunch/onShow 生命周期函数来获取 URL 参数中的数据。
在 H5 页面中:
window.location.href = 'uniapp://example.com?data=xxx'
在小程序中:
var options = uni.getLaunchOptionsSync()
var data = options.query.data
- localStorage
在 H5 页面中使用 localStorage 来存储需要传递的数据,然后在小程序中使用 uni.getStorageSync() 或者 uni.setStorageSync() 来获取或设置 localStorage 中的数据。
在 H5 页面中:
localStorage.setItem('data', 'xxx')
在小程序中:
var data = uni.getStorageSync('data')
- Uni-app EventChannel
Uni-app 提供了 EventChannel 来进行页面之间的通信。在 H5 页面中创建一个 EventChannel,并使用 uni.navigateBack() 或 uni.navigateTo() 方法打开小程序页面并携带 EventChannel。在小程序页面中接收 EventChannel 并监听对应的事件。
在 H5 页面中:
var eventChannel = new uniLib.EventChannel('channel-name')
eventChannel.emit('event-name', { data: 'xxx' })
uni.navigateTo({
url: '/pages/example/example?channel=channel-name',
events: {
eventName: function(res) {
console.log(res.data)
}
}
})
在小程序页面中:
var eventChannel = this.getOpenerEventChannel()
eventChannel.on('event-name', function(res) {
console.log(res.data)
})
(未完待续.....后面补上)