目录
前言
一、使用哪种api?
二、对图片的处理需要转化为临时路径
三、Windows端兼容性问题
前言
最近在公司开发一个微信小程序项目,用到的uniapp技术,在分享图片时,查看了uniapp的技术文档,写的还是很粗糙的,说得不太清楚,在我看了一个下午得出了一个结论,uniapp并没有封装可以转发图片到微信好友中的api。
提示:以下是本篇文章正文内容,下面案例可供参考
一、使用哪种api?
1. 分享图片功能, 使用的是 wx.showShareImageMenu() 而不是uniapp的uni.share() 。
wx.showShareImageMenu({ //分享给朋友
path: qrimg.value,
success: (res) => {
console.log("分享成功:", res);
},
fail: (err) => {
console.log("分享取消:", err);
},
})
二、对图片的处理需要转化为临时路径
2. 分享的图片,如果是后端直接返回路径,需将路径转换为临时路径传入; 如果是前端生成图片,直接通过 wx.createCanvasContext() 画一个, 然后通过 canvasToTempFilePath 转成图片临时路径。文章来源:https://www.toymoban.com/news/detail-510536.html
uni.canvasToTempFilePath({
destWidth: 100,
destHeight: 100,
canvasId: 'qrcode',
success: function(res) {
// 在H5平台下,tempFilePath 为 base64
// qrimg.value=res.tempFilePath
resolve(res.tempFilePath)
},
fail: function(error) {
wx.showToast({
title: "保存图片失败",
duration: 2000
})
if (error.errMsg === "saveImageToPhotosAlbum:fail:auth denied" ||
error.errMsg === "saveImageToPhotosAlbum:fail auth deny" ||
error.errMsg === "saveImageToPhotosAlbum:fail authorize no response"
) {
// 这边微信做过调整,必须要在按钮中触发,因此需要在弹框回调中进行调用
wx.showModal({
title: '提示',
content: '需要您授权保存相册',
showCancel: false,
success: modalSuccess => {
wx.openSetting({
success(settingdata) {
console.log("settingdata", settingdata)
if (settingdata.authSetting['scope.writePhotosAlbum']) {
wx.showModal({
title: '提示',
content: '获取权限成功',
showCancel: false,
})
} else {
wx.showModal({
title: '提示',
content: '获取权限失败,将无法保存到相册哦~',
showCancel: false,
})
}
},
})
}
})
reject(error)
}
reject(error)
}
})
三、Windows端兼容性问题
3. 用Windows电脑端微信,打开当前小程序,会发现,调用 wx.showShareImageMenu() 无反应( success、fail 方法都没执行),经咨询,showShareImageMenu方法不支持在Windows上使用, 因此需要提前判断是否是Windows系统(通过判断 getSystemInfoSync().platform 是否等于 windows ),如果是Windows系统,要么隐藏入口,要么toast给提示,来避开此问题文章来源地址https://www.toymoban.com/news/detail-510536.html
到了这里,关于微信小程序分享图片给微信好友(如二维码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!