1# @ohos.app.ability.continueManager (跨端迁移) 2<!--Kit: Ability Kit--> 3<!--Subsystem: DistributedAbilityManager--> 4<!--Owner: @hobbycao--> 5<!--Designer: @gsxiaowen--> 6<!--Tester: @hanjiawei--> 7<!--Adviser: @huipeizi--> 8 9continueManager提供了应用跨端迁移的管理能力,如获取应用跨端迁移过程中快速拉起目标应用的结果。 10 11> **说明:** 12> 13> 本模块首批接口从API version 18开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 14 15## 导入模块 16 17```ts 18import { continueManager } from '@kit.AbilityKit'; 19``` 20 21## continueManager.on 22 23on(type: 'prepareContinue', context: Context, callback: AsyncCallback<ContinueResultInfo>): void 24 25在应用快速拉起时,注册回调函数以获取快速拉起结果。使用callback异步回调。 26 27> **说明:** 28> 29> 快速拉起功能支持在用户触发迁移、等待迁移数据返回的过程中,并行拉起应用,减小用户等待时间。在源端应用[module.json5配置文件](../../quick-start/module-configuration-file.md)的continueType标签的取值中添加“_ContinueQuickStart”后缀,可以开启快速拉起功能。 30 31**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 32 33**参数**: 34 35 | 参数名 | 类型 | 必填 | 说明 | 36 | -------- |-------------------------------------------------------------------------------------------------| -------- |------------------------------------------| 37 | type | string | 是 | 固定值:prepareContinue。 | 38 | context | [Context](../apis-ability-kit/js-apis-inner-application-baseContext.md) | 是 | Ability的Context。 | 39 | callback | AsyncCallback<[ContinueResultInfo](js-apis-app-ability-continueManager.md#continueresultinfo)> | 是 | 回调函数。当快速拉起结果获取成功,err为undefined,ContinueResultInfo为获取到的快速启动结果。否则为错误对象。 | 40 41**错误码:** 42 43以下错误码详细介绍请参考[DistributedSchedule错误码](errorcode-DistributedSchedule.md)。 44 45| 错误码ID | 错误信息 | 46| ------- | -------------------------------- | 47| 16300501 | the system ability work abnormally. | 48 49**示例**: 50 51 ```ts 52import { AbilityConstant, UIAbility, Want, continueManager } from '@kit.AbilityKit'; 53import { hilog } from '@kit.PerformanceAnalysisKit'; 54 55const TAG: string = '[MigrationAbility]'; 56const DOMAIN_NUMBER: number = 0xFF00; 57 58export default class MigrationAbility extends UIAbility { 59 storage : LocalStorage = new LocalStorage(); 60 61 onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { 62 hilog.info(DOMAIN_NUMBER, TAG, '%{public}s', 'Ability onCreate'); 63 64 // 1.已配置快速拉起功能,应用立即启动时触发应用生命周期回调 65 if (launchParam.launchReason === AbilityConstant.LaunchReason.PREPARE_CONTINUATION) { 66 // 注册快速拉起结果通知的回调函数 67 try { 68 continueManager.on("prepareContinue", this.context, (err, continueResultInfo) => { 69 if (err.code != 0) { 70 console.error('register failed, cause: ' + JSON.stringify(err)); 71 return; 72 } 73 console.info('register finished, ' + JSON.stringify(continueResultInfo)); 74 }); 75 } catch (e) { 76 console.error('register failed, cause: ' + JSON.stringify(e)); 77 } 78 //若应用迁移数据较大,可在此处添加加载页面(页面中显示loading等) 79 //可处理应用自定义跳转、时序等问题 80 // ... 81 } 82 } 83} 84 ``` 85 86## continueManager.off 87 88off(type: 'prepareContinue', context: Context, callback?: AsyncCallback<ContinueResultInfo>): void 89 90在应用快速拉起时,注销回调函数,不再获取快速拉起结果。使用callback异步回调。 91 92> **说明:** 93> 94> 快速拉起功能支持在用户触发迁移、等待迁移数据返回的过程中,并行拉起应用,减小用户等待时间。在源端应用[module.json5配置文件](../../quick-start/module-configuration-file.md)的continueType标签的取值中添加“_ContinueQuickStart”后缀,可以开启快速拉起功能。 95 96**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 97 98**参数**: 99 100| 参数名 | 类型 | 必填 | 说明 | 101 | -------- |------------------------------------| -------- |--------------------------------------| 102| type | string | 是 | 固定值:prepareContinue。 | 103| context | [Context](../apis-ability-kit/js-apis-inner-application-baseContext.md) | 是 | Ability的Context。 | 104| callback | AsyncCallback<[ContinueResultInfo](js-apis-app-ability-continueManager.md#continueresultinfo)> | 否 | 回调函数。当回调函数注销成功,err为undefined,ContinueResultInfo为获回调函数注销结果。否则为错误对象。 | 105 106**错误码:** 107 108以下错误码详细介绍请参考[DistributedSchedule错误码](errorcode-DistributedSchedule.md)。 109 110| 错误码ID | 错误信息 | 111|----------| -------------------------------- | 112| 16300501 | the system ability work abnormally. | 113 114**示例**: 115 116 ```ts 117import { AbilityConstant, UIAbility, Want, continueManager } from '@kit.AbilityKit'; 118import { hilog } from '@kit.PerformanceAnalysisKit'; 119 120const TAG: string = '[MigrationAbility]'; 121const DOMAIN_NUMBER: number = 0xFF00; 122 123export default class MigrationAbility extends UIAbility { 124 storage : LocalStorage = new LocalStorage(); 125 126 onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { 127 hilog.info(DOMAIN_NUMBER, TAG, '%{public}s', 'Ability onCreate'); 128 129 // 1.已配置快速拉起功能,应用立即启动时触发应用生命周期回调 130 if (launchParam.launchReason === AbilityConstant.LaunchReason.PREPARE_CONTINUATION) { 131 // 注销快速拉起结果通知的回调函数 132 try { 133 continueManager.off("prepareContinue", this.context, (err, continueResultInfo) => { 134 if (err.code != 0) { 135 console.error('unregister failed, cause: ' + JSON.stringify(err)); 136 return; 137 } 138 console.info('unregister finished, ' + JSON.stringify(continueResultInfo)); 139 }); 140 } catch (e) { 141 console.error('unregister failed, cause: ' + JSON.stringify(e)); 142 } 143 //若应用迁移数据较大,可在此处添加加载页面(页面中显示loading等) 144 //可处理应用自定义跳转、时序等问题 145 // ... 146 } 147 } 148} 149 ``` 150 151## ContinueResultInfo 152 153注册或注销回调函数返回的快速拉起的结果。 154 155**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 156 157| 名称 | 类型 | 只读 | 可选 | 说明 | 158| -------- |-------------------------------------------------------------------------------|----|----|----------| 159| resultState | [ContinueStateCode](js-apis-app-ability-continueManager.md#continuestatecode) | 否 | 否 | 操作结果状态码。 | 160| resultInfo | string | 否 | 是 | 操作结果的说明。 | 161 162## ContinueStateCode 163 164快速拉起的结果状态码的枚举值。 165 166**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 167 168| 名称 | 值 | 说明 | 169| -------- |----|-------| 170| SUCCESS | 0 | 操作成功。 | 171| SYSTEM_ERROR | 其它 | 操作失败。 | 172 173