• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.selectionInput.SelectionExtensionAbility (划词扩展能力)(系统接口)
2
3本模块提供划词扩展功能,用于用户通过鼠标、触控板等方式选择文本后的搜索、翻译等场景。
4
5> **说明:**
6>
7> - 本模块首批接口从API version 20开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8> - 本模块接口为系统接口。
9
10## 导入模块
11
12```ts
13import { SelectionExtensionAbility } from '@kit.BasicServicesKit';
14```
15## SelectionExtensionAbility
16
17### 属性
18
19**系统能力:** SystemCapability.SelectionInput.Selection
20
21| 名称 | 类型 | 只读 | 可选 | 说明 |
22| -------- | -------- | -------- | -------- | -------- |
23| context | [SelectionExtensionContext](./js-apis-selectionInput-selectionExtensionContext-sys.md) | 否 | 否 | SelectionExtensionAbility的上下文环境,继承自[ExtensionContext](../apis-ability-kit/js-apis-inner-application-extensionContext.md)。 |
24
25### onConnect
26
27onConnect(want: Want): rpc.RemoteObject
28
29当SelectionExtensionAbility实例完成创建时,系统会触发该回调,开发者可在该回调中执行初始化逻辑(如定义变量、加载资源、监听划词事件等)。
30
31**系统能力:** SystemCapability.SelectionInput.Selection
32
33**参数:**
34
35| 参数名 | 类型          | 必填 | 说明                             |
36| ------ | ----------- | ---- | ------------------------------- |
37| want | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是 | 当前SelectionExtensionAbility的Want类型信息,包括Ability名称、Bundle名称等。 |
38
39**返回值:**
40| 类型   | 说明                                                                 |
41| ------- | ------------------------------------------------------------------ |
42| [rpc.RemoteObject](../apis-ipc-kit/js-apis-rpc.md#iremoteobject) | RemoteObject对象,用于客户端和服务端通信。  |
43
44**示例:**
45
46```ts
47import { SelectionExtensionAbility } from '@kit.BasicServicesKit';
48import { rpc } from '@kit.IPCKit';
49import { Want } from '@kit.AbilityKit';
50import { hilog } from '@kit.PerformanceAnalysisKit';
51
52const TAG: string = '[SelectionExtensionAbility]';
53
54class StubTest extends rpc.RemoteObject {
55  constructor(des: string) {
56    super(des);
57  }
58  onConnect(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option: rpc.MessageOption) {
59  }
60}
61
62class ServiceExtAbility extends SelectionExtensionAbility {
63  onConnect(want: Want): rpc.RemoteObject {
64    hilog.info(0x0000, TAG, `onConnect, want: ${want.abilityName}`);
65    return new StubTest('test');
66  }
67}
68```
69
70### onDisconnect
71
72onDisconnect(): void
73
74当SelectionExtensionAbility实例被销毁(例如用户关闭划词开关或切换划词应用)时,系统触发该回调。开发者可以在该生命周期中执行资源清理、数据保存等相关操作。使用同步回调或Promise异步回调。
75
76在执行完onDisconnect生命周期回调后,应用可能会退出,从而可能导致onDisconnect中的异步函数未能正确执行,比如异步写入数据库。推荐使用Promise异步回调,避免因应用退出导致onDisconnect中的异步函数(比如异步写入数据库)未能正确执行。
77
78仅当SelectionExtensionAbility正常退出时会触发该回调,异常退出场景(例如低内存查杀)不会触发该回调。
79
80**系统能力:** SystemCapability.SelectionInput.Selection
81
82**示例:**
83
84```ts
85import { SelectionExtensionAbility } from '@kit.BasicServicesKit';
86import { hilog } from '@kit.PerformanceAnalysisKit';
87
88const TAG: string = '[SelectionExtensionAbility]';
89
90class ServiceExtAbility extends SelectionExtensionAbility {
91  onDisconnect(): void {
92    hilog.info(0x0000, TAG, `onDisconnect`);
93  }
94}
95```
96