习习2012
习习2012
  • 发布:2020-01-15 14:11
  • 更新:2024-01-25 14:55
  • 阅读:8620

代码添加的子Webview,怎么监听uni.postMessage发送的事件

分类:uni-app
this.webview = plus.webview.create(src, 'ecologyWebview', {  
            plusrequire: 'none',  
            'uni-app': 'none',  
            softinputMode: 'adjustPan',  
            top: this.CustomBar - 1 + 'px',  
            bottom: '0px',  
            additionalHttpHeaders: {  
                access_token: this.$store.state.token  
            }  
        });  
let thisWv = this.$mp.page.$getAppWebview();  
thisWv.append(this.webview);

怎么监听网页端uni.postMessage发送的事件

2020-01-15 14:11 负责人:无 分享
已邀请:
4***@qq.com

4***@qq.com

同样卡了一整天, 到处找都没找到, 最后自己解决了. 在此留下造福后人吧...

父页面

//创建子页面并添加到当前页面  
var wv = plus.webview.create("/hybrid/html/index.html")  
var currentWebview = this.$scope.$getAppWebview();   
currentWebview.append(wv);  

//重点: 监听子页面uni.postMessage返回的值  
plus.globalEvent.addEventListener('plusMessage', function(msg){  
    if(msg.data.args.data.name == 'postMessage'){   
        console.log('子页面返回的数据为:'+JSON.stringify(msg.data.args.data.arg));  
    }  
});

子页面

<script src="uni.webview.1.5.2.js"></script>  
<script>  
document.addEventListener('UniAppJSBridgeReady', function() {     
    //子页面发送数据  
    uni.postMessage({  
         data: {  
              action: 'message'  
              }  
     });  
})  
</script>
  • 44596296

    牛逼牛逼牛逼,大佬真牛逼,扣了一天了终于搞定了,这个方法完美

    2021-03-16 15:13

  • 3***@qq.com

    你这个完整的页面代码能给我个吗,或者抽出来uniapp web-view 使用plus加载h5页面,这样一个完整的demo,刚开始学习,啥也不会。

    2021-04-23 11:42

  • 4***@qq.com

    为啥//重点: 监听子页面uni.postMessage返回的值

    plus.globalEvent.addEventListener('plusMessage', function(msg){

    if(msg.data.args.data.name == 'postMessage'){

    console.log('子页面返回的数据为:'+JSON.stringify(msg.data.args.data.arg));

    }

    });这个没有执行?有完整代码吗?

    2021-05-26 15:30

  • 4***@qq.com

    回复不能编辑, 在后面的回复中补充了一个demo. 看不懂的直接下载demo运行就可以了

    2021-06-05 16:39

  • 1***@qq.com

    大佬牛逼,怎么找到这个api的 plus.globalEvent

    2022-10-06 20:13

  • feat

    在nvue页面好像不太行

    2023-08-28 11:03

  • DCloud_UNI_HRK

    感谢你为ask社区做出的贡献,欢迎各位开发者提供有效的解决方案

    2024-01-25 15:20

Naroaix

Naroaix - 我很懒得

同求

2***@qq.com

2***@qq.com - 80后it男

同求

2***@qq.com

2***@qq.com - 80后it男

<template>
<view>
<web-view :webview-styles="webviewStyles" :src="src" @message="handleMessage"></web-view>
</view>
</template>
var additionalHttpHeaders={Referer:'http://m.dcloud2.io/',Token:token,'Accept-Language':lang}
var currentWebview = this.$mp.page.$getAppWebview()
let that=this;
setTimeout(function() {
var wv = currentWebview.children()[0]
wv.loadURL(that.url,additionalHttpHeaders)
}, 1000); //如果是页面初始化调用时,需要延时一下*/

这样应该可以

  • Naroaix

    没看懂...

    2020-03-12 14:31

a***@yeah.net

a***@yeah.net

同求

1***@qq.com

1***@qq.com

为啥没人解答啊。

5***@qq.com

5***@qq.com - APP开发

同求

3***@qq.com

3***@qq.com

大好人啊!非常感謝

3***@qq.com

3***@qq.com

plus.globalEvent.addEventListener触发多次

  • xyxx

    我也是,请问解决没?

    2021-03-10 14:15

  • test2023

    是的,无法移除

    2024-02-07 10:23

4***@qq.com

4***@qq.com

回复不能编辑, 所以就在此处为我上面的回复补充一个demo吧

  • 2***@qq.com

    这个是打开本地网页的才可以,外部url不行。外部url没有uni.postMessage属性的

    2022-01-12 21:24

  • 2***@qq.com

    回复 2***@qq.com: 不对,uni.postMessage是方法,没有这个方法的

    2022-01-12 21:25

  • DCloud_UNI_HRK

    回复 2***@qq.com: 如果外部的url也是用uni写的话,是可以直接调用uni的相关api 的,如果是其他平台的页面可以引入uni的js库

    2024-01-25 15:18

小嘟嘟

小嘟嘟 - 小嘟嘟开发

大佬牛B, 卡了几天了!!!

1***@qq.com

1***@qq.com

大佬牛逼牛逼牛逼
十分感谢

p***@qq.com

p***@qq.com

请问一下,怎么由 .vue 页面向 .html 文件发送消息呢

test2023

test2023

ios不执行,

要回复问题请先登录注册