webview中的h5页面做某些操作后需要修改当前的分享页面,但是,此时H5页面的链接没有改变。需要有一个机制通知小程序页面要修改分享参数了。
技术解决
根据小程序文档,支持webview中页面以postMessage的形式向小程序通信(仅在分享,返回等特殊操作时,才触发)
要点:
使用wx.miniProgram.postMessage向小程序通信,当用户转发时页面可以监听到消息
页面监听到的消息为历史列表,且不清除,需要自行处理
小程序页面设置了onShareAppMessage可以支持分享,默认分享为当前页面
用户点击转发后,会先触发webview的onMessage,再调用onShareAppMessage设置分享配置
h5和小程序约定的postMessage消息格式:
{
type:'消息类型',//setShareOption
...restData // 其他参数
}
复制代码
h5页面设置分享参数:
/**
* 设置weapp分享链接
* @param option
* @example setWeappShareOption({title:"分享标题",path:"分享链接",imageUrl:'分享图片可为空'})
*/
export function setWeappShareOption(option:{title:string,path:string,imageUrl:string}