赞
踩
小程序针对webview其实是出了一套数据交互的方案(postMessage),具体可以参考官网web-view
但是它只有在 小程序后退、组件销毁、分享、复制链接
这几种特定情况下小程序webview中才能接收到。结果多方面研究调查,最终确定了下面的方法。
a.获取到url参数key和val,将key和val缓存到localStorage(分别存分两个)
if (route.query.key) {
window.localStorage.setItem(loactionComponentKey, `${route.query.key}`)
window.localStorage.setItem(
`${loactionComponentValuePrefix}${route.query.key}`,
`${route.query.value}`
)
}
b.然后做goback,因为页面有缓存,在页面回退之后表单值还存在,注意:在这个地方要用 小程序sdk中的回退navigateBack
// 单独页面组件 渲染赋值
window.addEventListener('storage', function (e) {
const locKey = window.localStorage.getItem(loactionComponentKey)
if (!locKey) return
const value = window.localStorage.getItem(`${loactionComponentValuePrefix}${locKey}`)
if (locKey && value) {
// setValue
window.localStorage.removeItem(`${loactionComponentValuePrefix}${locKey}`)
window.localStorage.removeItem(loactionComponentKey)
}
})
如果是hash模式的路由跳转用不着这么麻烦,改变路径参数不会触发页面刷新,所以可以通过修改webview的url就能实现了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。