1.使用 Taro.getSetting 使用户进行授权地理位置信息

    使用成功结果中authSetting["scope.userLocation"]  为true 弹出提示用户授权信息

    否则用户拒绝授权 

2.使用Taro.getLocation获取用户地理位置,成功与失败的操作,具体看代码

// 获取用户地理位置授权
    Taro.getSetting({
      success: (res) => {
        res.authSetting = {
          "scope.userInfo": true,
          "scope.userLocation": true
        }

        // 用户同意授权
        if (res.authSetting["scope.userLocation"]) {
          // 获取用户地理位置的经度和纬度
          Taro.getLocation({
            type: "gcj02",
            success: function (res) {
              gpsLong = res.longitude
              gpsLat = res.latitude
              setLongitude(res.longitude);
              setLatitude(res.latitude);
              init();
            },
  //用户拒绝授权
            fail: (res) => {
              isAuthorized()
            },
          });
        }
      },
      fail: () => {
      },
    });
//用户拒绝授权,提醒用户需要开启位置授权
const isAuthorized = ()=>{
    Taro.showModal({
      title: "温馨提示",
      content: "需要获取您的位置信息,请允许",
      success: (tip) => {
        if (tip.confirm) {
          Taro.openSetting({
            success: (data) => {
              if (data.authSetting["scope.userLocation"]) {
                Taro.getLocation({
                  success: (res) => {
                    gpsLong = res.longitude
                    gpsLat = res.latitude
                    setLongitude(res.longitude);
                    setLatitude(res.latitude);
                    init();
                  },
                });
              }
            },
          });
        } else if (tip.cancel) {
          Taro.navigateBack();
        }
      },
    });
  }

taro授权用户摄像头 ,用户是否开启摄像头 通过 authSetting中的scope.camera 来判断

Taro.getSetting({
      success: (res) => {
        if (res.authSetting["scope.camera"] === undefined) {
          Taro.authorize({
            scope: "scope.camera",
            success: () => {
            },
            fail: () => {
              Taro.showModal({
                title: "授权请求",
                content: "尚未允许使用摄像头,请点击确定进行授权",
                success: (tip) => {
                  if (tip.confirm) {
                    Taro.openSetting({
                      success: (e) => {
                        console.log("eeeee", e);
                      },
                    });
                  } else if (tip.cancel) {
                    useAuthorizationCamera();
                  }
                },
              });
            },
          });
        }
      },
      fail: () => {
      },
    });

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐