uniApp实现微信分享页面/二维码功能

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32958797/article/details/88951673

需求:点击分享页面的分享到微信/wx朋友圈按钮将该页面分享到对应路径。

<view class="content">
		   <image :src="src" mode="" class="qrcode"></image>
		   <view class="btn">
				<view>
					<image @tap="shareWeiXin('WXSceneSession')" src="../../../../static/fxb1.jpg" class="wxfx"></image>
				</view>
				<view>
					<image @tap="shareWeiXin('WXSenceTimeline')" src="../../../../static/fxb2.jpg" class="wxfx"></image>
				</view>
				<view class="wx">
					邀请码: {{invitation}}
				</view>
			</view>
	   </view>
			//该方法是将当前页面绘制成图片保存到本地然后调用分享方法。
			shareWeiXin(scene){
				let _this = this
				let sc = scene
				_this.capture(sc)
			},
			capture(scene) {
				let _this = this
                let pages = getCurrentPages();
                let page = pages[pages.length - 1];
                let bitmap=null;  
                let currentWebview = page.$getAppWebview();    
                bitmap = new plus.nativeObj.Bitmap('amway_img');  
                // 将webview内容绘制到Bitmap对象中  
                currentWebview.draw(bitmap,function(){  
                    console.log('截屏绘制图片成功');  
                    // bitmap.save( "_doc/"+Math.random()+".jpg"
                    bitmap.save( "_doc/invite.jpg"
                    ,{}  
                    ,function(i){  
                        console.log('保存图片成功:'+JSON.stringify(i));  
                        uni.saveImageToPhotosAlbum({  
                            filePath: i.target,  
                            success: function () {
								_this.path = i.target
                                bitmap.clear(); //销毁Bitmap图片  
                                uni.showToast({  
                                    title: '保存图片成功',  
                                    mask: false,  
                                    duration: 1500  
                                }); 
								uni.share({
									provider: "weixin",
									scene: scene,
									type: 2,
									imageUrl : _this.path,
									success: function (res) {
										console.log("success:" + JSON.stringify(res));
									},
									fail: function (err) {
										console.log("fail:" + JSON.stringify(err));
									}
								});
                            }  
                        });  
                    }  
                    ,function(e){  
                        console.log('保存图片失败:'+JSON.stringify(e));  
                    });  
                },function(e){  
                    console.log('截屏绘制图片失败:'+JSON.stringify(e));  
                });  
                //currentWebview.append(amway_bit);    
            }

如果是要单独分享二维码就简单地多了,不过值得注意的一点是uni.share不支持分享base64,所以如果是base64的话要先将其转成path路径。官方论坛有人发布了一款工具images-tools.js可以实现

https://ask.dcloud.net.cn/article/35512

猜你喜欢

转载自blog.csdn.net/qq_32958797/article/details/88951673