之前使用uni官网的api 写的app 是没有问题的 回头看到 api 不支持H5
安卓是可以直接长按保存到手机相册的
ios 端不行
第一种解决办法 绑定a 标签进行下载
// 第一种方法 使用a标签 进行下载 只能下载下来 实现不理想
uni.showModal({
title: '提示',
content: '保存图片到手机中',
success: function(res) {
if (res.confirm) {
console.log('用户点击确定');
let ua = window.navigator.userAgent.toLowerCase()
if (ua.match(/MicroMessenger/i) == 'micromessenger') {
uni.$showMsg('微信浏览器不支持长按保存,请用手机浏览器打开')
// do something
}
var oA = document.createElement("a");
oA.download = ''; // 设置下载的文件名,默认是'下载'
oA.href = that.saveImg;
document.body.appendChild(oA);
oA.click();
oA.remove(); // 下载之后把创建的元素删除
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
// 第二种方法 需要给canvas 里加上img 标签绑定src 就可以实现
<canvas :style="{width:imgWidth+'px',height:imgHeight+'px'}" canvas-id="myCanvas" class="topImg">
<img :src="saveImg" class="linkimage" mode="widthFix" />
</canvas>
.linkimage {
display: block;
width: 100%;
height: 100%;
-webkit-touch-callout: default; // 要配置这行关键代码,不然可能不生效
}