如何实现 AppLinking 深度链接?

【通过 URL 从浏览器或其他应用直接打开应用内指定页面。】

HarmonyOS
2026-06-29 10:04:39
浏览
1
收藏 0
回答 1
已解决
回答 1
按赞同
/
按时间
CRM梦旅人

【module.json5 配置 + onNewWant 处理:

// 1. module.json5 中配置 skills
{
  "skills": [
    {
      "actions": ["ohos.want.action.viewData"],
      "uris": [
        {
          "scheme": "myapp",
          "host": "detail",
          "path": "/item"
        }
      ]
    }
  ]
}

// 2. Ability 中接收 import { UIAbility, AbilityConstant, Want } from '@kit.AbilityKit' import { router } from '@kit.ArkUI'

class DeepLinkAbility extends UIAbility { onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void { this.handleDeepLink(want) }

onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { this.handleDeepLink(want) }

private handleDeepLink(want: Want): void { let uri = want.uri ?? '' if (uri.startsWith('myapp://detail/item')) { let params = parseQuery(uri) let itemId = params.get('id') ?? '' router.pushUrl({ url: 'pages/ItemDetail', params: { itemId: itemId } as Object }) } } }

function parseQuery(uri: string): Map<string, string> { let map = new Map<string, string>() let query = uri.split('?')[1] ?? '' query.split('&').forEach((pair: string) => { let [k, v] = pair.split('=') if (k && v) { map.set(k, v) } }) return map }


`skills` 中的 `uris` 声明 URL scheme,`onNewWant`/`onCreate` 解析 URI 路由到对应页面。】
分享
微博
QQ
微信
回复
2026-06-29 11:38:22
相关问题
如何AppLinking实现深度链接跳转?
61浏览 • 1回复 待解决
如何使用 OpenLink 跳转深度链接
147浏览 • 1回复 已解决
应用链接深度链接(App Linking)
365浏览 • 1回复 已解决
如何使用 AppLinking 实现应用间跳转?
113浏览 • 1回复 待解决
如何实现应用的深链接(Deep Link)
66浏览 • 1回复 已解决
HarmonyOS 链接不到AVBuffer函数实现
776浏览 • 1回复 待解决
鸿蒙如何与 DeepSeek 深度融合?
1227浏览 • 1回复 已解决
如何优化布局避免深度嵌套?
94浏览 • 1回复 已解决
Binder链接实现有哪些方法?
1806浏览 • 1回复 待解决
AppLinking 的跳转安全性怎么保证?
54浏览 • 1回复 待解决
ArkUI渲染性能深度优化
987浏览 • 0回复 待解决
使用ArkUI和ArkTS如何运行深度学习模型
3903浏览 • 1回复 待解决
如何使用@ObservedV2和@Trace深度观测
54浏览 • 1回复 待解决