uni-app 分享图片api失效
uni-app 分享图片api失效
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | win10 | HBuilderX |
# 操作步骤:
* uni.canvasToTempFilePath返回临时路径,调用uni.share分享图片到朋友圈
# 预期结果:
* 正常分享
# 实际结果:
* 调不起来微信
# bug描述:
使用uni.canvasToTempFilePath返回图片临时路径,分享图片到微信app上无任何反应,但在控制台能看到同时触发了app.vue里的onHide和onShow周期,其他啥错误也没有,fail回调也不执行
在没更新hx之前,vue下是可以分享到微信的
哦对了,使用网络url是没问题的,
这个vue分享页面好久没动了, 都不敢升级了。。。
更多关于uni-app 分享图片api失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
11 回复
我看到3.1.4一条关于分享的更新:
Android平台 修复 微信分享本地图片在部分 Android11 设备可能失败的Bug 详情
…我严重怀疑又是更新导致的
更多关于uni-app 分享图片api失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
云打包
回复 DCloud_Android_ST: 传统打包吗? 我用的就是传统打包,是自定义基座
回复 choin: 嗯 什么时候打的包,重新打一个正式包试试看看
回复 DCloud_Android_ST: 3.1.4刚升级完我就打包了,我再试试打包
可以了。。。
回复 DCloud_Android_ST: 小窗布局错乱什么时候能解决呢
顶顶顶顶顶顶顶顶顶顶
顶顶顶顶顶顶顶顶顶顶
这个问题通常是由于uni.canvasToTempFilePath生成的临时路径在分享时失效导致的。从你的描述来看,有几个关键点:
- 网络URL分享正常,说明分享功能本身没问题
- 临时路径分享失败,且触发了onHide和onShow周期
- 之前版本正常,升级后出现问题
解决方案:
方案一:使用base64分享 将canvas转换为base64格式进行分享:
uni.canvasToTempFilePath({
canvasId: 'yourCanvasId',
success: (res) => {
const base64 = wx.getFileSystemManager().readFileSync(res.tempFilePath, 'base64')
uni.share({
provider: 'weixin',
scene: 'WXSenceTimeline',
type: 'image',
image: `data:image/png;base64,${base64}`,
success: function (res) {
console.log("分享成功");
}
});
}
});
方案二:确保路径有效性 在分享前验证临时文件是否存在:
uni.canvasToTempFilePath({
canvasId: 'yourCanvasId',
success: (res) => {
const fs = wx.getFileSystemManager();
try {
fs.accessSync(res.tempFilePath);
uni.share({
provider: 'weixin',
scene: 'WXSenceTimeline',
type: 'image',
image: res.tempFilePath,
success: function (res) {
console.log("分享成功");
}
});
} catch (e) {
console.log('文件不存在');
}
}
});