harmony 鸿蒙@ohos.app.ability.FenceExtensionAbility (FenceExtensionAbility)
@ohos.app.ability.FenceExtensionAbility (FenceExtensionAbility)
FenceExtensionAbility为开发者提供的地理围栏相关的能力,继承自ExtensionAbility。
说明:
本模块首批接口从API version 14开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 本模块接口仅可在Stage模型下使用。
导入模块
import { FenceExtensionAbility } from '@kit.LocationKit';
FenceExtensionAbility
为开发者提供地理围栏相关的能力,继承自ExtensionAbility。
属性
系统能力:SystemCapability.Location.Location.Geofence
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
context | FenceExtensionContext | 是 | 否 | 围栏服务上下文。 |
onFenceStatusChange
onFenceStatusChange(transition: geoLocationManager.GeofenceTransition, additions: Record<string, string>): void;
接收系统通知的地理围栏事件,根据围栏事件类型和数据进行相应处理。
系统能力:SystemCapability.Location.Location.Geofence
参数: |参数名| 类型|必填|说明| |————|————|————|————| |transition| geoLocationManager.GeofenceTransition| 是|地理围栏事件信息;包含地理围栏ID和具体的地理围栏事件。| |additions|Record<string, string>|是|附加信息|
示例:
import { FenceExtensionAbility, geoLocationManager } from '@kit.LocationKit';
import { notificationManager } from '@kit.NotificationKit';
import { Want, wantAgent } from '@kit.AbilityKit';
export class MyFenceExtensionAbility extends FenceExtensionAbility {
onFenceStatusChange(transition: geoLocationManager.GeofenceTransition, additions: Record<string, string>): void {
// 接受围栏状态变化事件,处理业务逻辑
console.info(`on geofence transition,id:${transition.geofenceId},event:${transition.transitionEvent},additions:${JSON.stringify(additions)}`);
// 可以发送围栏业务通知
let wantAgentInfo: wantAgent.WantAgentInfo = {
wants: [
{
bundleName: 'com.example.myapplication',
abilityName: 'EntryAbility',
parameters:
{
"geofenceId": transition?.geofenceId,
"transitionEvent": transition?.transitionEvent,
}
} as Want
],
actionType: wantAgent.OperationType.START_ABILITY,
requestCode: 100
};
wantAgent.getWantAgent(wantAgentInfo).then((wantAgentMy) => {
let notificationRequest: notificationManager.NotificationRequest = {
id: 1,
content: {
notificationContentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,
normal: {
title: `围栏通知`,
text: `on geofence transition,id:${transition.geofenceId},event:${transition.transitionEvent},additions:${JSON.stringify(additions)}`,
}
},
notificationSlotType: notificationManager.SlotType.SOCIAL_COMMUNICATION,
wantAgent: wantAgentMy
};
notificationManager.publish(notificationRequest);
});
}
}
onDestroy
onDestroy(): void;
接收FenceExtensionAbility的销毁事件并处理,会在FenceExtensionAbility销毁前回调。
系统能力:SystemCapability.Location.Location.Geofence
示例:
import { FenceExtensionAbility } from '@kit.LocationKit';
class MyFenceExtensionAbility extends FenceExtensionAbility {
onDestroy(): void {
// 处理ability销毁事件
console.info(`on ability destroy`);
}
}
你可能感兴趣的鸿蒙文章
harmony 鸿蒙@ohos.app.ability.FenceExtensionContext (FenceExtensionContext)(系统接口)
harmony 鸿蒙@ohos.app.ability.FenceExtensionContext (FenceExtensionContext)
harmony 鸿蒙@ohos.geoLocationManager (位置服务)(系统接口)
harmony 鸿蒙@ohos.geoLocationManager (位置服务)
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦