-
-
[原创]【FAQ】HarmonyOS SDK 闭源开放能力 —Share Kit
-
发表于: 2024-11-18 10:56 2181
-
1.问题描述:
使用系统分享组件分享本地文件,点击分享菜单下方的“另存为” 将要分享的文件分享至系统文件管理中,在文件管理中查看分享进来的文件为0B。尝试了3种uri的写法都不行,代码如下:
1 2 3 | 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拼接应该是:
1 | const uri = 'file://' + getContext().applicationInfo.name + getContext().getApplicationContext().filesDir + '/xxx.json' ; |
或通过getUriFromPath将沙箱路径转成uri:
1 2 | 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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配置是可以正常收到消息的 且点击也没有问题:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | “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” } ] } ] |
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!