uni-app web-view nvue向网页传参,网页向nvue传参

 实现的逻辑很简单:就是用nvue的webview组件监听,网页加载成功后,然后用5+的API向网页注入一段JS代码。

1.务必保证网页是加载成功后再注入js发消息。

因为是通过5+的api注入js实现通讯,所以网页务必要在加载成功后才能去用js请求注入。如果网页压根没加载成功 那你注入js当然是无效的。所以要在webview组件中监听@pagestart来监听网页加载成功。

2.怎么传对象或字符串?

templeate代码示例
<web-view class="web-view" src="http://www.jalon888.com/webview.html" ref="webview" @pagestart="onPageStart" @onPostMessage="handlePostMessage" @pagefinish="onPageFinish" @error="" @receivedtitle="onReceivedTitle"></web-view>

 

js代码示例(传参对象)
this.$refs.webview.evalJs("jsfunction({'aaa':'bbb','ccc':'dddd'})"); // 这里面怎么拼接对象就自行补脑js知识了。

js代码示例(传参字符串,和对象没啥很大的区别啊。。。)
this.$refs.webview.evalJs("jsfunction('我就是个参数啊')"); // 这里面怎么拼接就自行补脑js知识了。

3.网页接收参数代码怎么写?

自己在你的网页中插入如下代码
// 如果你不想用 jsfunction 你自己改个名字呗,比如 zhangsan lisi ,记住这里改了对应上面的 this.$refs.webview.evalJs("jsfunction('我就是个参数啊')") 也需要修改 window.jsfunction = function(data){ console.log('data', data); }

4.网页怎么给uniapp发送通知消息?

其实就是利用uniapp的webview的js啦,没什么难点,文档webview文档

首先引入js-sdk代码 (注意,如果uniapp的webview-sdk升级了务必自行改成官方最新的js-sdk)
<script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"></script>

然后写如下的js代码
// 先监听 UniAppJSBridgeReady document.addEventListener('UniAppJSBridgeReady', function() { // 下面就是js知识了,点击某个按钮后发消息。 document.getElementById('postMessage').addEventListener('click', function() { // 这里调用uniapp的api执行消息发送 uni.postMessage({ data: { user_id:111, user_token:'sa1s6a1s9a81s98q1w6q51s6a81s6q561sa65', user_info:{ nickname:'Jalon', headImg:'https://img-cdn-qiniu.dcloud.net.cn/uploads/avatar/000/86/77/53_avatar_max.jpg' } } }); }); });

uni-app web-view nvue向网页传参,网页向nvue传参icon-default.png?t=M85Bhttps://ext.dcloud.net.cn/plugin?id=1120

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值