uni-app嵌套H5,H5向uniapp传值

2023-05-16

HTML:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
        body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=11unL3N3vbCMTl6W33LciGnba3wsn2GMwFa"></script>
    <title>百度地图</title>
</head>
<body>
<div id="allmap"></div>

</body>
</html>
<script type="text/javascript">

</script>
<script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"></script>

<script type="text/javascript">
    document.addEventListener('UniAppJSBridgeReady', function() {
        //向uniapp传值
        uni.postMessage({
            data: {
                action: "init-message"
            }
        });
        uni.getEnv(function(res) {
            console.log('当前环境:' + JSON.stringify(res));
        });
    });
    var map = new BMap.Map("allmap");
    var point = new BMap.Point(116.331398,39.897445);
    map.centerAndZoom(point,21);

    var geolocation = new BMap.Geolocation();
    geolocation.getCurrentPosition(function(r){
        if(this.getStatus() == BMAP_STATUS_SUCCESS){
            map.panTo(r.point);
            var pointnow = new BMap.Point(r.point.lng,r.point.lat);
            map.centerAndZoom(pointnow,12);
            var mknow = new BMap.Marker(pointnow);
            map.addOverlay(mknow);

            map.addEventListener("touchend", function (e) {
                map.clearOverlays();
                var mk = new BMap.Marker(e.point);
                map.addOverlay(mk);

                localStorage.setItem('pointlat',e.point.lat);
                localStorage.setItem('pointlng',e.point.lng);

                var pt = e.point;
                var geoc = new BMap.Geocoder();
                geoc.getLocation(pt, function(rs){
                    var addComp = rs.addressComponents;
                    localStorage.setItem('pointcity',addComp.city);
                    var cityname = addComp.city
                    uni.postMessage({
                        data: {
                            action: cityname
                        }
                    });
                    // alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber);
                });

            });

        } else {
            console.log('ERROR(' + err.code + '): ' + err.message);
        }
    },{enableHighAccuracy: true})

    function getpoint() {

        // var json = {"lat":localStorage.getItem('pointlat'),"lng":localStorage.getItem('pointlng')};
        // var jsonStr = JSON.stringify(json);

        return localStorage.getItem('pointcity');
    }
</script>

UNI-APP:

<web-view src="http://test.a.com/baidumap.html" @message="message"></web-view>
methods: {
			// web-view 嵌入H5给uniapp传值,接收并处理
			message(obj) {
				console.log("H5传值为:",obj.detail.data)
			},
}

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

uni-app嵌套H5,H5向uniapp传值 的相关文章

  • ROS中的CMakeLists.txt

    在 ROS的编程过程中 xff0c 如果 CMakeLists txt如果写不好 xff0c 编译就很难成功 如果看不懂 CMakeLists txt那么很多错误你也不知道时什么回事 所以深入了解它是很右必要的 现在我们就来看看它 我们使用

随机推荐