我正在使用KineticJS将图像添加到canvas元素中,当添加任何图像时,由于CORS安全问题,我无法获取渲染画布的dataUrl。
我在StackOverflow上找到的修复建议在"服务器"上传递allow-access-origin标头,但由于这是在iPad上运行的本地应用程序,因此没有服务器,因此它被认为是本地的。
是否有启用dataUrl功能的解决方法,以便我可以保存" tainted"在iPad上本地运行时画布?
我用来抓取网址的代码如下:
$(document).on("tap", "#share-menu-button", function() {
stage.toDataURL({
callback:function(dataUrl) {
alert(dataUrl);
}
});
});
答案 0 :(得分:0)
我试图在 Cordova 的 iOS 上使用“file:///”方案对图像执行 canvas.toDataURL,并收到各种错误,包括:“Access-Control-Allow-Origin 不允许使用 Origin null”。
对我有用的解决方案包括两个步骤:
添加到 config.xml 的
如此处所述: https://cordova.apache.org/announcements/2020/06/01/cordova-ios-release-6.0.0.html
使用以下方法将成功回调中从 navigator.camera.getPicture() 返回的文件名从“file:///”方案更新为新的“app://”方案:
imageFileName = window.WkWebView.convertFilePath( imageFileName )
作为(种类)记录在此处: https://github.com/apache/cordova-plugin-camera/issues/622#issuecomment-659357799