在微信开发中遇到了安卓正常显示内置地图,但是ios苹果系统不显示,经过排查是因为ios系统调用网页时的经度和纬度必须使用Number类型的,但是安卓的可以.
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: [[${wxConfig.appId}]] , // 必填,公众号的唯一标识
timestamp:[[${wxConfig.timestamp}]] , // 必填,生成签名的时间戳
nonceStr: [[${wxConfig.nonceStr}]] , // 必填,生成签名的随机串
signature: [[${wxConfig.signature}]] ,// 必填,签名
jsApiList: ['checkJsApi', // 必填,需要使用的JS接口列表
'openLocation',// 使用微信内置地图查看地理位置接口
'getLocation']// 获取地理位置接口
});
wx.ready(function(){
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
wx.getLocation({
type: 'gcj02', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
success: function (res) {
// var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
//var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。
// gaoBegin(longitude,latitude);
wx.openLocation({
latitude: Number([[${wxrouteneed.glatitude}]]), // 纬度,浮点数,范围为90 ~ -90
longitude: Number([[${wxrouteneed.glongitude}]]), // 经度,浮点数,范围为180 ~ -180。
// latitude: 31.846120131031, // 纬度,浮点数,范围为90 ~ -90
// longitude: 117.271610135544, // 经度,浮点数,范围为180 ~ -180。
name: [[${wxrouteneed.garagename}]], // 位置名
address: [[${wxrouteneed.address}]], // 地址详情说明 address
scale: 18, // 地图缩放级别,整形值,范围从1~28。默认为最大
infoUrl: 'http://www.cetcbw.com' // 在查看位置界面底部显示的超链接,可点击跳转
});
},
fail:function (res) {
alert("对不起,您不能选择拒绝定位:"+res);
}
});
});
重要的是上面的代码经度和纬度的前面加上了Number();