HarmonyOS 鸿蒙Next H5页面无法通过href唤起App

发布于 1周前 作者 vueper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next H5页面无法通过href唤起App H5页面上无法通过href方式唤起App,必须通过手动点击页面才可以

openUrl() {
    window.location.href = this.url;
    setTimeout(() => {
        window.location.href = 'store://appgallery.huawei.com/app/detail?id=com.ppdai.loan.hm';
    }, 3000)
}
2 回复

老师这个是正常的做需求增加的功能,网页跳转App支持管控,目前浏览器接收到deeplink想要拉起三方应用就会弹出弹窗,点击后跳转

老师我们现在验证是,会出现弹窗,点击后,如果没有安装,跳转去应用市场,安装了跳转应用。您说的俩次拉起是什么意思呢。

import { webview } from '@kit.ArkWeb';
import { common, OpenLinkOptions } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

@Entry
@Component
struct Index {
  @State info: string = '-';
  context: common.UIAbilityContext = this.getContext(this) as common.UIAbilityContext;
  controller = new webview.WebviewController();

  build() {
    Column({ space: 10 }) {
      Web({
        src: $rawfile('index.html'),
        controller: this.controller
      })
      .height(200)
      .zoomAccess(false)
      .onLoadIntercept((event) => {
        const url: string = event.data.getRequestUrl();
        if (url === 'third-party://pages/toThirdApp/appgallery') {
          const link: string = "https://www.xiaohongshu.com/user/profile/613881f500000000020205fc?xhsshare=CopyLink&appuid=613881f500000000020205fc&apptime=1690268402";
          const openLinkOptions: OpenLinkOptions = {
            appLinkingOnly: false,
            parameters: {
              name: 'test'
            }
          };
          this.context.openLink(link, openLinkOptions).then(() => {
            this.info = link + ', return message: link success.';
          }).catch((err: BusinessError) => {
            console.error(`open link failed. Code is ${err.code}, message is ${err.message}`);
          })
        }
        // 返回true表示阻止此次加载,否则允许此次加载
        return false;
      })

      Text(`目标应用URL: ${this.info}`)
      .fontSize(15)
      .width('90%')
    }
    .height('100%')
    .width('100%')
  }
}

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
<a href="third-party://pages/toThirdApp/appgallery">拉起</a>
<br>
</body>
</html>

老师可以参考这个,如果安装他会直接跳转应用,未安装他会跳到应用市场详情页

老师您方便抽一个可复现的demo,我们这里看下嘛,因为我们这里测试是可以的

更多关于HarmonyOS 鸿蒙Next H5页面无法通过href唤起App的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对“HarmonyOS 鸿蒙Next H5页面无法通过href唤起App”的问题,可能的原因及解决方案如下:

在HarmonyOS中,H5页面通过href唤起App通常依赖于URL Scheme或Universal Links等机制。若无法成功唤起,可能原因包括:

  1. URL Scheme配置错误:请检查App的URL Scheme是否正确配置在manifest文件中,并确保与H5页面中href使用的Scheme完全一致。

  2. Intent Filter缺失:App的manifest文件中可能缺少对应的Intent Filter配置,导致系统无法识别并匹配到该URL Scheme。

  3. H5页面问题:H5页面中的href可能存在拼写错误或格式问题,导致无法正确解析并触发唤起App的动作。

  4. 系统权限或策略限制:部分HarmonyOS设备或版本可能对URL Scheme唤起App有限制,或需用户授权才能唤起。

  5. 浏览器兼容性:不同浏览器对URL Scheme的处理可能存在差异,请确保测试环境与实际用户环境一致。

请检查上述可能原因,并逐一排查。若问题依旧无法解决,请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部