HarmonyOS鸿蒙Next中用了App Linking,在h5网页的时候还可以怎么拉起app呢

HarmonyOS鸿蒙Next中用了App Linking,在h5网页的时候还可以怎么拉起app呢 用了App Linking,在h5网页的时候还可以怎么拉起app呢,还是说要再配置一个Deep Linking,然后window.open打开

// index.html
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
</head>
<body>
    <h1>Hello World</h1>
    <!--方式一、通过绑定事件window.open方法实现跳转-->
    <button class="doOpenLink" onclick="doOpenLink()">跳转其他应用一</button>
    <!--方式二、通过超链接实现跳转-->
    <a href="link://www.example.com">跳转其他应用二</a>
</body>
</html>
<script>
function doOpenLink() {
    window.open("link://www.example.com")
}
</script>

更多关于HarmonyOS鸿蒙Next中用了App Linking,在h5网页的时候还可以怎么拉起app呢的实战教程也可以访问 https://www.itying.com/category-93-b0.html

9 回复

配置好链接,可以用window.open打开,

更多关于HarmonyOS鸿蒙Next中用了App Linking,在h5网页的时候还可以怎么拉起app呢的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


只要按要求配置了,从哪里打开链接都可以,open是一种方式,本质上也是从浏览器访问,文档里提到,验证链接是否可用,粘贴到备忘录中打开也可以。

是不是说,比如我当前打开的是example.com,然后app linking是app.example.com,我在网页里window.open('app.example.com')就能拉起?

需要根据文档去配置:通过App Linking应用链接拉起指定应用
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-linking-startupapp#场景介绍

可以这样理解:H5 侧本质上还是让浏览器打开一个已经完成 App Linking 关联校验的 https 链接。前提是 app.example.com 这个域名已经在应用侧配置 applinking、服务端放置校验文件,并且设备上已安装对应应用。

如果只是 window.open(‘https://app.example.com/xxx’),是否能拉起取决于浏览器对用户手势和新窗口的限制,建议放在点击事件里触发,并保留 H5 兜底页。不要用自定义 scheme 当唯一入口,App Linking 更适合作为公开链接和应用拉起的统一路径。

App Linking 的核心是访问一个已经完成域名校验和应用关联的 HTTPS 链接,而不是一定要再造一个自定义 scheme。H5 里可以用 <a href="https://app.example.com/xxx"> 或用户点击事件里 window.open('https://app.example.com/xxx'),前提是这个域名和路径已经按 App Linking 配好并验证通过。

Deep Linking/自定义 scheme 可以作为兜底,但在浏览器里兼容性、拦截策略和安全提示会更多。建议优先用 App Linking 的 HTTPS 链接,且必须由用户点击触发,别在页面加载时自动拉起,否则容易被浏览器拦截。

通过系统浏览器或ArkWeb拉起

ArkWeb深度集成了App Linking的能力,当用户在系统浏览器或者集成ArkWeb的应用的网页上点击某个链接时,若有链接匹配的应用,系统则会通过App Linking能力优先拉起目标应用,并在应用内展示相应的内容。此机制有如下限制:

  1. 如果用户当前浏览的网页的域名与点击的App Linking链接的域名完全一致,则系统会继续在系统浏览器或ArkWeb中打开该链接,以维持连贯的用户浏览体验。
  2. 如果域名不完全一致(例如example.com和app.example.com),则系统会通过App Linking能力优先拉起目标应用,并在应用内展示相应的内容。

相关实现可参考:【Web页面开发与部署

cke_2351.png

在 HarmonyOS Next 中,H5 网页拉起 App 除 App Linking 外,还可使用:

  • URL Scheme:在 H5 中通过 location.href = 'myapp://path' 触发系统解析并拉起应用。
  • Universal Link:配置关联域名,通过 HTTPS 链接直接唤起。
  • 应用市场跳转:若未安装,可跳转 AppGallery 页面。

需在 module.json5 中配置对应 scheme 及域名白名单。

在鸿蒙Next中,如果已经配置了App Linking(https链接),H5网页直接使用该https链接即可拉起App,通过<a>标签或window.open()跳转都行,不需要再单独配置Deep Linking。App Linking本身会校验域名与签名,未安装时能跳转应用市场或错误页,体验更统一。

若只用Deep Linking(自定义scheme,如link://),H5中可以用window.open("link://xxx")location.href拉起,但需自行处理浏览器拦截、未安装等场景,可靠性不如App Linking。建议优先使用App Linking的https链接作为唯一入口,确保兼容性。

回到顶部