小程序用户地理位置授权的时候,授权提示框有时候会弹出来两个,有时候会弹出一个,具体弹出哪一个没有规律,如下图:
我app.js的代码如下:
App({
onLaunch: function (options) {
this.getPromission();
},
onShow: function (options) {
},
onHide: function () {
},
getPromission: function () {
//临时变量
var _this = this;
//根据js_code换取用户的openid并返回用户信息
wx.login({
success: res => {
if (res.code) {
// wx.request({
// url: _this.globalData.serverUrl + _this.globalData.login,
// method: 'GET',
// data: {
// js_code: res.code
// },
// header: {
// 'Content-Type': 'json'
// },
// success: function (data) {
// _this.globalData.userInfo = JSON.parse(data.data)[0]
// wx.showModal({
// content: data.data
// });
// },
// error: function (data) {
// console.log("error");
// }
// })
}
}
})
//获取用户的授权信息
wx.getSetting({
success: res => {
if (!res.authSetting['scope.userLocation']) {
wx.authorize({
scope: 'scope.userLocation',
success: res => {
//点击确定授权按钮
},
fail: res => {
var loginStatus = wx.getStorageSync(_this.globalData.loginStatus)
//点击取消授权按钮
if (loginStatus===""||!loginStatus) {
wx.showModal({
title: '提示',
content: '为帮助您准确获取周边卡信息,请手动选取位置...',
success: res => {
if (res.confirm) {
wx.setStorageSync(_this.globalData.loginStatus, true)
wx.navigateTo({
url: '../views/changeCity/changeCity'
})
}else if(res.cancel){
wx.setStorageSync(_this.globalData.loginStatus, false)
}
}
})
}else{
//否则打开授权设置页面进行手动设置
wx.openSetting({
success:res=>{}
})
}
}
})
}
}
})
},
globalData: {
loginStatus: false,//登陆状态
serverUrl: 'https://xx.xx.com.cn:1234/',//服务器地址
login: 'login',//登陆专用
retData: 'gt',//返回数据
writeRetData: 'gdc',//写入并返回数据
userInfo: {}
}
})
关注,目前发现是wx.authorize会弹窗一次,然后在调用对应的接口比如wx.startRecord会在弹窗一次。现在也不知道该怎么解决