HarmonyOS 鸿蒙Next使用systemShare分享无法分享远程http地址
使用systemShare 分享,无法分享远程http地址,该分享功能支持分享远程页面地址嘛?若不支持有其他方式支持嘛?若无相关api支持,以后会有什么计划支持嘛? 不支持
const srcUri: uri.URI = new uri.URI(this.fileUrl)
const scheme = (srcUri.scheme ||
'').toLowerCase() // 构造ShareData,需配置一条有效数据信息
let data: systemShare.SharedData = new systemShare.SharedData({
utd: this.isPdf ? utd.UniformDataType.PDF : utd.UniformDataType.HTML,
title: this.title,
uri: ['http', 'https'].includes(scheme) ? this.fileUrl : fileUri.getUriFromPath(this.fileUrl)
}); // 构建ShareController
let controller: systemShare.ShareController =
new systemShare.ShareController(data); // 获取UIAbility上下文对象
let context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; // 注册分享面板关闭监听
controller.on('dismiss', () => {
console.log('Share panel closed'); // 分享结束,可处理其他业务。
}); // 进行分享面板显示
controller.show(context,
{ previewMode: systemShare.SharePreviewMode.DETAIL, selectionMode: systemShare.SelectionMode.SINGLE });
更多关于HarmonyOS 鸿蒙Next使用systemShare分享无法分享远程http地址的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
请参考下面代码,目前只支持华为分享
import { systemShare } from '@kit.ShareKit';
import { common } from '@kit.AbilityKit';
import { uri } from '@kit.ArkTS';
import { promptAction } from '@kit.ArkUI';
import { uniformTypeDescriptor } from '@kit.ArkData';
[@Entry](/user/Entry)
[@Component](/user/Component)
struct SharePage {
private context = getContext(this) as common.UIAbilityContext
[@State](/user/State) message: string = 'Hello World';
// fileUrl: string = 'www.harmonyos.com'
build() {
Row() {
Column() {
Button('分享 - 网站').margin({bottom:10})
.onClick(() => {
this.shareWebSite(this.context, 'www.harmonyos.com', 'HarmonyOS')
})
}
.width('100%')
}
.height('100%')
}
// 分享网站
shareWebSite(context: common.UIAbilityContext, url: string, title: string, thumbnail?: Uint8Array): void {
try {
// 构造ShareData,需配置一条有效数据信息
let data: systemShare.SharedData = new systemShare.SharedData({
utd: uniformTypeDescriptor.UniformDataType.HYPERLINK,
content: url,
title: title,
description: url,
});
let controller: systemShare.ShareController = new systemShare.ShareController(data);
controller.on('dismiss', () => {
promptAction.showToast({
message: 'Share panel disappeared'
});
});
controller.show(context, {
previewMode: systemShare.SharePreviewMode.DETAIL,
selectionMode: systemShare.SelectionMode.SINGLE
});
} catch (e) {
const error = e as Error;
console.error('share error: ' + error.message);
}
}
}
更多关于HarmonyOS 鸿蒙Next使用systemShare分享无法分享远程http地址的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next系统中,使用systemShare
接口分享远程HTTP地址时,若遇到无法分享的问题,通常可能是出于安全或权限设置上的考虑。
首先,确认你的应用已经获得了必要的权限,包括网络访问权限和分享功能权限。这些权限通常在应用的manifest文件中进行声明。
其次,检查systemShare
接口的使用方式是否正确。该接口通常接受一个包含分享内容的Intent对象,确保你构建的Intent对象中包含正确的MIME类型和分享数据。对于HTTP地址,通常应使用text/plain
或text/uri-list
作为MIME类型,并将HTTP地址作为分享数据的内容。
此外,还需注意HarmonyOS系统的版本和API级别是否支持你正在使用的systemShare
接口及其特性。不同版本的系统可能对分享功能有不同的实现和优化。
如果以上步骤均确认无误,但问题依旧存在,那么可能是系统层面的bug或特定场景下的限制。此时,建议直接联系HarmonyOS的官方客服以获取进一步的帮助。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html