收藏
回答

授权问题?

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


最后一次编辑于  09-27  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

3 个回答

  • 仙森ღ₅₂₀¹³¹⁴
    仙森ღ₅₂₀¹³¹⁴
    09-27

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

    09-27
    赞同 1
    回复 3
    • 空城
      空城
      09-27
      开启了没有意义啊,开启了再点击返回,但返回页面的接口不执行了,也不知道为什么
      09-27
      回复
    • 仙森ღ₅₂₀¹³¹⁴
      仙森ღ₅₂₀¹³¹⁴
      09-27回复空城
      怎么没有意义了。
      09-27
      回复
    • 仙森ღ₅₂₀¹³¹⁴
      仙森ღ₅₂₀¹³¹⁴
      09-27回复空城

      <button open-type="openSetting"  bindopensetting="refresh"/>

      09-27
      回复
  • 00011111000101111011001110011000
    00011111000101111011001110011000
    09-27

    把你的加载数据代码放到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


    09-27
    赞同
    回复 2
    • 空城
      空城
      09-27
      我就是放到那个钩子里面的啊,但在那个钩子里只执行语句,但不执行接口啊
      09-27
      回复
    • 00011111000101111011001110011000
      00011111000101111011001110011000
      09-27回复空城
      你看清除我写的代码 wx.openSetting 只是打开设置页面 要用户手动的去位置点击开关 然后用户返回的时候会走onShow事件 会再次去检查是否拥有权限 如果有 就走加载数据事件 不是你直接在wx.openSetting success里边直接去写相关的代码的
      09-27
      回复
  • ʚ青哥ɞ
    ʚ青哥ɞ
    09-27

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

    09-27
    赞同
    回复 9
    • 空城
      空城
      09-27
      自己引导没有用,点击开启了返回了页面也不执行接口
      09-27
      回复
    • ʚ青哥ɞ
      ʚ青哥ɞ
      09-27回复空城

      success会返回授权结果,判断是否授权,重新调用。


      09-27
      回复
    • 空城
      空城
      09-27

      请你是官方吗?这个方法试了啊,就是不执行我才来提问的

      09-27
      回复
    • 空城
      空城
      09-27

      这个方法里,只要是有关接口的就不执行,

      09-27
      回复
    • ʚ青哥ɞ
      ʚ青哥ɞ
      09-27回复空城

      授权成功后调用getLocation未进入success,那'失败'有打印吗。用的是框架的方法,去框架群里问问吧。

      09-27
      回复
    查看更多(4)
问题标签