Vue 使用h5plus 点击保存二维码和调用自带分享整个页面

<!-- 二维码html -->
<div class="wrapper-img" id="qr"></div> 
//保存二维码(二维码生成使用qr.js,会生成img标签 src为base64)
    saveCode(){
	let _this = this;
	let imgData;
	let qrImg = document.getElementById('qr').getElementsByTagName('img');
	if(qrImg){
		imgData = qrImg[0].src
	}
			
	let filename = "qrcode_" + (new Date()).getTime() + '.png';
	if(!window.plus) return
	
	let bitmap = new plus.nativeObj.Bitmap();
			
	bitmap.loadBase64Data(imgData);
	bitmap.save("_doc/"+filename, {
		check:true,	// 设置为检测白屏
		overwrite: true,
		quality:100,
	},function(i){
		//保存到系统相册
	    plus.gallery.save(i.target,function(d){
	    //销毁Bitmap图片
	     bitmap.clear();
	      _this.$toast.message('成功保存到系统相册');
	}, function(e){
	    //销毁Bitmap图片
	     bitmap.clear();
	     alert('保存到系统相册失败,请尝试重新保存或截图保存');
	    });
	},function(){alert('保存失败,请尝试重新保存或截图保存');});
    },
//调用手机自带分享页面
sharePicture() {
	let _this = this;
	if(!window.plus) return
	let ws = plus.webview.currentWebview();
	let bitmap = new plus.nativeObj.Bitmap();
	// 将webview内容绘制到Bitmap对象中
	ws.draw(bitmap, function() {
		bitmap.save("_doc/share.png", {
			check: true, // 设置为检测白屏
			overwrite: true,
			quality: 100,
		}, function(i) {
			//分享
			let path = i.target
	        //取图片名称(在ios下图片名称根据分辨率不同可能为share@2x.png,share@3x.png)
			let index = path.lastIndexOf('/')
			let imgName = path.substring(index+1,path.length)
			//console.log(path)
			//console.log(index)
			//console.log(imgName)
			var msg = {
				type: 'image',
				pictures: ['_doc/'+imgName],//这里的pictures是要分享的图片,直接取绝对路径会分享失败,这里取相对路径
			};
			plus.share.sendWithSystem(msg, function(success) {
				bitmap.clear();
				console.log("调起分享!");
			}, function(error) {
				//mui.toast("转发失败"+JSON.stringify(error));
				console.log(JSON.stringify(error))
			});
		}, function(e) {
			//销毁Bitmap图片
			bitmap.clear();
			alert('保存失败,请尝试重新保存或截图保存');
		});
	}, function(e) {
		console.log('截屏绘制图片失败:' + JSON.stringify(e));
	});
},

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值