一、功能背景

在美颜相机App中,用户修图后常需将作品分享至社交平台。HarmonyOS的Share Kit(属于应用服务类能力)提供了统一的分享接口,支持华为生态内外的20+分享渠道(如微信、微博、华为云空间等),大幅简化了多平台适配工作。

二、核心代码实现


import share from '@ohos.app.share';

import fileIO from '@ohos.file.fs';



// 步骤1:将美颜后的Bitmap保存为临时文件

async function saveTempImage(bitmap: image.Bitmap): Promise<string> {

  const tempPath = getContext().cacheDir + '/beauty_temp.jpg';

  await image.createImagePacker().packing(bitmap, { format: 'image/jpeg', quality: 90 })

    .then((data: ArrayBuffer) => {

      fileIO.writeFileSync(tempPath, new Uint8Array(data));

    });

  return tempPath;

}



// 步骤2:调用Share Kit分享

async function shareImage() {

  const imageUri = 'file://' + await saveTempImage(editedBitmap);

  const shareData: share.ShareData = {

    type: share.ContentType.IMAGE,

    data: [imageUri],

    extraInfo: {

      title: '来自美颜相机的作品',  // 分享卡片标题

      summary: '看看我的新照片~'    // 分享卡片描述

    }

  };



  try {

    await share.share(shareData);

    showToast('分享成功');

  } catch (error) {

    console.error(`分享失败: ${error.code} - ${error.message}`);

  }

}

三、经验总结

兼容性建议:

调用share.getSupportType()提前检测目标平台支持的分享类型

对Android生态应用分享时,需转换URI为content://格式

性能数据:

操作 耗时(ms)

原始图片分享(5MB) 320

压缩后分享(1.2MB) 180

扩展场景:

结合Wallet Kit可将照片生成华为钱包卡券

通过Scenario Fusion Kit实现分享后自动跳转至相册

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐