首页 > 其他分享 >HarmonyOS的连接艺术之一:让应用之间无缝协作

HarmonyOS的连接艺术之一:让应用之间无缝协作

时间:2024-10-21 15:18:17浏览次数:8  
标签:const URL App HarmonyOS 协作 common 应用 跳转 无缝

本文旨在深入探讨华为鸿蒙HarmonyOS Next系统(截止目前API12)的技术细节,基于实际开发实践进行总结。
主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。
本文为原创内容,任何形式的转载必须注明出处及原作者。

应用之间协作的需求越来越普遍。例如,你可能在浏览商品时需要打开地图查看店铺位置,或者在填写订单时需要填写收货地址。这种场景下,应用跳转功能就发挥了重要作用,它能够帮助用户在不同应用之间无缝切换,提升用户体验。

应用跳转的两种类型

HarmonyOS 提供了两种应用跳转方式:
1. 拉起指定应用
这种类型的应用跳转最常见,就像你打开浏览器,然后点击链接跳转到其他网站一样。例如,你可以在购物 App 中点击“查看地图”按钮,然后系统就会自动打开地图 App 并跳转到店铺位置。这种方式的特点是目标应用明确,用户无需选择。
2. 拉起指定类型的应用
这种类型的应用跳转类似于手机桌面上的应用图标分类,例如“导航类应用”、“金融类应用”等。当用户点击某个按钮时,系统会弹出一个应用面板,展示所有已安装的对应类型应用,用户可以选择其中一个打开。例如,你可以在某个 App 中点击“转账”按钮,然后系统会弹出一个金融应用面板,你可以选择其中一款银行 App 进行转账操作。

应用链接:连接应用的桥梁

应用链接是应用间跳转的基础,它就像一个网址,可以指向应用内的特定页面或功能。例如,一个音乐 App 可以提供一个链接,用户点击后可以直接跳转到播放列表页面。
应用链接的运作机制

  1. 目标应用在配置文件中注册 URL skill: 目标应用需要在配置文件中声明它支持的 URL scheme、host 和 path 等信息,这样系统才能识别它。
  2. 拉起方应用在跳转接口中传入目标应用的 URL: 拉起方应用需要构建一个符合目标应用 URL skill 格式的链接,并传入相应的跳转接口。
  3. 系统根据 URL 匹配目标应用并跳转: 系统会根据 URL 中的 scheme、host 和 path 等信息,在已安装的应用中查找匹配项,并跳转到目标应用内的对应页面。

Deep Linking 与 App Linking 的对比

特性Deep LinkingApp Linking
scheme自定义https
域名校验
未安装应用处理提示错误码跳转到浏览器
适用范围API 12 及以上API 12 及以上
总结
应用跳转功能是 HarmonyOS 应用开发的重要特性,它能够帮助应用之间无缝协作,提升用户体验。开发者可以根据实际需求选择合适的跳转方式,并通过应用链接实现应用之间的连接。

举(N)个栗子

示例 1:使用 openLink 接口拉起地图应用

import { common } from '@ohos.app.ability.common';
export default class EntryAbility extends common.UIAbility {
  onWindowStageCreate(windowStage: common.WindowStage) {
    const context = this.getContext(this) as common.UIAbilityContext;
    const link: string = "geo:37.7749,-122.4194"; // 地点坐标
    context.openLink(link);
  }
}

示例 2:使用 startAbility 接口拉起邮件应用并发送邮件

import { common } from '@ohos.app.ability.common';
import { wantConstant } from '@ohos.app.ability.common';
export default class EntryAbility extends common.UIAbility {
  onWindowStageCreate(windowStage: common.WindowStage) {
    const context = this.getContext(this) as common.UIAbilityContext;
    const want: common.Want = {
      action: 'ohos.want.action.sendToData',
      uri: 'mailto:[email protected]?subject=App Feedback&body=Please describe your feedback here...',
      flags: wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION | wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION
    };
    context.startAbility(want);
  }
}

示例 3:使用 Deep Linking 跳转到应用内的特定页面

import { common } from '@ohos.app.ability.common';
import { url } from '@ohos.arkts';
export default class EntryAbility extends common.UIAbility {
  onCreate(want: common.Want, launchParam: common.LaunchParam) {
    const uri = want?.uri;
    if (uri) {
      const urlObject = url.URL.parseURL(want.uri);
      const action = urlObject.params.get('action');
      if (action === "showall") {
        // 跳转到应用内的“所有节目”页面
      }
    }
  }
}

总结
通过以上示例代码,我们可以看到应用跳转功能的强大之处。可以根据实际需求选择合适的跳转方式,并通过应用链接实现应用之间的连接,为用户提供更加便捷和流畅的体验。

标签:const,URL,App,HarmonyOS,协作,common,应用,跳转,无缝
From: https://blog.csdn.net/same4869/article/details/143090117

相关文章

  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(3)
    1.问题描述:compatibleSdkVersion升级到5.0.0(12)之后,调用坐标系转换API:map.convertCoordinate(mapCommon.CoordinateType.WGS84,mapCommon.CoordinateType.GCJ02,{longitude:location.longitude, latitude:location.latitude})会必现启动nativecrash。例如,创建一个空白......
  • HarmonyOS Next 动画大全01-属性动画
    HarmonyOSNext动画大全01-属性动画介绍动画,指的是我们应用中的元素,在发生位置、大小、颜色、形状等属性变化时,可以产出一个缓慢变化的效果。让用户的焦点一直跟随在应用的行动中,增加用户使用的体验和让用户知道当前的行动进度。如下图的就是有无动画的效果对比:(图片来自华为......
  • HarmonyOS:UIAbility进阶
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(MaoistLearning)➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/......
  • HarmonyOS的连接艺术之六: 使用 Deep Linking,灵活定义链接规则
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。DeepLinking是一种基于URL链接的......
  • HarmonyOS的连接艺术之三:拉起指定类型的应用,打造个性化体验
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。在有些场景下,我们希望用户能够选择打......
  • HarmonyOS的连接艺术之二:精准控制目标应用
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。在某些场景下,我们希望应用能够精准控......
  • HarmonyOS的连接艺术之四:便捷访问系统功能
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。HarmonyOS系统提供了丰富的系统应用,......
  • HarmonyOS的连接艺术之一:让应用之间无缝协作
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。应用之间协作的需求越来越普遍。例如,......
  • HarmonyOS:保存你的应用数据
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(MaoistLearning)➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/......
  • 无缝轮播图
    ```html<template> <!--@touchend="handleTouchEnd"--> <!--@touchstart="handleTouchStart"--> <divclass="carousel-conainer">  <div   class="carousel-list"   :style=&quo......