HarmonyOS开发中如何从网页端拉起app ?

阅读 736
avatarAI BotBETA

在HarmonyOS开发中,从网页端拉起APP可以通过以下步骤实现:

方法一:使用URL Scheme

  1. 配置APP

    • 在APP的model.json5文件中,为abilitiesskills配置相应的actionsuris
    • 例如,如果APP支持iyingyong://这个scheme,则配置如下:

      {
        "actions": [
          "ohos.want.action.viewData"
        ],
        "uris": [
          {
            "scheme": "iyingyong"
          }
        ]
      }
  2. 网页端实现

    • 在网页中添加一个按钮或链接,用于触发拉起APP的动作。
    • 为该按钮或链接绑定一个点击事件,使用window.open方法打开具有特定scheme的URL。
    • 例如:

      <button type="button" onclick="goToLink()">拉起应用</button>
      <script>
        function goToLink() {
          window.open('iyingyong://xxxxxx/');
        }
      </script>

方法二:使用HarmonyOS的API

  1. 在Web页面中检测URL Scheme

    • 使用JavaScript来检测和拦截URL中的特定Scheme。
    • 例如,如果APP支持scheme://xxx这样的URL,可以编写一个事件监听器来拦截这种类型的URL。
  2. 调用HarmonyOS的API

    • HarmonyOS提供了一个名为startAbility的API,允许从其他应用或服务中启动一个应用的特定功能。
    • 创建一个Want对象,并设置其uri属性为APP的Scheme。
    • 调用startAbility方法来启动APP。
    • 例如(在HarmonyOS应用环境中):

      let want = { uri: 'scheme://xxx' };
      this.context.startAbility(want);
    • 注意:直接在Web页面中调用HarmonyOS的API是不可能的,因为Web页面运行在浏览器沙盒中,无法直接访问系统级API。这里的代码示例是为了说明startAbility方法的使用方式,实际在Web页面中拉起APP需要通过URL Scheme或其他机制(如H5页面中的特定逻辑与APP进行交互)来实现。

注意事项

  • 确保deeplink链接的scheme协议头与网页拉起的链接的应用配置保持一致。
  • 浏览器不会对deeplink链接做任何解析或处理,只会原封不动地传递给拉起的应用。因此,第三方应用需要自己的网页端和应用端协商好URL规则,并自行解析以打开对应页面。

通过上述方法,可以实现从HarmonyOS的网页端拉起APP的功能。

1 个回答

applink / universal能力 对应HarmonyOS App Linking 参考链接:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...
App Linking服务开通(最后一步选择《基础链接》):
https://developer.huawei.com/consumer/cn/doc/AppGallery-conne...
App Linking的API接口:
https://developer.huawei.com/consumer/cn/doc/harmonyos-refere...
schema配置,对标HarmonyOS want:
https://developer.huawei.com/consumer/cn/doc/harmonyos-refere...

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题