写点什么

【FAQ】HarmonyOS SDK 闭源开放能力 —Share Kit

作者:HarmonyOS SDK
  • 2024-11-18
    贵州
  • 本文字数:1397 字

    阅读完需:约 5 分钟

1.问题描述:


使用系统分享组件分享本地文件,点击分享菜单下方的“另存为” 将要分享的文件分享至系统文件管理中,在文件管理中查看分享进来的文件为 0B。尝试了 3 种 uri 的写法都不行,代码如下:


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'
复制代码


解决方案:


正确的 uri 拼接应该是:


const uri = 'file://' + getContext().applicationInfo.name + getContext().getApplicationContext().filesDir + '/xxx.json';
复制代码


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


let pathInSandbox = 'getContext().getApplicationContext().filesDir + '/xxx.json';let uri = fileUri.getUriFromPath(pathInSandbox);
复制代码


2.问题描述:


文档https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/share-system-share-V5#section20696483813 SharedRecord uri 是否支持 http 链接?


解决方案:


haredRecord uri 支持 http 链接。


3.问题描述:


调用系统分享图片或 file,点击系统分享面板的保存按钮,提示保存失败。


demo:


const data = new systemShare.SharedData({
utd: uniformTypeDescriptor.UniformDataType.IMAGE,
uri: fileUri.getUriFromPath(path)
})
const controller = new systemShare.ShareController(data)
const context = GlobalContext.get().getApp() as common.UIAbilityContext
controller.show(context, {
selectionMode: systemShare.SelectionMode.BATCH,
previewMode: systemShare.SharePreviewMode.DETAIL
})
复制代码


解决方案:


目前已知的失败场景,可能是因为文件名含有媒体库命名不支持的符号导致。在图库重命名,加个. / 这些符号,就能看到相关提示,所有不支持的字符都会列出来;


我们这边测试中文是正常,如果反馈中文有问题,麻烦提供一下日志,或者其他能帮助我们查问题的信息,联系方式https://developer.huawei.com/consumer/cn/support/feedback/#/?feedbackchannel=PPSD0001


4.问题描述:


如何实现应用分享到微信,以卡片形式显示,点击可以打开具体链接页面?


解决方案:


Share Kit 提供了两个能力,分别是:宿主应用发起分享 和 目标应用处理分享内容:


其中宿主应用发起分享,可以拉起 Share Kit 的分享面板;目标应用处理分享内容,可以处理收到的分享信息。


具体的显示效果是由接入方根据 sharedata 数据格式解析显示最终卡片效果。


5.问题描述:


App 需要使用文件分享相关功能,uris 是必须配置的,若删除相关配置,则 App 无法接收消息,请问应该怎么处理。


解决方案:


1、uris 和 action 可以同时存在。不过 actions 和 uris 不能在同一个对象中,需要在不同的对象中才可以。


2、以首页的 skills 为例,下方的 skills 配置是可以正常收到消息的 且点击也没有问题:


“skills”: [
{
“entities”: [
“entity.system.home”
],
“actions”: [
“action.system.home”,
“action.ohos.push.listener”,
]
},
{
“uris”: [
{
“scheme”: “https”,
“port”:“8080”,
“host”: “com.xx.pushsvc.impl”,
“path”: “notify_detai”
}
]
}
]
复制代码


用户头像

HarmonyOS SDK

关注

HarmonyOS SDK 2022-06-16 加入

HarmonyOS SDK通过将HarmonyOS系统级能力对外开放,支撑开发者高效打造更纯净、更智能、更精致、更易用的鸿蒙原生应用,和开发者共同成长。

评论

发布
暂无评论
【FAQ】HarmonyOS SDK 闭源开放能力 —Share Kit_HarmonyOS_HarmonyOS SDK_InfoQ写作社区