uniapp 鸿蒙app deep link 如何配置和使用

在uniapp开发的鸿蒙APP中,如何配置和使用deep link实现应用跳转?具体需要哪些配置步骤?在manifest.json或代码层面有哪些注意事项?鸿蒙系统对deep link的支持是否与其他Android平台存在差异?

2 回复

在uniapp中配置鸿蒙deep link,需在manifest.json的"openharmony"节点添加uriScheme。使用时通过uni.navigateToMiniProgram跳转,或直接在浏览器输入自定义scheme链接唤起应用。注意鸿蒙和安卓配置方式不同。

更多关于uniapp 鸿蒙app deep link 如何配置和使用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在 UniApp 中配置和使用 Deep Link(深度链接)可让应用通过特定链接直接打开指定页面,适用于鸿蒙(HarmonyOS)及其他平台。以下是具体步骤和示例:

一、配置 Deep Link

  1. manifest.json 中配置 URL Scheme

    {
      "app-plus": {
        "distribute": {
          "android": {
            "schemes": ["yourapp"] // 自定义 Scheme,如 yourapp://
          },
          "ios": {
            "schemes": ["yourapp"]
          }
        }
      }
    }
    

    注意:鸿蒙应用需在 openharmony 节点下配置(具体依赖鸿蒙官方文档)。

  2. 鸿蒙原生配置(如单独开发鸿蒙版):

    • config.json 中添加 abilitiesuri 权限:
      {
        "abilities": [
          {
            "name": "EntryAbility",
            "srcEntry": "./ets/entryability/EntryAbility.ets",
            "skills": [
              {
                "entities": ["entity.system.home"],
                "actions": ["action.system.home"],
                "uris": [
                  {
                    "scheme": "yourapp",
                    "host": "example.com"
                  }
                ]
              }
            ]
          }
        ]
      }
      

二、使用 Deep Link

  1. 生成链接示例

    • 格式:yourapp://path?key=value
    • 示例:yourapp://detail?id=123
  2. UniApp 中处理链接: 在 App.vueonLaunchonShow 中监听:

    export default {
      onShow(options) {
        if (options.query && options.query.url) {
          const url = decodeURIComponent(options.query.url);
          console.log('Deep Link URL:', url);
          // 解析并跳转到对应页面,例如:
          if (url.includes('detail')) {
            uni.navigateTo({ url: '/pages/detail/detail?id=123' });
          }
        }
      }
    }
    
  3. 鸿蒙原生处理(如适用): 在 EntryAbility.ets 中重写 onCreate 方法:

    import Ability from '[@ohos](/user/ohos).app.ability.UIAbility';
    
    export default class EntryAbility extends Ability {
      onCreate(want, launchParam) {
        if (want.uri) {
          console.log('Deep Link URI:', want.uri);
          // 解析 uri 并跳转页面
        }
      }
    }
    

三、测试方法

  • 网页或短信中测试
    在浏览器或短信中输入 yourapp://detail?id=123,点击后应触发应用打开并跳转。
  • ADB 测试(Android/鸿蒙)
    运行命令:
    adb shell am start -d "yourapp://detail?id=123"
    

注意事项

  • 平台差异:鸿蒙的 Deep Link 配置可能随版本更新变化,请参考最新官方文档。
  • 参数传递:确保链接参数被正确解析,避免特殊字符问题(使用 encodeURIComponent 编码)。
  • 兼容性:UniApp 的 schemes 配置主要针对 Android/iOS,鸿蒙需单独适配原生配置。

通过以上步骤,即可在 UniApp 和鸿蒙应用中实现 Deep Link 功能,提升用户体验和跨应用跳转能力。

回到顶部