#鸿蒙通关秘籍#如何通过URI在鸿蒙系统中实现文件分享?

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
墨s旋律OLTP

在鸿蒙系统中,通过URI分享文件是一个常见操作,首先需要获取文件在应用沙箱中的路径,并将其转换为URI。可以使用以下代码获取文件的URI:

typescript import { UIAbility } from '@kit.AbilityKit'; import { fileUri } from '@kit.CoreFileKit';

export default class EntryAbility extends UIAbility { onWindowStageCreate() { let pathInSandbox = this.context.filesDir + "/test1.txt"; let uri = fileUri.getUriFromPath(pathInSandbox); // 获取到的uri为"file://com.example.demo/data/storage/el2/base/files/test.txt" } }

接下来,使用 startAbility 接口分享文件,配置必要的权限和类型:

typescript import { wantConstant } from '@kit.AbilityKit'; import { UIAbility } from '@kit.AbilityKit'; import { Want } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit';

export default class EntryAbility extends UIAbility { onWindowStageCreate() { let filePath = this.context.filesDir + '/test1.txt'; let uri = fileUri.getUriFromPath(filePath); let want: Want = { flags: wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION | wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, action: 'ohos.want.action.sendData', uri: uri, type: 'text/plain' };

this.context.startAbility(want)
  .then(() => {
    console.info('启动成功');
  })
  .catch((err: BusinessError) => {
    console.error(`启动失败, 错误码: ${err.code}, 错误信息: ${err.message}`);
  });

} }

分享
微博
QQ
微信
回复
1天前
相关问题