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

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

时间:2024-10-20 10:22:08浏览次数:1  
标签: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 Linking App 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://www.cnblogs.com/samex/p/18486979

相关文章

  • 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......
  • HarmonyOS:使用HTTP访问网络
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(MaoistLearning)➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/......
  • HarmonyOS:Navigation组件的使用
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(MaoistLearning)➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/......
  • HarmonyOS Stage 模型:进程、线程与配置文件之浅析
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。HarmonyOS的Stage模型为开发者提供......
  • 计算机视觉——人像的分割与无缝融合
    1.概述新加坡现代汽车集团创新中心的一篇新论文提供了一种在计算机视觉中分离“融合”人像的方法——在这些情况下,对象识别框架发现一个人在某种程度上与另一个人“太接近”(例如例如“拥抱”动作或“站在后面”的姿势),并且无法区分所代表的两个人,将他们与一个人或一个实体......
  • HarmonyOS设置组件导航
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(MaoistLearning)➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/......
  • 敏捷实践的启示:如何让敏捷团队协作更加高效
    ​在现今的工作环境中,团队协作变得越来越重要。无论是小型初创企业,还是大型跨国公司,如何让团队在快速变化的市场中保持高效运作,是每个管理者需要面对的挑战。在这个背景下,敏捷开发,敏捷项目管理逐渐成为主流,它不仅能够让团队快速适应变化,还能够提高透明度和协作效率。最近,在一次......
  • 【HarmonyOS】鸿蒙应用蓝牙功能实现 (一)
    【HarmonyOS】鸿蒙应用蓝牙功能实现前言蓝牙技术是一种无线通信技术,可以在短距离内传输数据。它是由爱立信公司于1994年提出的,使用2.4GHz的ISM频段,可以在10米左右的距离内进行通信。可以用于连接手机、耳机、音箱、键盘、鼠标、打印机等各种设备。特点是低功耗、低成本、简单易用......
  • 如何在 HarmonyOS NEXT 中使用 @Builder 装饰器优化 UI 组件的复用?
    摘要在鸿蒙NEXT开发中,@Builder 装饰器是一种轻量级的UI元素复用机制,它允许开发者将重复使用的UI元素抽象成一个方法,并在 build() 方法中多次调用,以实现UI结构的复用。以下是如何使用 @Builder 装饰器来优化UI组件复用的详细介绍和案例分析:自定义构建函数@Bui......