当前位置: 首页 > news >正文

五指一抓一放,即可实现探屏“取”物、隔空传送

跨端分享是应用常备的基础能力,从有线USB到无线WIFI传输,跨端传输能力在不断发展,然而,传统传输场景受到配对条件、网络速度、文件大小等因素影响,已经无法满足用户在工作、游戏以及生活等场景中的高频传输需求。

为此,HarmonyOS SDK 分享服务(Share Kit)新推出了隔空传送分享功能,支持用户使用“一抓一放”的简单手势,通过精准的界面反馈,给予用户强使用感知,并引导用户的每一步操作,从而实现人机交互形式的近距离快速跨端传输。

通过该能力,跨端传输方式实现了无需配对、无需网络的端到端无感传输,即使在弱网环境仍可稳定传输,让跨设备文件流转从“能用”变成“好用”。

图片3

隔空传送流程图

那么,隔空传送能力要如何实现呢?

一、在设备侧打开开关。

首先,使用隔空传送功能前,我们需要在设备侧打开“隔空传送”开关,开启路径为:设置 > 系统 > 快捷启动和手势 > 隔空传送。

二、分享App Linking直达应用

若要实现通过隔空传送分享实现直达应用,应用需要先接入App Linking,使用App Linking实现应用间跳转,以确保端到端完整的体验。

然后,我们导入相关模块。

import { uniformTypeDescriptor as utd } from '@kit.ArkData';
import { systemShare, harmonyShare } from '@kit.ShareKit';
import { fileUri } from '@kit.CoreFileKit';

同时定义隔空传送分享事件监听/取消监听方法,需要注意的是,收到隔空传送分享事件回调后,建议3秒内调用sharableTarget.share()方法发起分享,否则可能导致超时失败。

private immersiveCallback = (sharableTarget: harmonyShare.SharableTarget) => {let uiContext: UIContext = this.getUIContext();let contextFaker: Context = uiContext.getHostContext() as Context;let filePath = contextFaker.filesDir + '/exampleKnock1.jpg'; // 仅为示例 请替换正确的文件路径let shareData: systemShare.SharedData = new systemShare.SharedData({utd: utd.UniformDataType.HYPERLINK,content: 'https://sharekitdemo.drcn.agconnect.link/ZB3p',thumbnailUri: fileUri.getUriFromPath(filePath),title: '隔空传送分享卡片标题',description: '隔空传送分享卡片描述'});sharableTarget.share(shareData);
}private immersiveListening() {harmonyShare.on('gesturesShare', this.immersiveCallback);
}private immersiveDisablingListening() {harmonyShare.off('gesturesShare', this.immersiveCallback);
}

当用户进入可分享页面时,使用harmonyShare.on('gesturesShare')方法注册隔空传送分享监听事件;当用户离开可分享页面(包括应用退至后台等场景)时,使用harmonyShare.off('gesturesShare')方法取消隔空传送分享监听事件。

// Entry Component 代码片段
onPageHide(): void {let uiContext: UIContext = this.getUIContext();let context: Context = uiContext.getHostContext() as Context;context.eventHub.emit('onBackGround');
}
aboutToAppear(): void {this.immersiveListening();let uiContext: UIContext = this.getUIContext();let context: Context = uiContext.getHostContext() as Context;context.eventHub.on('onBackGround', this.onBackGround);
}aboutToDisappear(): void {this.immersiveDisablingListening();let uiContext: UIContext = this.getUIContext();let context: Context = uiContext.getHostContext() as Context;context.eventHub.off('onBackGround', this.onBackGround);
}private onBackGround = () => {this.immersiveDisablingListening();
}

随着跨端协同技术的持续演进,传统的文件传输工具可依靠隔空传送能力,进化为全场景服务流转基础设施,期待更多开发者加入共建。

了解更多详情>>

访问分享服务联盟官网

获取隔空传送开发指导文档

http://www.jsqmd.com/news/602912/

相关文章:

  • Python对象生命周期管理实战:如何用弱引用+循环检测+GC调优实现零内存泄漏?
  • 无需专业设备,用普通摄像头驱动VRM虚拟形象:VMagicMirror完整指南
  • Python驱动微信自动化:wxauto库实现Windows端智能消息处理
  • OpenClaw错误排查手册:Qwen3-14b_int4_awq接口连接问题解决
  • skill如何设计
  • 仙境传说RO:自定义商店脚本全解析与实战指南
  • 跨境电商仓储系统wms有哪些?跨境仓智能wms仓储管理系统推荐! - 跨境小媛
  • 毕业论文降重,还在手动逐句改写吗?这款“语义级”降重工具了解一下
  • 攻克虚拟控制器兼容性难题:ViGEmBus驱动技术全解析
  • 当同人世界被屏蔽:一个普通读者的自救指南
  • AI浪潮来袭:小白程序员如何抓住机遇,收藏这份就业指南?
  • 拖曳阵声纳系统技术开源情报(OSINT)综合分析
  • 2026雅思口语基础差如何选靠谱机构?实测避坑指南,高效练口稳提分 - 速递信息
  • 上传文件中的.DS_Store问题
  • LoRA-Scripts训练Loss下降但图很丑?过拟合和欠拟合的识别与解决
  • “PixPin截图与屏幕贴图工具:解决截图、OCR与长截图的三大痛点“
  • 线性规划实战:从游戏升级到投资组合的数学建模指南
  • 温岭市大溪致翔机械设备租赁服务部:温岭市区起重设备租赁 出售电话 - LYL仔仔
  • 2026年软文发稿平台推荐榜:对比5大主流平台,传声港新媒体平台经5大核心数据筛选登顶 - 博客湾
  • Hbuilder X最新版真机调试避坑指南:从安卓到iOS的完整流程(附证书生成技巧)
  • Swift-All新手必看:手把手教你快速下载和运行AI大模型
  • lite-avatar形象库参数详解:.zip权重包解压后目录结构与模型文件命名规则
  • Electron应用逆向实战:从asar解包到源码重构
  • 大模型小白进阶必看:收藏这份 Agent 记忆系统学习指南
  • 告别Windows Defender管理难题:Defender Control的高效解决方案
  • 【笔面试算法学习专栏】堆与优先队列实战:力扣hot100之215.数组中的第K个最大元素、347.前K个高频元素
  • SEO站内优化与网站流量转化的关系是什么
  • 论文初稿不会写?毕业之家AI工具帮你从零搭框架、出万字初稿
  • [react | styledComponents]
  • 5天零基础通关嵌入式C语言:敲开万亿IoT与工业嵌入式赛道的核心大门