• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.selectionInput.SelectionExtensionAbility (SelectionExtensionAbility) (System API)
2
3This module provides ExtensionAbility for word selection, allowing users to search or translate text selected using a mouse or touchpad.
4
5> **NOTE**
6>
7> - The initial APIs of this module are supported since API version 20. Newly added APIs will be marked with a superscript to indicate their earliest API version.
8> - The APIs provided by this module are system APIs.
9
10## Modules to Import
11
12```ts
13import { SelectionExtensionAbility } from '@kit.BasicServicesKit';
14```
15## SelectionExtensionAbility
16
17### Properties
18
19**System capability**: SystemCapability.SelectionInput.Selection
20
21| Name| Type| Read-Only| Optional| Description|
22| -------- | -------- | -------- | -------- | -------- |
23| context | [SelectionExtensionContext](./js-apis-selectionInput-selectionExtensionContext-sys.md) | No| No| Context of the SelectionExtensionAbility. This context is inherited from [ExtensionContext](../apis-ability-kit/js-apis-inner-application-extensionContext.md).|
24
25### onConnect
26
27onConnect(want: Want): rpc.RemoteObject
28
29Called when the SelectionExtensionAbility instance is created. You can execute initialization logic (such as defining variables, loading resources, and listening for word selection events) within this callback.
30
31**System capability**: SystemCapability.SelectionInput.Selection
32
33**Parameters**
34
35| Name| Type         | Mandatory| Description                            |
36| ------ | ----------- | ---- | ------------------------------- |
37| want | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | Yes| Want information of the SelectionExtensionAbility, including the ability name and bundle name.|
38
39**Return value**
40| Type  | Description                                                                |
41| ------- | ------------------------------------------------------------------ |
42| [rpc.RemoteObject](../apis-ipc-kit/js-apis-rpc.md#iremoteobject) | Remote object, which is used for communication between the client and server. |
43
44**Example**
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
74Called when the **SelectionExtensionAbility** instance is destroyed (for example, when the user disables the word selection function or switches the word selection application). You can clear resources and save data during this lifecycle. This API returns the result synchronously or uses a promise to return the result.
75
76After the **onDisconnect()** lifecycle callback is executed, the application may exit. Consequently, the asynchronous function (for example, asynchronously writing data to the database) in **onDisconnect()** may fail to be executed. Using a Promise for asynchronous callback is recommended to prevent such issues.
77
78The callback is invoked only when the SelectionExtensionAbility exits gracefully. It is not invoked in cases of abnormal exits (for example, due to low memory conditions).
79
80**System capability**: SystemCapability.SelectionInput.Selection
81
82**Example**
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