中国优质的IT技术网站
专业IT技术创作平台
IT职业在线教育平台
本文原创发布在华为开发者社区。
本示例基于Share Kit能力实现了宿主应用分享图片的功能。开发者可结合具体业务场景设定目标应用并处理分享内容。
实现系统分享功能源码链接
使用request.downloadFile接口,根据开发者自己设定的图片网址下载图片。构造分享数据,首先配置一条有效数据信息,获取待分享图片的沙箱路径,使用fileUri.getUriFromPath接口将沙箱路径转为文件URI,最后启动分享面板分享图片。核心代码如下,源码参考
Index.ets
TestSystemShare() { // 构造ShareData,需配置一条有效数据信息 let data: systemShare.SharedData = new systemShare.SharedData({ utd: utd.UniformDataType.PLAIN_TEXT, content: 'Hello HarmonyOS' }); // 获取文件的沙箱路径 let pathInSandbox = this.context.filesDir + '/test.jpg'; // 将沙箱路径转换为uri let uri = fileUri.getUriFromPath(pathInSandbox); // 添加多条记录 data.addRecord({ utd: utd.UniformDataType.PNG, uri: uri }); // 构建ShareController let controller: systemShare.ShareController = new systemShare.ShareController(data); // 注册分享面板关闭监听 controller.on('dismiss', () => { hilog.info(0x0001,"JSAPP",'TestShare Share panel closed'); // 分享结束,可处理其他业务。 }); // 进行分享面板显示 controller.show(this.context, { previewMode: systemShare.SharePreviewMode.DETAIL, selectionMode: systemShare.SelectionMode.SINGLE }); }
微信扫码分享