Taro-react 中小程序用户授权地理位置以及拒绝授权的处理
taro+react用户授权地理位置
·
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: () => {
},
});
更多推荐
已为社区贡献2条内容
所有评论(0)