在HarmonyOS实际开发中,请问目前支持自定义deeplink 跳转吗?

想在HarmonyOS中实现从其他 app 或者网页跳转到鸿蒙app,目前看到的 scheme 只能定义为https,但如果想自定义deeplink 怎么实现呢?

阅读 281
1 个回答

我所知道的浏览器支持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规则,自己去做解析打开对应页面即可