
前言startByType通过指定文件类型启动其他应用来处理该文件。在「猫猫大作战」中使用 startByType 打开图片分享到社交应用。一、startByType 基础import{common}fromkit.AbilityKit;asyncfunctionshareImage(context:common.UIAbilityContext,fileUri:string):Promisevoid{constwant{action:ohos.want.action.sendData,type:image/jpeg,parameters:{ability.params.stream:[fileUri],},};try{awaitcontext.startAbility(want);console.info(分享应用已启动);}catch(err){console.error(启动失败:${err.message});}}二、支持的 typetype说明示例image/jpegJPGE 图片分享截图image/pngPNG 图片分享图标text/plain纯文本分享文本application/jsonJSON分享数据三、游戏中的应用// 分享战绩截图asyncfunctionshareScoreScreenshot(context:common.UIAbilityContext):Promisevoid{// 1. 截图constpixelMapawaitgetUIContext().createPixelMap({width:360,height:640});// 2. 保存到临时文件consttempPath${getContext().tempDir}/score_share.jpg;constpackerimage.createImagePacker();constbufferawaitpacker.packing(pixelMap,{format:image/jpeg,quality:85});packer.release();constfilefileIo.openSync(tempPath,fileIo.OpenMode.CREATE|fileIo.OpenMode.WRITE_ONLY|fileIo.OpenMode.TRUNC);fileIo.writeSync(file.fd,buffer);fileIo.closeSync(file);// 3. 通过类型启动分享awaitshareImage(context,file://${tempPath});}四、最佳实践type 精准指定 MIME 类型提高匹配率文件 URI使用file://协议临时文件分享后系统可删除try-catch目标应用不存在时捕获异常总结startByType 通过文件类型启动其他应用处理文件适合分享截图。核心要点type指定 MIME 类型、fileUri文件路径、startAbility启动。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源startAbility 文档第 109 篇start-ability第 111 篇engine-class第 154 篇ShareKit