getMapLocation () {
      // 判断是否有地理授权信息
      uni.getSetting({
        success: (res) => {
          console.log('获取授权信息', res)
          var status = res.authSetting
          if (!status['scope.userLocation']) { // 如果授权信息中没有地理位置的授权,则需要弹窗提示用户需要授权地理信息
            uni.showModal({
              title: '是否授权当前位置',
              content: '需要获取您的地理位置,请确认授权,否则地图功能将无法使用',
              success: (tip) => {
                if (tip.confirm) {
                  uni.openSetting({
                    success: (data) => {
                    // 如果用户授权了地理信息在,则提示授权成功
                      if (data.authSetting['scope.userLocation'] === true) {
                        uni.showToast({
                          title: '授权成功',
                          icon: 'success',
                          duration: 1000
                        })
                        // 授权成功后,调用chooseLocation选择信息
                        uni.chooseLocation({
                          success: (res) => {
                            // 这里获取到的res就是选择的地点的信息,包括经纬度,名称等
                            console.log('详细地址', res)
                          }
                        })
                      } else {
                        uni.showToast({
                          title: '授权失败',
                          icon: 'none',
                          duration: 1000
                        })
                      }
                    }
                  })
                }
              }
            })
          } else {
            // 用户授权过,直接调用选择地址
            uni.chooseLocation({
              success: (res) => {
                // 这里获取到的res就是选择的地点的信息,包括经纬度,名称等
                console.log('详细地址', res)
              }
            })
          }
        },
        fail: (res) => {
          uni.showToast({
            title: '调用授权窗口失败',
            icon: 'none',
            duration: 1000
          })
        }
      })
    },

说明: 在需要触发打开地图的地方调用这个方法。

 在manifest.json文件中添加上图配置。

uni.openSetting(OBJECT) | uni-app官网 uni.getSetting() 获取用户的当前设置。

uni.openSetting() 调起客户端小程序设置界面,返回用户设置的操作结果。

uni.chooseLocation() 打开地图选择位置。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐