1***@qq.com
1***@qq.com
  • 发布:2023-05-08 09:56
  • 更新:2023-08-03 21:11
  • 阅读:256

canvas.toDataURL('image/png')报错

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: Alpha

HBuilderX版本号: 3.8.1

手机系统: Android

手机系统版本号: Android 12

手机厂商: 小米

手机机型: Redmi note9 pro

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

onPrint(event, ownerInstance){
const _this=this
const doc = new jsPDF('l', 'pt', 'a4');
const printWarper=document.getElementById('printWarper')
const printWidth=printWarper.offsetwidth
const printHeight=printWarper.offsetHeight
let position = 0;
html2canvas(printWarper, {
width:printWidth,
height:printHeight,
scrollY: 0, // html2canvas默认绘制视图内的页面,需要把scrollY,scrollX设置为0
scrollX: 0,
useCORS: true //支持跨域
}).then(function(canvas) {

                const contentHeight=canvas.height;  
                const contentWidth=canvas.width;  
                let pageHeight = contentWidth / 841.89 * 592.28;  
                let pageData = canvas.toDataURL('image/png');  
                doc.addImage(pageData, 'png', 0, 0, contentWidth, contentHeight)  
                doc.save('CTStest.pdf');  
                ownerInstance.callMethod('printAction', {  
                    test: 'test'  
                })  

         });

        }

操作步骤:

必现,只要调用 canvas.toDataURL('image/png')这个方法就会报错

预期结果:

正常调用

实际结果:

报错:Uncaught (in promise) SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported. at app-view.js:367

bug描述:

在安卓app基座中调用canvas.toDataURL('image/png') 方法报如下错误
Uncaught (in promise) SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported. at app-view.js:367

在h5 中调试没有问题

2023-05-08 09:56 负责人:无 分享
已邀请:
晴天i

晴天i

解决了吗?我也遇到这个问题了

要回复问题请先登录注册