最近在学习碰一碰分享的技术实现,参考Yanyan、董老丝有话说、哈莫尼OS、 Andy,小枫溪大佬们的指导和官方提供的实例,实现了碰一碰分享图片的能力。核心代码如下,主要分为三步
第一步:实现碰一碰链接成功后执行分享的代码(碰一碰响应函数),下面的代码实现了碰一碰链接成功后,分享沙盒目录中的example.jpg文件的能力。
**function ** konckShareCallback(sharableTarget: harmonyShare.SharableTarget) {
const contextFaker: Context = getContext();
let filePath = contextFaker.filesDir + '/example.jpg';
let shareData: systemShare.SharedData = new systemShare.SharedData({
utd: uniformTypeDescriptor.UniformDataType.JPEG,
uri: fileUri.getUriFromPath(filePath),
thumbnailUri: fileUri.getUriFromPath(filePath),
});
sharableTarget.share(shareData);
}第二步:实现启动监听碰一碰事件的函数,在需要分享时调用,在该函数中监听碰一碰事件并关联响应函数,当有碰一碰行为时,会执行关联的函数。
export function konckShareStartListening() {
harmonyShare.on('knockShare', konckShareCallback);
}第三步:实现停止监听碰一碰事件的函数,在退出分享时调用,在该函数中停止监听碰一碰事件监听。
export function ****konckShareStopListening() {
harmonyShare.off('knockShare', konckShareCallback);
}当源设备启动监听碰一碰事件后,有其它的设备(目标设备)完成碰一碰的动作时,这时源设备会执行碰一碰响应函数,提示用户是否要分享图片,点击分享后,目标设备接收图片保存至相册。
















