
应用接续实战 原创
一、简介
应用接续,指当用户在一个设备上操作某个应用时,可以在另一个设备的同一个应用中快速切换,并无缝衔接上一个设备的应用体验。
比如我们在使用手机进行文字编辑时,此时想使用带键盘的平板继续编辑,那么无需重新打字,而是继续之前的内容。接续完成后,之前设备的应用可退出或保留,用户可以将注意力集中在被拉起的设备上,继续执行任务。
如图所示:
二、运作机制
以此例为例:
在源端也就是手机端,通过UIAbility的onContinue()回调,开发者可以保存待接续的业务数据(TextInput组件的输入内容)。系统将自动保存页面状态,如当前页面的浏览进度;开发者需要通过onContinue接口保存页面等业务内容。
分布式框架提供跨设备应用界面、页面栈以及业务数据的保存和恢复机制,负责将数据从源端(手机)发送到对端(平板)。
在对端,同一UIAbility通过onCreate/onNewWant接口恢复业务数据。
三、使用限制
(1)双端设备需要登录同一华为账号。
(2)双端设备需要打开Wi-Fi和蓝牙开关。 条件允许时,建议双端设备接入同一个局域网,可提升数据传输的速度。
(3)应用接续只能在同应用(UIAbility)之间触发,双端设备都需要有该应用。
(4)为了接续体验,在onContinue回调中使用wantParam传输的数据需要控制在100KB以下,大数据量请使用分布式数据对象进行同步。
四、开发步骤
(1)启用应用接续能力
在module.json5文件的abilities中,将continuable标签配置为“true”,表示该UIAbility可被迁移。配置为false的UIAbility将被系统识别为无法迁移且该配置默认值为false。
(2)根据需要配置应用启动模式类型
(3)将TextInput组件输入的内容存入AppStroage中
(4)在源端UIAbility中实现onContinue()接口
返回值为AGREE表示同意接续
(5)在目标端UIAbility中实现onCreate()与onNewWant()接口,恢复迁移数据。
自此接续功能完成,只有一个设备打开app,另一台设备桌面底部就会显示接续标志,点击即可进行接续。
五、注意事项
接口restoreWindowStage(this.storage)必须在同步接口方法中执行,如果在异步回调中执行,可能会导致应用迁移后页面加载失败。
如果是单实例应用,需要额外实现onNewWant()接口,实现方式与onCreate()的实现相同。
