Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用从Phonegap应用程序运行的画布启用CORS?_Javascript_Html_Cordova_Canvas - Fatal编程技术网

Javascript 如何使用从Phonegap应用程序运行的画布启用CORS?

Javascript 如何使用从Phonegap应用程序运行的画布启用CORS?,javascript,html,cordova,canvas,Javascript,Html,Cordova,Canvas,我使用KineticJS将图像添加到画布元素,当添加任何图像时,由于CORS安全问题,我无法获取渲染画布的dataUrl 我在StackOverflow上找到的修复建议在“服务器”上传递一个allow access origin头,但由于这是一个在iPad上运行的本地应用程序,因此没有服务器,因此它被认为是本地的 是否有一个变通方法来启用dataUrl功能,这样我就可以在iPad上本地运行时保存“受污染”的画布 我用于获取URL的代码如下所示: $(document).on("tap", "#s

我使用KineticJS将图像添加到画布元素,当添加任何图像时,由于CORS安全问题,我无法获取渲染画布的dataUrl

我在StackOverflow上找到的修复建议在“服务器”上传递一个allow access origin头,但由于这是一个在iPad上运行的本地应用程序,因此没有服务器,因此它被认为是本地的

是否有一个变通方法来启用dataUrl功能,这样我就可以在iPad上本地运行时保存“受污染”的画布

我用于获取URL的代码如下所示:

$(document).on("tap", "#share-menu-button", function() {
    stage.toDataURL({
        callback:function(dataUrl) {
            alert(dataUrl);
        }
    });
});

我试图在Cordova的iOS上使用“file:///”方案对图像执行canvas.todata URL,并得到了各种错误,包括:“访问控制不允许Origin null允许Origin。”

对我有效的解决方案包括两个步骤:

  • 添加到config.xml的部分:

  • 如本文所述:

  • 使用以下命令将navigator.camera.getPicture()的成功回调中返回的文件名从“file://”方案更新为新的“app://”方案:

    imageFileName=window.WkWebView.convertFilePath(imageFileName)

  • 如本文所述:

    如果本地在这里表示文件://它仍然被视为不同的来源,您至少需要一个本地服务器来从中提供页面和图像。如果是本地的,您是否也可以从
    文件://
    加载包含画布元素的页面?不确定这是否有效,但它可能。。。例如,创建一个
    ,其中
    src
    指向
    file://some/path/somefile.html