Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
a15a0294
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
a15a0294
编写于
7月 24, 2023
作者:
O
openharmony_ci
提交者:
Gitee
7月 24, 2023
浏览文件
操作
浏览文件
下载
差异文件
!21238 修复跨端迁移页面栈配置示例写法
Merge pull request !21238 from zhx/master
上级
be1a3c93
fc1cd518
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
24 addition
and
7 deletion
+24
-7
zh-cn/application-dev/application-models/hop-cross-device-migration.md
...tion-dev/application-models/hop-cross-device-migration.md
+24
-7
未找到文件。
zh-cn/application-dev/application-models/hop-cross-device-migration.md
浏览文件 @
a15a0294
...
...
@@ -47,8 +47,8 @@
|
**接口名**
|
**描述**
|
| -------- | -------- |
| onContinue(wantParam
:
{[key:
string]:
any}):
OnContinueResult | 迁移发起端在该回调中保存迁移所需要的数据,同时返回是否同意迁移:
<br/>
-
AGREE:表示同意。
<br/>
-
REJECT:表示拒绝:如应用在onContinue中异常可以直接REJECT。
<br/>
-
MISMATCH:表示版本不匹配:迁移发起端应用可以在onContinue中获取到迁移接收端应用的版本号,进行协商后,如果版本不匹配导致无法迁移,可以返回该错误。 |
| onCreate(want:
Want,
param:
AbilityConstant.LaunchParam):
void; |
多实例应用迁移接收端
在该回调中完成数据恢复,并触发页面恢复。详见
[
应用组件启动模式
](
uiability-launch-type.md
)
|
| onNewWant(want:
Want,
launchParams:
AbilityConstant.LaunchParam):
void; |
单实例应用迁移接收端
在该回调中完成数据恢复,并触发页面恢复。详见
[
应用组件启动模式
](
uiability-launch-type.md
)
|
| onCreate(want:
Want,
param:
AbilityConstant.LaunchParam):
void; |
应用迁移接收端为冷启动或多实例应用热启动时,
在该回调中完成数据恢复,并触发页面恢复。详见
[
应用组件启动模式
](
uiability-launch-type.md
)
|
| onNewWant(want:
Want,
launchParams:
AbilityConstant.LaunchParam):
void; |
迁移接收端为单实例应用热启动时,
在该回调中完成数据恢复,并触发页面恢复。详见
[
应用组件启动模式
](
uiability-launch-type.md
)
|
...
...
@@ -104,8 +104,8 @@
}
```
5.
在目标端设备UIAbility中实现onCreate()
/
onNewWant()接口,恢复迁移数据。
-
多实例场景
onCreate实现示例
5.
在目标端设备UIAbility中实现onCreate()
与
onNewWant()接口,恢复迁移数据。
-
onCreate实现示例
-
目标端设备上,在onCreate中根据launchReason判断该次启动是否为迁移LaunchReason.CONTINUATION。
-
开发者可以从want中获取保存的迁移数据。
-
完成数据恢复后,开发者需要调用restoreWindowStage来触发页面恢复:包括页面栈信息。
...
...
@@ -130,7 +130,24 @@
}
}
```
-
如果是单实例应用,则采用同样的代码实现onNewWant()接口即可。
-
如果是单实例应用,需要额外实现onNewWant()接口,实现方式与onCreate()的实现相同。
-
在onNewWant()中判断迁移场景,恢复数据,并触发页面恢复
```ts
export default class EntryAbility extends UIAbility {
storage : LocalStorage;
onNewWant(want, launchParam) {
console.info(`EntryAbility onNewWant ${AbilityConstant.LaunchReason.CONTINUATION}`)
if (launchParam.launchReason == AbilityConstant.LaunchReason.CONTINUATION) {
// get user data from want params
let workInput = want.parameters.work
console.info(`work input ${workInput}`)
AppStorage.SetOrCreate<string>('ContinueWork', workInput)
this.storage = new LocalStorage();
this.context.restoreWindowStage(this.storage);
}
}
}
6.
**可选配置:**
在应用支持迁移特性时,默认开启应用迁移状态开关,根据应用当前任务获取焦点/失去焦点通知周边的可信设备当前任务可流转/取消流转。若应用需要在特定场景下才通知周边设备可流转,则需要在应用打开时设置迁移状态为INACTIVE,在后续的业务流程中需要迁移时再设置迁移状态为ACTIVE。接口见
[
setMissionContinueState
](
../reference/apis/js-apis-inner-application-uiAbilityContext.md#uiabilitycontextsetmissioncontinuestate10
)
。
...
...
@@ -167,7 +184,7 @@
onContinue(wantParam : {[key: string]: any}) {
console.info(`onContinue version = ${wantParam.version}, targetDevice: ${wantParam.targetDevice}`)
wantParam[wantConstant.SUPPORT_CONTINUE_PAGE_STACK_KEY] = false;
wantParam[wantConstant.
Params.
SUPPORT_CONTINUE_PAGE_STACK_KEY] = false;
return AbilityConstant.OnContinueResult.AGREE;
}
...
...
@@ -187,7 +204,7 @@
onContinue(wantParam : {[key: string]: any}) {
console.info(`onContinue version = ${wantParam.version}, targetDevice: ${wantParam.targetDevice}`)
wantParam[wantConstant.SUPPORT_CONTINUE_SOURCE_EXIT_KEY] = false;
wantParam[wantConstant.
Params.
SUPPORT_CONTINUE_SOURCE_EXIT_KEY] = false;
return AbilityConstant.OnContinueResult.AGREE;
}
```
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录