1 | <image id= "saveImg" :src= "imgSrc" ></image> |
主要是因为空格的处理:this.img.replace(/(\r\n)|(\n)|(\r)/g, "")
网络上的其他方式都尝试了 却忽略了最简单的问题;
1 2 3 4 5 6 7 8 9 10 11 12 13 | computed: { imgSrc(){ if (/android/i.test(navigator.userAgent)){ //判断是不是安卓手机 var imgSrc = this .img.replace(/(\r\n)|(\n)|(\r)/g, "" ) return imgSrc; } else { var url= 'data:image/png;base64' + this .img return url; } } }, |
以上就可以解决长按保存的问题
如果需要点击保存图片:以下方法会指引跳转到浏览器打开,微信中的H5无法下载;
1 | <image id= "saveImg" :src= "img" ></image> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | // #ifndef APP-PLUS const base64 = this .img; // 这里是你的64位图片数据 var arr = base64.split( ',' ); var bytes = atob(arr[1]); let ab = new ArrayBuffer(bytes.length); let ia = new Uint8Array(ab); for ( let i = 0; i < bytes.length; i++) { ia[i] = bytes.charCodeAt(i); } var blob = new Blob([ab], { type: 'application/octet-stream' }); var url = URL.createObjectURL(blob); var a = document.createElement( 'a' ); a.href = url; a.download = new Date().valueOf() + ".png" ; var e = document.createEvent( 'MouseEvents' ); e.initMouseEvent( 'click' , true , false , window, 0, 0, 0, 0, 0, false , false , false , false , 0, null ); a.dispatchEvent(e); URL.revokeObjectURL(url); // #endif |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义