diff --git a/zh-cn/application-dev/application-models/hop-multi-device-collaboration.md b/zh-cn/application-dev/application-models/hop-multi-device-collaboration.md index cd5b60fc2c78dcfd5fd63b3b41a76e593cbc8447..02ab579f5bcf90cf2bf8a609a751312f4f5e795b 100644 --- a/zh-cn/application-dev/application-models/hop-multi-device-collaboration.md +++ b/zh-cn/application-dev/application-models/hop-multi-device-collaboration.md @@ -13,8 +13,6 @@ - [通过跨设备Call调用实现多端协同](#通过跨设备call调用实现多端协同) -- [退出由跨设备拉起的ServiceExtensionAbility组件](#退出由跨设备拉起的serviceextensionability组件) - ## 多端协同流程 @@ -45,7 +43,8 @@ | **接口名** | **描述** | | -------- | -------- | | startAbility(want: Want, callback: AsyncCallback<void>): void; | 启动UIAbility和ServiceExtensionAbility(callback形式)。 | - +| stopServiceExtensionAbility(want: Want, callback: AsyncCallback<void>): void; | 退出启动的ServiceExtensionAbility,callback形式接口。 | +| stopServiceExtensionAbility(want: Want): Promise<void>; | 退出启动的ServiceExtensionAbility,Promise形式接口。 | ### 开发步骤 @@ -94,7 +93,14 @@ } // context为发起端UIAbility的AbilityContext this.context.startAbility(want).then(() => { + // 其他业务处理 // ... + // 退出跨设备启动的ServiceExtensionAbility + this.context.stopServiceExtensionAbility(want).then(() => { + console.info("stop service extension ability success") + }).catch((err) => { + console.info("stop service extension ability err is " + JSON.stringify(err)) + }) }).catch((err) => { // ... }) @@ -192,6 +198,8 @@ | connectServiceExtensionAbility(want: Want, options: ConnectOptions): number; | 连接ServiceExtensionAbility。 | | disconnectServiceExtensionAbility(connection: number, callback:AsyncCallback<void>): void; | 断开连接(callback形式)。 | | disconnectServiceExtensionAbility(connection: number): Promise<void>; | 断开连接(promise形式)。 | +| stopServiceExtensionAbility(want: Want, callback: AsyncCallback<void>): void; | 退出启动的ServiceExtensionAbility,callback形式接口。 | +| stopServiceExtensionAbility(want: Want): Promise<void>; | 退出启动的ServiceExtensionAbility,Promise形式接口。 | ### 开发步骤 @@ -268,6 +276,16 @@ }) ``` +6. 退出远端ServiceExtensionAbility。 + + ```ts + // 退出跨设备启动的ServiceExtensionAbility + this.context.stopServiceExtensionAbility(want).then(() => { + console.info("stop service extension ability success") + }).catch((err) => { + console.info("stop service extension ability err is " + JSON.stringify(err)) + }) + ``` ## 通过跨设备Call调用实现多端协同 @@ -487,81 +505,3 @@ } } ``` - -## 退出由跨设备拉起的ServiceExtensionAbility组件 - -下面介绍退出由跨设备拉起的ServiceExtensionAbility组件的方法。 - -### 接口说明 - - **表5** API接口功能介绍 - -| 接口名 | 描述 | -| -------- | -------- | -| stopServiceExtensionAbility(want: Want): Promise<void>; | 退出启动的ServiceExtensionAbility,Promise形式接口。 | -| stopServiceExtensionAbility(want: Want, callback: AsyncCallback<void>): void; | 退出启动的ServiceExtensionAbility,callback形式接口。 | - - -### 开发步骤 - -1. 使用stopServiceExtensionAbility接口退出由startAbility接口或connectServiceExtensionAbility接口拉起的跨设备ServiceExtension应用。 - - 1. 导入接口模块 - - ```ts - import Ability from '@ohos.app.ability.UIAbility'; - ``` - or - ```ts - import ServiceExtensionAbility from '@ohos.app.ability.ServiceExtensionAbility'; - ``` - - 2. 退出使用startAbility接口启动的跨设备ServiceExtension应用。 - - ```ts - let deviceId = "device ID obtained from manager" - let want = { - deviceId: deviceId, - bundleName: "com.acts.actsstopserviceextensionmanualtest", - abilityName: "ServiceAbility", - }; - this.context.startAbility(want).then(() => { - console.info("start ability success") - this.context.stopServiceExtensionAbility(want).then(() => { - console.info("stop service extension ability success") - }).catch((err) => { - console.info("stop service extension ability err is " + JSON.stringify(err)) - }) - }).catch((err) => { - console.info("start ability err is " + JSON.stringify(err)) - }) - ``` - - 3. 退出使用connectServiceExtensionAbility接口启动的跨设备ServiceExtension应用。 - - ```ts - let deviceId = "device ID obtained from manager" - let want = { - deviceId: deviceId, - bundleName: "com.acts.actsstopserviceextensionmanualtest", - abilityName: "ServiceAbility", - }; - let context = this.context; - let connectOptions = { - onConnect(elementName, remote) { - console.info("onConnect called elementName is {" + JSON.stringify(elementName) + "}" + " remote is {" + JSON.stringify(remote) + "}"); - context.stopServiceExtensionAbility(want).then(() => { - console.info("stop service extension ability success") - }).catch((err) => { - console.info("stop service extension ability err is " + JSON.stringify(err)) - }) - }, - onDisconnect(elementName) { - console.info("onDisconnect called elementName is {" + JSON.stringify(elementName) + "}"); - }, - onFailed(code) { - console.info("onFailed called elementName is {" + JSON.stringify(code) + "}"); - } - } - this.context.connectServiceExtensionAbility(want, connectOptions) - ```