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”
}
]
}
]