Javascript 如何将HTML5画布元素保存为图像?

Javascript 如何将HTML5画布元素保存为图像?,javascript,android,canvas,ibm-mobilefirst,Javascript,Android,Canvas,Ibm Mobilefirst,我正在使用IBM Worklight 6.0开发本机移动应用程序 我在应用程序中有一个画布元素,我需要将其保存为移动设备本地存储中的图像文件。代码如下: HTML: <body> <div id="sketch"> <canvas id="paint"></canvas> </div> <input type="button" name="saveCanvas" value="Save" onclick="saveCanv

我正在使用IBM Worklight 6.0开发本机移动应用程序

我在应用程序中有一个画布元素,我需要将其保存为移动设备本地存储中的图像文件。代码如下:

HTML:

<body>
<div id="sketch">
    <canvas id="paint"></canvas>
</div>
<input type="button" name="saveCanvas" value="Save" onclick="saveCanvas()">

    <script src="js/canvas.js"></script>
</body>
function saveCanvas() {

 var canvas = document.getElementById("paint");        
 var context = canvas.getContext("2d");                   

 var myimage = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream"); 
 window.location.href=myimage; 

}
我需要一个弹出窗口,允许用户保存在本地存储图像。现在的问题是,当我在Worklight Mobile Browser Simulator中测试应用程序时,会打开一个弹出窗口来保存图像,但当我在Android虚拟设备或我的设备中测试它时,它不起作用


请帮助我了解如何将画布保存为设备本地存储器中的图像

如果此应用程序是一个不基于Worklight/Cordova的web应用程序,您可以使用您的代码,或者它确实可以工作

但是,在Cordova应用程序(或Worklight应用程序)的上下文中,Cordova WebView没有“下载权限”。因此,需要使用将转换后的图像保存到本地存储器

您也可以尝试使用此Cordova插件:

  • 因为您使用的是Worklight 6.0,它使用Cordova 2.6,所以需要使用插件的v0.2。这个版本缺少Java实现,所以您需要从v0.4复制它,并对它进行一些修改,我相信

  • 如果选择升级到Worklight 6.1(使用Cordova 3.1),则可以使用插件的v0.5,该插件不需要插件指南中编写的内容


当然,你可以选择自己写一篇,也可以选择上面的…

嗨,这里是Canvas2ImagePlugin的作者。。。遗憾的是,该插件的Android实现是另一位开发人员的贡献,是在该插件转换为Cordova 3.x兼容性之后完成的。我不确定将Android实现向后移植到插件的v0.2.0版本需要什么。。。我想去看看,但我不知道是否有时间。