uniapp与webview之间的相互传值 - 奔跑吧前端(李钊) - 博客园

来源: uniapp与webview之间的相互传值 – 奔跑吧前端(李钊) – 博客园

1.uni-app 如何发送数据到 H5? 其实很接单、在 web-view 中只需要通过 URL 就可以向 H5 进行传参 例如在 uni-app 中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<template>
    <view class="advertisement" style="width: 100%;">
        <web-view :src="url" @message="message"></web-view>
    </view>
</template>
<script>
export default {
    data() {
        return {
            url:'/hybrid/html/local.html?data='
        };
    },
    onLoad(data) {<br>          //这里对要传入到webview中的参数进行encodeURIComponent编码否则中文乱码
        this.url+=encodeURIComponent(data.data)
    },
    mounted() {},
    methods: {
        message(event){
            console.log(event.detail.data);
        }
    }
};
</script>
<style scoped="scoped" lang="scss">
@import './advertisement.scss';
</style>

那么在 H5 中是如何接收值得呢?

复制代码
console.log(getQuery('data'));  //获取 uni-app 传来的值
            
            
            //取url中的参数值
            function getQuery(name) {
                // 正则:[找寻'&' + 'url参数名字' = '值' + '&']('&'可以不存在)
                let reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
                let r = window.location.search.substr(1).match(reg);
                console.log(r);
                if(r != null) {
                    // 对参数值进行解码
                    return decodeURIComponent(r[2]);
                }
                return null;
            }
复制代码

2.webview向uniapp传值

复制代码
<script>
    document.addEventListener('UniAppJSBridgeReady', function() {
        //向uniapp传值
        uni.postMessage({
            data: {
                action: 'message'
            }
        });
        uni.getEnv(function(res) {
            console.log('当前环境:' + JSON.stringify(res));
        });
    });
</script>
复制代码

uniapp接受

复制代码
//message接受方法

<template>
    <view class="advertisement" style="width: 100%;">
        <web-view :src="url" @message="message"></web-view>
    </view>
</template>
复制代码

如果你遇到h5传值给app,无法接收到消息,请转移到我的另一篇博客,看看是否是这个问题https://www.cnblogs.com/lizhao123/p/16170173.html

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏