getLocation.ts
2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/* eslint-disable no-undef */
export const getLocationHandler = () => {
console.log('first')
uni.getLocation({
type: "gcj02",
success: async (res) => {
const latitude = res.latitude; // 纬度
const longitude = res.longitude; // 经度
uni.setStorageSync('latitude', latitude)
uni.setStorageSync('longitude', longitude)
// uni.$u.toast(`latitude: ${latitude},longitude: ${longitude} 测试获取位置`)
},
fail(err) {
console.error("Failed to get location", err);
getAppLocation()
},
});
}
export const getAppLocation = (isAutoSetting = true) => {
return new Promise((resolve, reject) => {
plus.android.requestPermissions(
["android.permission.ACCESS_FINE_LOCATION"],
function (resultObj) {
var result = 0;
for (var i = 0; i < resultObj.granted.length; i++) {
var grantedPermission = resultObj.granted[i];
console.log("已获取的权限:" + grantedPermission);
result = 1;
}
for (var i = 0; i < resultObj.deniedPresent.length; i++) {
var deniedPresentPermission = resultObj.deniedPresent[i];
console.log("拒绝本次申请的权限:" + deniedPresentPermission);
result = 0;
}
for (var i = 0; i < resultObj.deniedAlways.length; i++) {
var deniedAlwaysPermission = resultObj.deniedAlways[i];
console.log("永久拒绝申请的权限:" + deniedAlwaysPermission);
result = -1;
}
// 若所需权限被拒绝,则打开APP设置界面,可以在APP设置界面打开相应权限
if (result != 1 && isAutoSetting) {
//如果用户第一次拒绝后,跳转到**应用**的权限页面
var Intent = plus.android.importClass("android.content.Intent");
var Settings = plus.android.importClass("android.provider.Settings");
var Uri = plus.android.importClass("android.net.Uri");
var mainActivity = plus.android.runtimeMainActivity();
var intent = new Intent();
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
var uri = Uri.fromParts(
"package",
mainActivity.getPackageName(),
null
);
intent.setData(uri);
mainActivity.startActivity(intent);
}
resolve('');
},
function (error) {
console.log("申请权限错误:" + error.code + " = " + error.message);
reject({
code: error.code,
message: error.message,
});
}
);
});
};