乌市泽哥 发表于 2025-1-11 09:18:27

[HarmonyOS Next示例代码]Web和应用的跳转与拉起

HarmonyOS next 示例代码全集

HarmonyOS_Samples/WebApplicationJump
Web和应用的跳转与拉起

介绍

本示例基于应用拉起相关能力,实现了Web页面与ArkTS页面的相互拉起、从Web页面拉起各类应用、以及拉起应用市场详情页等场景。
结果预览

手机运行结果图如下:

https://img-blog.csdnimg.cn/img_convert/eb0dafeb3b702141d7584f07c81a9ba4.gif
工程目录结构

├──entry/src/main/ets                                 // 代码区
│├──common
│|├──Logger.ets                                     // 日志工具类
│|└──Constants.ets                                  // 常量
│├──entryability
│|└──EntryAbility.ets
│├──entrybackupability
│|└──EntryBackupAbility.ets
│└──pages
│   ├──Index.ets                                    // 入口界面
│   └──OriginPage.ets                                 // 原生页面
└──entry/src/main/resources                           // 应用资源目录 具体实现

从Web页面拉起原生页面需要在Web组件的onLoadIntercept拦截器拦截页面加载,并使用Navigation提供的组件路由能力跳转到原生的页面。
从Web页面拉起另外的Web页面,只需要在前端侧使用a标签配置href属性,即可实现从Web页面跳转到其他的Web页面。
从Web页面拉起三方应用,首先同样需要在Web组件的onLoadIntercept中进行拦截,然后执行自定义的拉起逻辑,在拉起之前,需要首先对三方应用进行配置,配置三方应用的module.json5文件中的exported属性为true,同时需要在skills属性中配置entities与actions。末了在拉起方应用内使用隐式拉起的方式,配置Want范例的配置参数,此中action配置为之前在被拉起方中的actions,同时配置entities属性也为被拉起方中的entities,末了使用startAbility进行拉起。即可在不指定bundleName的环境下拉起应用。在本项目中,您需要先安装配套的dependence目录下的PulledUpApplication应用,避免拉起三方应用时拉起失败,也可以在下载本项目后自行配置拉起参数,从而拉起其他的三方应用。
从Web页面拉起体系应用,同样的要在onLoadIntercept中进行拦截,然后可以使用配置Want参数为对应体系应用的配置,然后使用startAbility进行拉起,也可以使用具体场景中体系提供的Picker与API接口。
从Web页面跳转到市场详情页,开发者需要首先在onLoadIntercept中进行拦截,然后使用Store Kit中的应用市场推荐功能,该功能提供了loadProduct接口可以加载应用市场详情页。
从Web页面拉起其他设备的该应用,首先需要在onLoadIntercept中进行拦截,然后使用getAvailableDeviceListSync获取到可信设备列表,末了通过设置want参数中的deviceId进行应用拉起,留意该场景需要开发者多端设备登录同一华为账号、毗连同一Wi-Fi、打开蓝牙毗连。
相关权限



[*]DISTRIBUTED_DATASYNC:允许差异设备间的数据交换。
约束与限定


[*]本示例仅支持标准体系上运行,支持设备:华为手机。
[*]HarmonyOS体系:HarmonyOS NEXT Developer Beta1及以上。
[*]DevEco Studio版本:DevEco Studio NEXT Developer Beta1及以上。
[*]HarmonyOS SDK版本:HarmonyOS NEXT Developer Beta1 SDK及以上。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: [HarmonyOS Next示例代码]Web和应用的跳转与拉起