小程序:需要授权的功能报错,例如定位授权报错

  1. 检查授权情况
  2. false 需要打开授权页面
  3. 这个授权页面需要点击事件才能触发,一般用小程序的 modal 确定事件代替,也可以自己写一个button触发。

下面是定位授权的判断,wepy 例子

    // 判断授权
    getSetting () {
        let that = this;
        wx.getSetting({
            success (res) {
                console.log('setting-suc', res.authSetting);
                // 已授权或者未请求过授权
                if (res.authSetting['scope.userLocation'] || res.authSetting['scope.userLocation'] === undefined) {
                    that.getLocation();
                } else if (!res.authSetting['scope.userLocation']) {
                    // 拒绝授权,showModal 为了触发点击事件,里面的title,content自定义
                    wx.showModal({
                        title: '小程序授权',
                        content: '请授权定位功能,否则无法顺利体验小程序功能',
                        success: res => {
                            if (res.confirm) {
                                that.openSetting();
                            }
                        }
                    });
                }
            }
        });
    }
    // 打开授权
    openSetting () {
        wx.openSetting({
            success (res) {
                console.log('open-suc', res.authSetting);
            },
            fail (err) {
                console.log('open-err', err);
            }
        });
    }
    // 获取位置
    getLocation () {
        let that = this;
        wx.getLocation({
            type: 'wgs84',
            success: function(res) {
                console.log('location-suc', res);
                that.latitude = res.latitude;
                that.longitude = res.longitude;
                that.$apply();
                that.getCityList();
            },
            fail: function (err) {
                console.log('location-err', err);
                // 有些手机定位功能无法使用,例如华为手机,需要打开手机定位,据说是安全策略的设置。
                if (err.errMsg.indexOf('ERROR_SERVER_NOT_LOCATION') > -1) {
                    wx.showToast({
                        title: '请打开手机定位功能,下拉页面重新获取数据',
                        icon: 'none'
                    });
                } else if (err.errMsg.indexOf('auth deny') > -1) {
                    wx.showToast({
                        title: '请打开授权定位功能,否则无法顺利使用小程序',
                        icon: 'none'
                    });
                }
            }
        });
    }

你可能感兴趣的:(小程序:需要授权的功能报错,例如定位授权报错)