前端小白的uni-app艰难学习之路
微信小程序分享
实现微信小程序分享和app内微信分享
小程序分享很简单,我们通过button的open-type属性
<!-- #ifdef MP-WEIXIN -->
<button class="share-btn" open-type="share">立即分享</button>
<!-- #endif -->
然后定义onShareAppMessage方法(与onload同级)
onShareAppMessage(res) {
return {
title: '微信小程序测试分享',
path: '/pages/common/login'
}
}
其中path是你的分享被点击后跳转的页面,需要是完整的路径
app微信分享
在app内调用分享,不会自动生成图片,需要我们自己生成,我这里是分享本页,所以先使用了截图功能,把本页内容生成图片并保存在相册,然后分享时从相册中获取并分享
首先是截图并保存
share: function () {
this.showShare = true
var pages = getCurrentPages()
var page = pages[pages.length - 1]
var bitmap = null
var currentWebview = page.$getAppWebview()
bitmap = new plus.nativeObj.Bitmap('amway_img')
// 将web内容绘制到Bitmap对象中
currentWebview.draw(bitmap, function () {
bitmap.save("_doc/a.jpg", {}, function (i) {
uni.saveImageToPhotosAlbum({
filePath: i.target,
success:function(){
bitmap.clear()
uni.showToast({
title: '保存图片成功',
mask: false,
duration: 1500
})
}
})
}
,function (e) {
// console.log('保存失败', + JSON.stringify(e))
})
},
function (e) {
// console.log('截屏失败', JSON.stringify(e))
})
}
然后是选择分享到微信聊天界面还是朋友圈
shareToWeixin: function (scene) {
uni.chooseImage({
count: 1,
sizeType: ['compressed'],
sourceType: ['album'],
success: (res) => {
uni.share({
provider: 'weixin',
type: 2,
title: 'app微信分享测试',
scene: scene,
imageUrl: res.tempFilePaths[0],
success: (res) => {
// console.log(res)
uni.showToast({
title: '分享成功!'
})
},
fail: (err) => {
// console.log(err)
}
})
}
})
},