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

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"

      }

    ]

  }

]
相关推荐
别说我什么都不会14 小时前
ohos.net.http请求HttpResponse header中set-ccokie值被转成array类型
网络协议·harmonyos
码是生活14 小时前
鸿蒙开发排坑:解决 resourceManager.getRawFileContent() 获取文件内容为空问题
前端·harmonyos
鸿蒙场景化示例代码技术工程师14 小时前
基于Canvas实现选座功能鸿蒙示例代码
华为·harmonyos
小脑斧爱吃鱼鱼15 小时前
鸿蒙项目笔记(1)
笔记·学习·harmonyos
鸿蒙布道师16 小时前
鸿蒙NEXT开发对象工具类(TS)
android·ios·华为·harmonyos·arkts·鸿蒙系统·huawei
zhang10620916 小时前
HarmonyOS 基础组件和基础布局的介绍
harmonyos·基础组件·基础布局
马剑威(威哥爱编程)16 小时前
在HarmonyOS NEXT 开发中,如何指定一个号码,拉起系统拨号页面
华为·harmonyos·arkts
GeniuswongAir17 小时前
Flutter极速接入IM聊天功能并支持鸿蒙
flutter·华为·harmonyos
90后的晨仔21 小时前
鸿蒙ArkUI框架中的状态管理
harmonyos
别说我什么都不会2 天前
OpenHarmony 5.0(API 12)关系型数据库relationalStore 新增本地数据变化监听接口介绍
api·harmonyos