最近做一个项目需要 点击推送后跳转到指定页面 ,遇到很多坑,今天写一下心路历程
举例 名称 index.html , main.html ( home.html message.html ),
首先考虑,openWindow直接跳转指定页(message.html) 测试过后排除,因为当前项目需要跳转到选项卡菜单的子页面,openWindow 是只会打开单页面
其次考虑,使用openWindow 跳转父页面(main.html ),用附带的传值方法传入值 根据是否有值判断改变webview, 此方法按逻辑是可以行的通的,但是因为 在main和子页面生成时候他不是关闭的逻辑而是隐藏的逻辑,所以导致js并不会再次加载运行,后来又用延时setTimeout做一个实时访问的方法判断,这时在真机运行可行,但是打包后跳转页面会多跳转到一个空白页,舍弃方法。
最后绞尽脑汁想到用原生api + 自定义方法fire
如下
detailPage = plus.webview.getWebviewById('main');
mui.fire(detailPage,'newsId',{
id:2
});
var dqid = plus.webview.currentWebview().id;
if(dqid != 'home.html' && dqid != 'approvalProcess.html' && dqid != 'message.html' && dqid != 'main.html'){
plus.webview.currentWebview().close()
}
plus.webview.currentWebview().hide()
plus.webview.show('message.html',"fade-in",300);
最终算是解决了,虽然还是有点瑕疵