钉钉开发E应用web-view问题:页面之间发送消息

在钉钉上开发企业内部应用,需要嵌入百度地图做定位使用
位置信息接口已经写好,需要ajax调用即可
钉钉page下创建内嵌页面
baidu.axml

  <web-view id="web-view-1" src="http://localhost:8080/baidu.html" onMessage="test"></web-view>

baidu.js
关键字:onMessage=“test” 和id = “web-view-1” 也就是方法名和id的意思

Page({
  data: {
    vehicleId: 0
  },
  onLoad(query) {
    this.setData({
      vehicleId: query.vehicleid
    })
    this.webViewContext = dd.createWebViewContext('web-view-1');

  },
  test(e) {
    console.log(e);
    this.webViewContext.postMessage({ 'vehicleId': this.data.vehicleId });
  },
});

spring boot 服务端
baidu.html
这几个js是必须要引用的,百度JavaScript API 钉钉全局变量、钉钉内嵌页面样式等

<script type="text/javascript"
	src="http://api.map.baidu.com/api?v=2.0&amp;ak=你的ak">
	
</script>
<script type="text/javascript" src="/js/jquery-2.0.0.min.js"></script>
<script
	src="//g.alicdn.com/dingding/dingtalk-jsapi/2.6.41/dingtalk.open.js"></script>
<script type="text/javascript" src="https://appx/web-view.min.js"></script>

在引入js之后,dd.postMessage自动访问钉钉baidu.js的test方法,并获得车辆id,之后,即可发起ajax请求获取定位信息

success内是创建百度地图实例,基本都是复制粘贴

$(function() { 
	 	dd.postMessage({
			name : "load vehicleid"
		});
	});
		var locateLast;
		// 接收来自小程序的消息。
		dd.onMessage = function(e) {
		   $.ajax({
				url : "/baiduMapPost/"+e.vehicleId,
				dataType : 'json',
				contentType : "application/json",
				type : "GET",
				success : function(data) {
					locateLast = data;
					  var map = new BMap.Map("container");
					// 创建地图实例  
					var point = new BMap.Point(locateLast.longitude, locateLast.latitude);
					var marker = new BMap.Marker(new BMap.Point(locateLast.longitude,
							locateLast.latitude));
					// 创建点坐标  
					map.centerAndZoom(point, 15);
					map.enableScrollWheelZoom(true);//开启鼠标滚轮缩放
					//平移缩放控件
					map.addControl(new BMap.NavigationControl());
					//比例尺
					map.addControl(new BMap.ScaleControl());
					//地图类型
					map.addControl(new BMap.MapTypeControl());
					map.setCurrentCity("北京"); // 仅当设置城市信息时,MapTypeControl的切换功能才能可用  
					map.addOverlay(marker); 
					// 初始化地图,设置中心点坐标和地图级别
				}
			})  
		}
	</script>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值