HarmonyOS 使用ShareController组件进行分享 分享出去的文件是0B

使用系统分享组件 分享本地文件 点击分享菜单下方的 另存为 将要分享的文件分享至系统文件管理中 在文件管理中查看分享进来的文件为0B

确定本地有的文件 尝试了3种uri的写法 都不行

代码如下

import { systemShare } from '@kit.ShareKit'; 
import { uniformTypeDescriptor as utd } from '@kit.ArkData'; 
 
const uri =  getContext().getApplicationContext().filesDir + '/xxx.json' 
const uri1 = 'file://' + getContext().getApplicationContext().filesDir + '/xxx.json' 
const uri2 =  'file://' +  getContext().applicationInfo.name + '/'  + getContext().getApplicationContext().filesDir + '/xxx.json' 
 
let data: systemShare.SharedData = new systemShare.SharedData({ 
  utd: utd.UniformDataType.FILE, 
  uri: uri 
}); 
 
let controller: systemShare.ShareController = new systemShare.ShareController(data); 
let context = getContext() as common.UIAbilityContext; 
controller.show(context, { 
  previewMode: systemShare.SharePreviewMode.DETAIL, 
  selectionMode: systemShare.SelectionMode.SINGLE 
});
HarmonyOS
2024-08-22 22:51:23
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

url请尝试使用如下格式:

const uri = 'file://' + getContext().applicationInfo.name + getContext().getApplicationContext().filesDir + '/xxx.json'

或通过getUriFromPath将沙箱路径转成uri:

import { fileUri } from '@kit.CoreFileKit'; 
let uri = fileUri.getUriFromPath(pathInSandbox);
分享
微博
QQ
微信
回复
2024-08-23 16:36:07
相关问题
分享沙箱文件,应用可分享单个文件
1062浏览 • 1回复 待解决
HarmonyOS如何使用系统分享图片、文件
476浏览 • 1回复 待解决
HarmonyOS原生分享能力使用
770浏览 • 1回复 待解决
应用文件分享功能介绍
1185浏览 • 0回复 待解决
HarmonyOS 应用文件分享-读写权限咨询
398浏览 • 1回复 待解决
ArkTS应用文件分享报错,code:16000050
2307浏览 • 1回复 待解决
getDefaultCellularDataSlotIdSync实战分享
232浏览 • 0回复 待解决
关系型数据库使用分享
1183浏览 • 1回复 待解决
HarmonyOS 分享功能如何实现?
193浏览 • 1回复 待解决
使用自定义弹窗实现分享弹窗
578浏览 • 1回复 待解决