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
相关问题
分享沙箱文件,应用可分享单个文件
626浏览 • 1回复 待解决
HarmonyOS原生分享能力使用
223浏览 • 1回复 待解决
应用文件分享功能介绍
690浏览 • 0回复 待解决
ArkTS应用文件分享报错,code:16000050
1784浏览 • 1回复 待解决
关系型数据库使用分享
730浏览 • 1回复 待解决
使用自定义弹窗实现分享弹窗
178浏览 • 1回复 待解决
分布式键值数据库使用分享
734浏览 • 1回复 待解决
鸿蒙如何实现分享功能
17195浏览 • 2回复 待解决
分享一下你鸿蒙系统使用感受吧
3941浏览 • 1回复 待解决
订阅emitter分享,谁有更好办法?
414浏览 • 1回复 待解决
怎么抽中内测名额,谢谢分享
5717浏览 • 1回复 待解决
华为JS API如何唤起分享
4348浏览 • 1回复 待解决