鸿蒙开发中,如何支持deeplink?
在鸿蒙(HarmonyOS)开发中,支持Deep Link(深度链接)主要涉及在你的应用中定义URI Scheme,以便其他应用可以通过特定的URI来启动你的应用或应用中的特定页面。以下是在鸿蒙系统中实现Deep Link的基本步骤:
首先,你需要在应用的config.json
文件中定义你的URI Scheme。这允许系统识别并响应符合该Scheme的URI。
在config.json
的abilities
节点下,找到或添加一个intent-filter
节点,并在其中定义你的data
和action
。例如:
{
"app": {
"bundleName": "com.example.myapp",
"vendor": "example",
"version": {
"code": 1,
"name": "1.0"
},
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"name": "com.example.myapp.MainAbility",
"icon": "$media:icon",
"label": "$string:mainability_name",
"description": "$string:mainability_description",
"visible": true,
"defaultAbility": true,
"type": "page",
"orientation": "portrait",
"intentFilters": [
{
"actions": [
"action.view"
],
"categories": [
"android.intent.category.DEFAULT",
"android.intent.category.BROWSABLE"
],
"data": [
{
"scheme": "yourapp",
"host": "example.com",
"path": "/main",
"mimeType": "text/plain"
}
]
}
]
}
]
}
}
在上述配置中,scheme
是"yourapp",这是URI的开头部分,用于唯一标识你的应用。其他属性如host
、path
和mimeType
可以根据需要设置。
在你的Ability(页面)代码中,你需要覆盖onNewIntent
方法来处理新的Intent,特别是包含Deep Link的Intent。鸿蒙系统没有直接名为onNewIntent
的方法,但你可以通过监听Ability的生命周期事件或使用其他方式来检查Intent。
例如,你可以在onStart
方法中检查启动你的Ability的Intent是否包含Deep Link的URI,并据此执行相应的操作。
为了测试Deep Link是否按预期工作,你可以使用鸿蒙系统的开发者工具或第三方工具(如浏览器或另一个应用)来尝试使用你的URI Scheme打开你的应用。
可以参考下面代码,在应用里面调转到浏览器打开对应的链接