【HarmonyOS NEXT】文件分享相关问题

【关键字】

文件分享 / 指定应用 / 文件类型 / 文本编辑器 / txt文本

【问题描述】

通过以下代码进行文件分享,如何指定应用?文件类型如何设置?如何分享一个txt文本到一个文本编辑器里?

let shareuri = fileUri.getUriFromPath(this.writePath)
let want: object =new Object({
flags: wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION | wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,
// 配置分享应用的隐式拉起规则
action: 'ohos.want.action.sendData',
uri: shareuri,
type: 'text/plain'
});

(getContext() as common.UIAbilityContext).startAbility(want)
.then(() => {
console.info('Invoke getCurrentBundleStats succeeded.');
})
.catch((err: BusinessError) => {
console.error(`Invoke startAbility failed, code is ${err.code}, message is ${err.message}`);
});

【解决方案】

1、文件分享,如何指定应用?

文件分享是基于want的隐式分享,可参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/share-app-file-0000001821000041

want示例代码如下:

want: Want = {
// 配置被分享文件的读写权限,例如对被分享应用进行读写授权
flags: wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION | wantConstant.Flags.F
LAG_AUTH_READ_URI_PERMISSION,
// 配置分享应用的隐式拉起规则
action: 'ohos.want.action.sendData',
uri: uri,
type: 'text/plain'
}

被分享应用需要在module.json5配置文件的actions标签的值配置为"ohos.want.action.sendData",表示接收应用分享文件,配置uris字段,表示接收URI的类型,即只接收其他应用分享该类型的URI,如下表示本应用只接收scheme为file,类型为txt的文件,示例如下:

{
"module": {
...
"abilities": [
{
...
"skills": [
{
...
"actions": [
"ohos.want.action.sendData"
],
"uris": [
{
"scheme": "file",
"type": "text/plain"
}]}]}]
}

由于当前鸿蒙手机上还没有配置为ohos.want.action.sendData的应用,所以当前分享没有效果,可以自己新建一个工程,按照上面的步骤和文档测试分享和数据接收。

2、文件类型如何设置?

参考want中的type对应的文件类型,即MIME type类型,可参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-app-ability-want-0000001774280554

3、如何分享一个txt文本到一个文本编辑器里?

可以将 action改为 'ohos.want.action.viewData'表示查看文件,再通过右上角的备忘录打开。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值