背景
在鸿蒙系统原生App环境下:
端外的H5页面有唤端App的操作,没有安装的时候跳转到对应App的应用商店下载页。
同理,App互相唤端也是这样的逻辑。
基础唤端协议规范
标准Scheme协议
[scheme]://[host]/[path]?[query]
// 示例:打开相册模块
harmonyphotos://com.huawei.gallery/module/album?page=1
参数说明表:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
scheme | string | 是 | 应用注册的协议头 |
host | string | 是 | 应用包名或服务标识 |
path | string | 否 | 功能模块路径 |
query | object | 否 | 业务参数键值对 |
唤端逻辑
端外(系统浏览器以及第三方浏览器)
表现行为:
1. 先尝试直接打开scheme,如果有安装App,则会弹出打开App的弹窗。
(这个scheme协议是需要客户端支持的)
locaiotn.href=scheme协议
2. 如果没有安装App,则跳转应用商店,
标准跳转格式对比
方案类型 | 协议格式 | 优点 | 缺点 |
---|---|---|---|
Web链接 | https://appgallery.huawei.com/app/C10112345 | 兼容性强 | 需要二次跳转 |
商店协议 | store://appgallery.com/detail?id=com.example | 直达详情页 | 部分浏览器不支持 |
搜索协议 | harmonystore://search?keyword=AppName | 容错率高 | 需处理编码问题 |
跳转商店的URL下载地址:
1️⃣:
location.href= https://appgallery.huawei.com/app/detail?id=com.meitu.meitupic
2️⃣:
locaiton.href= store://appgallery.huawei.com/app/detail?id=package应用包名
端内(App互相唤起)
需要客户端支持scheme协议,并做内置操作,有安装App打开App,反之打开应用商店下载页
QQ、微信等内置浏览器
建议的做法是:做一个打开浏览器的引导页,去浏览器后可以正常打开。