最近要做个在H5页面里长按保存图片的功能,已经找了个第三方插件html2canvas解决了在浏览器和在ios app的长按保存,但是这个插件在android app里失效了,所以得单独处理android app内嵌H5页面的长按保存图片,有没有什么方法解决?
回答
只是下个图片不用用到html2canvas吧?demo
Document
var timer = null;
var $img = document.querySelector('.img');
$img.addEventListener('touchstart', () => {
clearTimeout(timer)
console.log('touch')
timer = setTimeout(() => {
fetch($img.src).then(res => res.blob()).then(blob => {
var $a = document.createElement('a');
var url = URL.createObjectURL(blob);
$a.href = url;
$a.download = 'test.jpg'
$a.style.display = 'none';
document.body.appendChild($a)
$a.click()
URL.revokeObjectURL(url);
document.body.removeChild($a);
})
}, 1000)
});
$img.addEventListener('touchend', () => clearTimeout(timer));
html2canvas这个兼容还是可以的。建议打断点看看;