在钉钉上开发企业内部应用,需要嵌入百度地图做定位使用
位置信息接口已经写好,需要ajax调用即可
钉钉page下创建内嵌页面
baidu.axml
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 钉钉全局变量、钉钉内嵌页面样式等
在引入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);
// 初始化地图,设置中心点坐标和地图级别
}
})
}