HarmonyOS 使用ShareController组件进行分享 分享出去的文件是0B -鸿蒙开发者社区-51CTO.COM

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
相关问题
分享沙箱文件,应用可分享单个文件
948浏览 • 1回复 待解决
HarmonyOS如何使用系统分享图片、文件
382浏览 • 1回复 待解决
HarmonyOS原生分享能力使用
630浏览 • 1回复 待解决
应用文件分享功能介绍
1031浏览 • 0回复 待解决
HarmonyOS 应用文件分享-读写权限咨询
320浏览 • 1回复 待解决
ArkTS应用文件分享报错,code:16000050
2156浏览 • 1回复 待解决
关系型数据库使用分享
1038浏览 • 1回复 待解决
HarmonyOS 分享功能如何实现?
95浏览 • 1回复 待解决
使用自定义弹窗实现分享弹窗
451浏览 • 1回复 待解决
分布式键值数据库使用分享
1054浏览 • 1回复 待解决