k***@163.com
k***@163.com
  • 发布:2024-12-06 19:04
  • 更新:2024-12-06 19:07
  • 阅读:338

uniapp 程序内嵌 H5链接,通过window.parent.postmessage发送消息后,uniapp 内嵌页在内置web浏览器能接收信息,且能跳到订单详情;但在模拟器手机上无法跳转

分类:uni-app

uniapp 程序内嵌 H5链接,然后进入H5的聊天系统进行聊天跳转分享订单,在H5链接页面通过window.parent.postmessage发送消息后,uniapp 的内嵌页面 web浏览器能接受到信息,接收到信息后能在程序里面能跳转到订单详情页面去。但 打包出的APP 及模拟器手机上 即没有报错,也没有提示,不能跳转去订单详情。 请问是 uniapp 不支持吗 ?还是被阻止了?

H5页面发送信息代码:
const oRderDetail=( val )={
const message ={
topic:'share_id',
data:{share_id: val.messageContent? orderId }
if(window.FlutterChannel){
window.FlutterChannel.postMessage(encodeURIComponent(JSON.stringify(message)))
}else{
window.parent.postMessage(message)
}
}
}

uniapp 接收消息的 代码如下:
iframeLoadedMsg(){
let that=this
window.addEventListener('message', function(event) {
console.log(event.data)
if (event.data.topic==="shareOrder"){
that.share_id = event.data.data.share_id
//that.$router.push({path:/expert/expertHome/openDetail?shareId=${this.share_id}})
that.$router.push({name:'ExpertOpenDetail',query:{shareId: that.share_id}})
}
}, false);
},
在web 浏览器,两个跳转方式如下,他们都能够跳转,但是APP 和安卓模拟器(链接的手机)点击分享跳转,就是一点反应都没有,搞弹框提示,也没有弹框。但是在HBuilder X 的内置 web浏览器 能够跳转:
that.$router.push({path:/expert/expertHome/openDetail?shareId=${this.share_id}})
that.$router.push({name:'ExpertOpenDetail',query:{shareId: that.share_id}})

0 关注 分享

要回复文章请先登录注册

BoredApe

BoredApe

发送消息请在h5引入```uni-webview.js``` 使用```uni.postMessage``` 请参考文档:[https://uniapp.dcloud.net.cn/component/web-view.html#postmessage](https://uniapp.dcloud.net.cn/component/web-view.html#postmessage)
2024-12-06 19:07