HarmonyOS systemShare分享缩略图显示问题?

需要一个系统分享显示缩略图,但是systemShare.SharedData中thumbnail缩略图需要的是Uint8Array格式,需要显示一个网络图标URL是icon,该如何分享的时候显示缩略图?

let icon = 'url'
const data: systemShare.SharedData = new systemShare.SharedData({
  utd: utd.UniformDataType.HYPERLINK,
  title: '分享链接',
  thumbnail: icon,
  description: '分享内容',
  content: 'url'
})
let controller: systemShare.ShareController = new systemShare.ShareController(data);
// 获取UIAbility上下文对象
let context: common.UIAbilityContext = getContext() as common.UIAbilityContext;
controller.show(context, {
  previewMode: systemShare.SharePreviewMode.DETAIL, //详细预览图模式
  selectionMode: systemShare.SelectionMode.SINGLE
});
阅读 433
1 个回答

系统分享不支持分享远端图片,可以加个逻辑先保存网络到本地获取路径后在进行分享,参考示例如下:

/** 图片分享 */
private async handelImageShare(): Promise<void> {
  const contextFaker: Context = getContext(this);
  let filePath = contextFaker.filesDir + '/exampleImage.jpg';
  let shareData: systemShare.SharedData = new systemShare.SharedData({
    utd: utd.UniformDataType.IMAGE,
    uri: fileUri.getUriFromPath(filePath),
    title: '图片标题', // 不传title字段时,显示图片文件名
    description: '图片描述' // 不传description字段时,显示图片大小
  });
  let controller: systemShare.ShareController = new systemShare.ShareController(shareData);
  let context = getContext(this) as common.UIAbilityContext;
  controller.show(context, {
    previewMode: this.imagePreviewMode == 0 ? systemShare.SharePreviewMode.DEFAULT : systemShare.SharePreviewMode.DETAIL
  });
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进