uniapp与webview之间的相互传值

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

<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) {

        //这里对要传入到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>

 

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值