学习笔记——uni-app在App中使用web-view

在地图添加覆盖物,或设置额外图层,这种情况,uni-app自带的地图大多满足不了这些需求。所以需要用到web-view这一组件来实现。

 


1.创建带有地图的html

注意:App 平台同时支持网络网页和本地网页,但本地网页及相关资源(js、css等文件)必须放在 uni-app 项目根目录->hybrid->html 文件夹下或者 static 目录下

 

2. 在组件中引用web-view

    <view class="page-container">
        <web-view :src="webSrc" @message="handlePostMessage"></web-view>
    </view>
    export default {
		data() {
			return {
				webSrc: '/hybrid/html/index.html'
			}
		},
		onLoad() {

		},
		methods: {
            handlePostMessage(e) {
                console.log(e.detail.data)
                let action = e.detail.data[0].action
                console.log(action)
                uni.navigateTo({ url: '/pages/else/else?action=' + action })
            }
		}
	}

其中,@message用来监听,html页面给app通过uni.postMessage方法传递的信息。

注意:在PC端测试时,uni.postMessage没有反应,可以使用移动端测试或者使用雷神等模拟器进行测试。

3.完善html页面

<div id="map-container"></div>
<!-- uni 的 SDK,必须引用 -->
<script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"></script>

<script src="https://webapi.amap.com/maps?v=1.4.15&key=你的高德地图key值"></script>

<script>
window.onload = function(){
            var map = new AMap.Map('map-container', {
                zoom:11,//缩放级别
                center: [116.397428, 39.90923],//地图显示中心点坐标,如果没有center属性,则会定位到你当前所处的位置
                // viewMode:'3D'//使用3D视图
            });
            
            var text = new AMap.Text({
                text: '故宫 32',
                title: '故宫',
                anchor: 'center',
                draggable: false,
                cursor: 'pointer',
                zIndex: 99,
                style: {
                    'padding': '0.25rem .5rem',
                    'border-radius': '.25rem',
                    'background-color': 'rgba(0,0,255,0.5)',
                    'font-size': '13px',
                    'color': 'white'
                },
                position: [116.45, 39.90923],
                clickable: false,
                extData: {
                    name: '故宫',
                    positon: '116.397428, 39.90923'
                }
            })
            text.setMap(map);
        }
</script>

注意:

  uni的SDK必须要引入。

  高德地图的key值,可以在高德应用中注册后获取。

4.效果 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一一GG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值