本文原创发布在华为开发者社区。
介绍
本示例基于Share Kit能力实现了宿主应用分享图片的功能。开发者可结合具体业务场景设定目标应用并处理分享内容。
效果预览
使用说明
- 点击“查看并下载图片”按钮,从网络上下载图片。
- 点击“系统分享”按钮,选择图片,在底部选择shareget可拉起接受方应用,分享图片。
实现思路
分享图片
使用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
});
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。