首页 > 其他分享 >【FAQ】HarmonyOS SDK 闭源开放能力 —Share Kit

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

时间:2024-11-18 10:58:31浏览次数:1  
标签:filesDir const getApplicationContext FAQ Share uri Kit getContext 分享

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”

      }

    ]

  }

]

标签:filesDir,const,getApplicationContext,FAQ,Share,uri,Kit,getContext,分享
From: https://www.cnblogs.com/HarmonyOSSDK/p/18552046

相关文章

  • (赠源码)基于Java Web+springboot+MySQL的Unishare闲置物品共享系统研究22945-计算机毕
    摘 要随着科技的快速迭代和人们环保意识的提高,共享经济逐渐成为社会发展的重要趋势。然而,在现实生活中,人们的消费水平大大提高,存在很多闲置物品无人问津,造成了一定的资源浪费和环境污染。与此同时,许多人需要使用这些闲置物品,却不知道如何获取。这种情况下,基于JavaWeb的Uni......
  • Python--scikit-learn
    数据集sklearn.datasetsfromsklearn.datasetsimportload_iris,fetch_20newsgroups小数据集下载load_xxx大数据集下载fetch_xxx模型KNNK-近邻算法参考距离计算k值选择kd树fromsklearn.neighborsimportKNeighborsClassifierfromsklearn.neighborsimpor......
  • SharePoint Online页面的一些奇怪参数
    前言最近,在查找资料的时候,偶然间发现了一些非常有意思的参数,如下:?env=Embedded or ?env=WebView&wdStartOn=21.正经的SharePointOnline页面2.加了参数的SharePointOnline页面3.加了另一个参数的SharePointOnline页面结束语......
  • Solution - Codeforces 1190C Tokitsukaze and Duel
    考虑到两人对应的操作是相同的,于是可以从对称的角度来思考。考虑到在先手做出操作后,后手一个较为特殊的操作是不做任何影响,也就是重复先手的操作。能够发现如果对于后手这不能必胜,那么他一定不会去产生影响,并又把这个局面留给先手,相当于是先后手的交换。对于先手又是同样的,因为......
  • 如果在整个项目中 QTcpSocket 被多次引用,并且多个对象或类需要共享同一个 QTcpSocket
    如果在整个项目中QTcpSocket被多次引用,并且多个对象或类需要共享同一个QTcpSocket实例,那么使用QSharedPointer<QTcpSocket>是一个不错的选择。以下是使用QSharedPointer<QTcpSocket>的优点、注意事项以及一些替代方案的建议。为什么推荐使用QSharedPointer<QTcpSo......
  • SharePoint Online共享链接的参数是做什么的?
    前言今天,被一个小朋友问到,我们分享SharePointOnline文件的时候,为什么总有奇怪的参数?正文1.链接的例子https://<TenantName>.sharepoint.com/:w:/r/sites/<SiteName>2.简单的说明其实,链接是为了方便我们知道分享的文件的类型/:w–MicrosoftW......
  • 从蓝牙到WLAN:HarmonyOS Next Connectivity Kit入门
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。在当今数字化时代,智能设备之间的高效通......
  • 芒果YOLO11改进90:检测头篇之ShareSepHead:即插即用|原创新颖共享Sep检测头,更省参数量,更
    ......
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Notification Kit
    1.问题描述:notificationFlagStatus如何引入?文档中搜索不到相关内容。解决方案:1.notificationFlags是NotificationRequest类中定义的属性,这个属性是“只读”类型,因此在使用时,不支持修改notificationFlags的值。2.如果想要实现消息有铃声、震动等能力,可以通过SlotType属性来设置......
  • 基于HarmonyOS Next的医疗数据防泄漏与身份认证方案:Device Certificate Kit的深度应用
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。在医疗信息化快速发展的今天,医疗......