这里微信小程序我就写了一个简单的获取位置信息的代码
<map id="map" longitude="{{longitude}}" latitude="{{latitude}}" scale="14" hasLocation = "{{hasLocation}}" show-location="true" bindcontroltap="controltap" markers="{{markers}}" covers="{{covers}}" bindmarkertap="markertap" bindregionchange="regionchange" style="width: 100%; height: 100%;">
<cover-view class="map-cover" catchtap="goBack">
<cover-image src="/images/thatweizhi.png"></cover-image>
</cover-view>
</map>
然后是js代码:
onLoad: function (options) {
this.getLocation();
},
goBack() {
console.log("111");
this.getLocation();
},
getLocation(){
let that = this;
wx.getLocation({
type: 'gcj02',
success:function(res){
console.log(res);
let latitude = res.latitude;
let longitude = res.longitude;
that.setData({
latitude,
longitude
})
}
})
},
想做成的效果是用户进来时会提示弹框让其选择授权或拒绝,当用户拒绝时不会获取位置进行定位,而当用户点击goBack按钮时又能重新定位。但是这样写不能达到效果,请问该怎么做?
wx.getSetting判断用户是否授权地理位置,如果没授权,提示用户去授权,通过 wx.openSetting打开设置页面 让用户手动开启。
wx.getSetting({ success: (res) => { let authSetting = res.authSetting if (authSetting['scope.userLocation']) { // 已授权 } else { wx.showModal({ title: '您未开启地理位置授权', content: 'xxxx', success: res => { if (res.confirm) { wx.openSetting() } } }) } } })
微信公众号是不是不支持getSetting?
微信公众号H5 如何重新获取getLocation的权限?
getSetting