uni-app 鸿蒙 app分享图片到微信,大小超过 80kb 就提示参数非法,无法分享
uni-app 鸿蒙 app分享图片到微信,大小超过 80kb 就提示参数非法,无法分享
如题,我用canvas画布生成的海报图片分享到微信,大小超过 80kb 就无法分享。 查询微信官方 sdk 是说 100kb,实际测试 80kb 就无法分享了。 微信分享 sdk说是用 url 的方式就不会限制,本地文件路径不算 url 吗? 请问大家是如何解决的?
代码如下:
this.$refs.painter.canvasToTempFilePathSync({
fileType: "jpg",
quality: 1,
success: (res) => {
uni.share({
provider: "weixin",
scene: "WXSceneSession",
type: 2,
imageUrl: res.tempFilePath,
success: function(res) {
console.log("success:" + JSON.stringify(res));
},
fail: function(err) {
console.log("fail:" + JSON.stringify(err));
}
});
}
});
更多关于uni-app 鸿蒙 app分享图片到微信,大小超过 80kb 就提示参数非法,无法分享的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更新:解压压缩包得到 har 后缀文件,放入到 harmony-configs/libs 文件夹下。然后选择重启并清空缓存再测试。
如果仍有问题,请私信我跟进。
感谢反馈问题,已确认 bug,稍后提供解决方案
你目前传递的图片具体是多大,目前图片会优先转成 base64,这个过程会让图片变大,80k 图片转成 base64 刚好超过 100k,达到限制你可临时使用较小的图片,bug 修复中。
更多关于uni-app 鸿蒙 app分享图片到微信,大小超过 80kb 就提示参数非法,无法分享的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
非常感谢及时跟进!?
回复 啊鸭鸭: 试一下我给的包,看看是否解决了问题
回复 啊鸭鸭: 你的可以了吗?
回复 银狼: 还没解决,已经反馈给工作人员了,在等处理
回复 啊鸭鸭: 嗯嗯,我也没解决
回复 啊鸭鸭: har 包已更新,我测试大图片小图片不同格式都是正常的了
回复 DCloud_UNI_OttoJi: 非常感谢,已经正常分享了!点赞
这个问题是由于微信分享对本地临时文件路径的限制导致的。当图片超过80KB时,微信SDK会拒绝分享本地路径的图片。
解决方案是将图片上传到服务器获取网络URL后再分享:
- 使用uni.uploadFile将图片上传到服务器
this.$refs.painter.canvasToTempFilePathSync({
fileType: "jpg",
quality: 0.8, // 适当降低质量
success: (res) => {
uni.uploadFile({
url: '你的服务器地址',
filePath: res.tempFilePath,
name: 'file',
success: (uploadRes) => {
const imageUrl = JSON.parse(uploadRes.data).url; // 获取服务器返回的URL
uni.share({
provider: "weixin",
scene: "WXSceneSession",
type: 2,
imageUrl: imageUrl,
success: function(res) {
console.log("success:" + JSON.stringify(res));
}
});
}
});
}
});
- 如果不想搭建服务器,可以使用uniCloud的云存储:
// 需要先开通uniCloud
const result = await uniCloud.uploadFile({
filePath: res.tempFilePath,
cloudPath: 'poster.jpg'
});
const imageUrl = result.fileID;

