HarmonyOS 鸿蒙Next应用有一个H5落地页面,如果安装了app,则可以打开app,如果没有则跳转应用商店

HarmonyOS 鸿蒙Next应用有一个H5落地页面,如果安装了app,则可以打开app,如果没有则跳转应用商店 应用有一个H5落地页面,如果安装了app,则可以打开app,如果没有则跳转应用商店

2 回复

参考如下方案:

H5对于已安装应用拉起应用,对于未安装应用拉起应用市场进行下载; 如果在项目中则使用startAbility打开deepLink进行拉起应用,如果在浏览器中打开H5页面,则绑定点击事件,点击按钮后window.open(deepLink)进行跳转;

实现步骤: 1 通过onLoadIntercept拦截前端H5请求,进行url判断 2 检测url类型,是否类型正确 3 使用bundleManager.canOpenLink检测是否可以打开相关应用 文档地址:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/canopenlink-V5

4 已安装应用则拉起 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/deep-linking-startup-V5 5未安装应用跳转应用市场进行下载

被起方需配置: 浏览器支持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=C1229502635594278976')
}
</script>
</head>
<body>
<div align="center">
<button type="button" id="btn_navi" onclick="goToLink()">跳转应用市场</button>
</div>
</body>
</html>

更多关于HarmonyOS 鸿蒙Next应用有一个H5落地页面,如果安装了app,则可以打开app,如果没有则跳转应用商店的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next应用中,实现H5落地页面判断是否安装应用并跳转的功能,可以通过以下步骤完成:

  1. URL Scheme:在H5页面中使用URL Scheme来检测是否安装了目标应用。URL Scheme是应用自定义的协议,用于从浏览器或其他应用直接打开目标应用。例如,myapp:// 是目标应用的URL Scheme。

  2. Intent:在H5页面中使用JavaScript代码尝试通过URL Scheme打开应用。如果应用已安装,页面会跳转到应用;如果未安装,则会捕获到错误,并执行跳转到应用商店的逻辑。

  3. 应用商店链接:在H5页面中准备应用商店的链接,当检测到应用未安装时,页面会自动跳转到应用商店的下载页面。

以下是实现该功能的示例代码:

function openApp() {
    var appUrl = 'myapp://'; // 目标应用的URL Scheme
    var appStoreUrl = 'https://appstore.huawei.com/app/C123456'; // 应用商店的下载链接

    window.location.href = appUrl;
    setTimeout(function() {
        if (!document.hidden) {
            window.location.href = appStoreUrl;
        }
    }, 2000);
}

在上述代码中,myapp:// 是目标应用的URL Scheme,https://appstore.huawei.com/app/C123456 是应用商店的下载链接。当用户点击“打开应用”链接时,页面会尝试通过URL Scheme打开应用。如果应用未安装,页面会在2秒后跳转到应用商店的下载页面。

通过这种方式,可以在H5落地页面中实现应用安装检测和跳转功能。

回到顶部