授权问题?
发布于 6 年前 作者 ixiang 4811 次浏览 来自 官方Issues

获取用户地址,只会在第一次进来会弹出授权的弹框,但点拒绝了下次再进来就不弹框了,你再想点授权都没有机会?这是什么鬼啊?

3 回复

把你的加载数据代码放到onShow事件

Page({

    onShow: function () {

        checkHasLocationPermissionByMP().then(_=>{

            console.log(‘有权限’)

            this.loadData()  // 网络请求数据

    }).catch(_=>{

        console.log(‘无权限’)

        wx.showModal({

            title: ‘提示’,

            content: ‘您拒绝授权使用当前地理位置权限,请打开获取位置信息授权!否则无法使用小程序部分功能’,

            confirmText: ‘去授权’,

            confirmColor: ‘#07c160’,

            success: res => {

                if (res.confirm) {

                    wx.openSetting({})

                }

            }

        })

    })

},

loadData(){

    //TODU

    console.log(‘网络请求数据’)

}

})

/** 检测是否有定位权限BY 小程序 **/

function checkHasLocationPermissionByMP() {

    return new Promise(function (resolve, reject) {

        wx.getSetting({

            success(sd) {

                if (!sd.authSetting[‘scope.userLocation’]) {

                    wx.authorize({

                        scope: ‘scope.userLocation’,

                        success(e) {

                        resolve()

                    },

            fail(e) {

                reject()

            }

        })

    } else {

        resolve()

    }

}

})

})

}

https://developers.weixin.qq.com/s/ZscTbHmQ7Nbc

拒绝后 判断 用户拒绝了。点击按钮使用openSetting跳转到设置页面开启。

需要自己引导用户去授权页面授权

回到顶部