HarmonyOS如何实现自定义scheme?

当前使用API12,请问在HarmonyOS中如何注册一个scheme,例如注册ebcode://,从而实现在浏览器网页中通过scheme直接拉起App?

HarmonyOS
2024-12-23 15:16:59
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

浏览器支持Deeplink链接的打开能力。应用想要响应Deeplink拉起,需要注册viewData action和scheme+host,这样才能匹配到。如果有多个应用注册了相同的scheme+host,就会拉起应用选择框,让用户选择某个应用。

Deeplink响应的声明,需要在module.json5文件的接收Ability中skills项中增加action和uris内容:

"skills": [
{
  ...
  "actions": [
  "ohos.want.action.viewData" // 声明Deeplink接收的Action,这个是固定的
  ...
  ],
  "uris": [
  {
    "scheme": "store",  // scheme尽量做到唯一 ,仅设置此协议头就可以跳转
  "host": "test.xxx.com" // host不与其他应用相同,这样可以减少冲突
  }
  ...
  ]
  ...
}
]

需要注意deeplink链接的scheme协议头必须网页拉起的链接的应用配置的保持一致。

另外浏览器不会对deeplink链接做任何解析或处理,只会原封不动的传递给拉起的应用。因此应用只需要自己的网页端和应用端协商好url规则,自己去做解析打开对应页面即可。

<!DOCTYPE html>
  <html>
  <head>
  <meta charset="utf-8">
  <title>测试页面</title>
  <script>
  function goToLink() {
    window.open('store://appgallery.huawei.com/app/detail?id=xxxxx')
  }
  </script>
  </head>
  <body>
  <div align="center">
  <button type="button" id="btn_navi" onclick="goToLink()">跳转应用市场</button>
  </div>
  </body>
  </html>
分享
微博
QQ
微信
回复
2024-12-23 16:44:26
相关问题
HarmonyOS 如何实现自定义Toast
292浏览 • 1回复 待解决
HarmonyOS 数字自定义键盘如何实现
783浏览 • 1回复 待解决
HarmonyOS 自定义StepperView组件如何实现
458浏览 • 1回复 待解决
HarmonyOS 自定义控件实现
529浏览 • 1回复 待解决
如何实现自定义应用入场动画
1213浏览 • 1回复 待解决
HarmonyOS自定义组件增加方法如何实现
879浏览 • 1回复 待解决
HarmonyOS ArkTS 如何实现自定义装饰器
370浏览 • 1回复 待解决
HarmonyOS如何实现自定义布局内置手势
625浏览 • 0回复 待解决
swiper组件如何实现自定义切换动画
1262浏览 • 1回复 待解决
自定义颜色透明度如何实现
672浏览 • 1回复 待解决
自定义如何实现序列化
2423浏览 • 1回复 待解决