zoukankan      html  css  js  c++  java
  • 小程序----选择地理位置 ( wx.chooseLocation ) 和 获取地理位置 (wx.getSetting)

    问题来了:假如我第一次使用wx.chooseLocation()获取权限被拒绝,然后使用wx.getSetting()来重新获取权限该怎么做呢?

    思路:wx.chooseLocation()有fail方法,如果第一次拒绝之后,以后调用选择地图都是触发的这个,那么我可以在fail方法里面,使用wx.getSetting(),这样就每次都能判断是否已经给与了权限了。

    wx.chooseLocation({
          success(res) {
            console.log(res)
            that.setData({
              // hasLocation: true,
              location: formatLocation(res.longitude, res.latitude),
              address: res.address
            })
          },
          fail: function () {
            wx.getSetting({
              success: function (res) {
                var statu = res.authSetting;
                if (!statu['scope.userLocation']) {
                  wx.showModal({
                    title: '是否授权当前位置',
                    content: '需要获取您的地理位置,请确认授权,否则地图功能将无法使用',
                    success: function (tip) {
                      if (tip.confirm) {
                        wx.openSetting({
                          success: function (data) {
                            if (data.authSetting["scope.userLocation"] === true) {
                              wx.showToast({
                                title: '授权成功',
                                icon: 'success',
                                duration: 1000
                              })
                              //授权成功之后,再调用chooseLocation选择地方
                              wx.chooseLocation({
                                success: function (res) {
                                  obj.setData({
                                    addr: res.address
                                  })
                                },
                              })
                            } else {
                              wx.showToast({
                                title: '授权失败',
                                icon: 'success',
                                duration: 1000
                              })
                            }
                          }
                        })
                      }
                    }
                  })
                }
              },
              fail: function (res) {
                wx.showToast({
                  title: '调用授权窗口失败',
                  icon: 'success',
                  duration: 1000
                })
              }
            })
          }
        })

    效果图: 

    本文转载他人链接: https://www.cnblogs.com/zjjDaily/p/9020921.html

  • 相关阅读:
    c实现二叉树
    C实现栈与队列
    c的链表实现
    LB_Keogh
    LB_Yi
    LB_Kim
    Lab7:同步互斥
    Lab6:进程的调度
    Lab45:进程和线程
    Lab3:虚拟内存管理
  • 原文地址:https://www.cnblogs.com/520BigBear/p/10563174.html
Copyright © 2011-2022 走看看