收藏
回答

多个页面需要判断是否授权地理位置,怎么封装授权地理位置好?

?1、是不是通过如下判断是否授权

// 1 地理位置授权
   wx.getSetting({
     success(res) {
       if (!res.authSetting['scope.userLocation']) {
         console.log("1-没有授权《地理位置》权限");
         // 接口调用询问 
         wx.authorize({
           scope: 'scope.userLocation',
           success() {
             console.log("2-授权《地理位置》权限成功");
             //获取地理位置信息
             that.getLocation();
           },
           fail() {// 用户拒绝了授权 
             console.log("2-授权《地理位置》权限失败");

           }

}

?2、如果我5个页面都要判断是否授权,这样写就太麻烦,怎么提出去呀

描述不是很清楚,望大神解答,或者讲解一下设计思路,非常感谢!

回答关注问题邀请回答
收藏

2 个回答

  • Listen
    Listen
    2019-10-31

    封装到你的 util.js 里边岂不美哉?

    /** 检测是否有定位权限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()
            }
          }
        })
      })

    }

    module.exports = {

    checkHasLocationPermissionByMP

    }




    2019-10-31
    有用
    回复 3
    • sehun
      sehun
      2019-10-31
      我试了封装到util.js里,然后看网上文章说,如果用户同意了地理位置授权,手机未开启定位,一样获取不到经纬度,要提示用户开定位,我想把这个判断也放进去
      2019-10-31
      回复
    • sehun
      sehun
      2019-10-31
      2019-10-31
      回复
    • Listen
      Listen
      2019-10-31回复sehun
      wx.getSystemInfoSync().locationEnabled 判断是否开启GPS  你稍微改下代码不就行了?
      2019-10-31
      回复
  • TNT
    TNT
    2019-10-31

    app.js里写,我们是做用户如果跑到其他城市了 会有提示 是否更换城市

    2019-10-31
    有用
    回复 4
    • sehun
      sehun
      2019-10-31
      如果我写在app.js里,用户一进来就会问他授权是吗?我想在某些页面需要的时候再判断他是否授权
      2019-10-31
      回复
    • sehun
      sehun
      2019-10-31
      你的意思是,再app.js写一个方法,然后在需要的页面用吗?
      2019-10-31
      回复
    • TNT
      TNT
      2019-10-31回复sehun
      是的。
      2019-10-31
      回复
    • TNT
      TNT
      2019-10-31回复sehun
      封装到app.js里。或者util.js里。然后在需要的页面调用下
      2019-10-31
      回复
登录 后发表内容
问题标签