add location helper
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { abilityAccessCtrl, bundleManager, common, PermissionRequestResult } from '@kit.AbilityKit';
|
||||
import { abilityAccessCtrl, bundleManager, common, PermissionRequestResult, Permissions } from '@kit.AbilityKit';
|
||||
import { geoLocationManager } from '@kit.LocationKit';
|
||||
import { BusinessError } from '@kit.BasicServicesKit';
|
||||
import { LocationHelper } from '../../utils/LocationHelper';
|
||||
|
||||
@Component
|
||||
@Entry({routeName: 'MapPage'})
|
||||
@@ -10,32 +11,12 @@ struct MapPage {
|
||||
@State isLocationPermission: boolean = false;
|
||||
@State locText: string = ''
|
||||
|
||||
checkLocationPermission() {
|
||||
let manager = abilityAccessCtrl.createAtManager() // 得到manager对象
|
||||
let appInfo =
|
||||
bundleManager.getBundleInfoForSelfSync(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION) // 获取应用信息
|
||||
this.appName = appInfo.name;
|
||||
let context: Context = getContext(this) as common.UIAbilityContext;
|
||||
let permission:string = 'ohos.permission.LOCATION'
|
||||
let status = manager.checkAccessTokenSync(appInfo.appInfo.accessTokenId, "ohos.permission.LOCATION")
|
||||
if (status === abilityAccessCtrl.GrantStatus.PERMISSION_DENIED) {
|
||||
this.isShowLocationPopup = true;
|
||||
manager.requestPermissionsFromUser(context, ['ohos.permission.LOCATION'], (err: BusinessError, data: PermissionRequestResult) => {
|
||||
|
||||
});
|
||||
} else {
|
||||
this.getLocationAddress();
|
||||
}
|
||||
}
|
||||
|
||||
requestionLocationPermission() {
|
||||
|
||||
}
|
||||
locationHelper: LocationHelper = new LocationHelper(getContext(this) as common.UIAbilityContext);
|
||||
|
||||
@Builder
|
||||
locationViewBuilder() {
|
||||
Row() {
|
||||
Text('开启定位权限,为您推荐附近商家与好物 ').fontSize(15);
|
||||
Text('开启定位权限').fontSize(15);
|
||||
Button('去开启')
|
||||
.type(ButtonType.Normal)
|
||||
.height(24)
|
||||
@@ -44,7 +25,6 @@ struct MapPage {
|
||||
.backgroundColor(Color.Red)
|
||||
.onClick(() => {
|
||||
if (this.isLocationPermission) {
|
||||
this.checkLocationPermission()
|
||||
}
|
||||
})
|
||||
|
||||
@@ -73,23 +53,8 @@ struct MapPage {
|
||||
}
|
||||
|
||||
aboutToAppear(): void {
|
||||
this.checkLocationPermission()
|
||||
}
|
||||
this.locationHelper.requestPermissionsFromUser((allowScope: boolean, allowPrecision: boolean) => {
|
||||
|
||||
getLocationAddress() {
|
||||
let reverseGeocodeRequest:geoLocationManager.ReverseGeoCodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
|
||||
try {
|
||||
geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest, (err, data) => {
|
||||
if (err) {
|
||||
console.error('getAddressesFromLocation: err=' + JSON.stringify(err));
|
||||
}
|
||||
if (data) {
|
||||
console.log('getAddressesFromLocation: data=' + JSON.stringify(data));
|
||||
this.locText = data[0].placeName ?? '';
|
||||
}
|
||||
});
|
||||
} catch (err) {
|
||||
console.error("errCode:" + JSON.stringify(err));
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user