Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.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 从画布下载的签名图像在闪烁一秒钟后消失_Javascript_Jquery_Html_Cordova - Fatal编程技术网

Javascript 从画布下载的签名图像在闪烁一秒钟后消失

Javascript 从画布下载的签名图像在闪烁一秒钟后消失,javascript,jquery,html,cordova,Javascript,Jquery,Html,Cordova,我试图通过signaturepad和canvas捕获用户的签名,并在phonegap cordova的一个项目中将其下载到设备中。图像正在被下载,但在下一分钟就消失了 不知道我的代码中的问题在哪里。我还附上了我的代码片段 文件传输插件的链接- //register.js var-imageURI; var图像信号; var signaturePad; var帆布; $(文档).ready(函数(){ 文件。添加的监听器(“deviceready”,OnDeviceraddy,false); }

我试图通过signaturepad和canvas捕获用户的签名,并在phonegap cordova的一个项目中将其下载到设备中。图像正在被下载,但在下一分钟就消失了

不知道我的代码中的问题在哪里。我还附上了我的代码片段

文件传输插件的链接-

//register.js
var-imageURI;
var图像信号;
var signaturePad;
var帆布;
$(文档).ready(函数(){
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
});
函数ondevicerady(){
}
函数callcanvas(){
//$('#test')。弹出('open');
$('#test').attr(“样式”,“显示:块”);
警报(“内部呼叫画布…”);
canvas=document.getElementById(“签名”);
var w=窗内宽度;
var h=窗内高度;
//由于画布没有任何大小,我们将使用JS指定它
//画布的宽度将是设备的宽度
画布宽度=w;
//画布的高度(几乎)是屏幕高度的三分之一。
帆布高度=h/2.5;
signaturePad=新的signaturePad(画布{
大小:1
});
document.getElementById(“导出”).addEventListener(“单击”),函数(e){
//您可以随心所欲地处理图像
//作为导出到服务器,甚至将其保存在设备上。
//imageURIsign=signaturePad.toDataURL(“图像/jpeg”);
imageURIsign=signaturePad.toDataURL();
document.getElementById(“预览”).src=ImageUrSign;
警报(“ImageUrSign:-”+ImageUrSign);
//下载文件();
},假);
document.getElementById(“重置”).addEventListener(“单击”),函数(e){
//清除画布
signaturePad.clear();
},假);
}
/*$(“.img下载”)。单击(函数(){
var data=signaturePad.toDataURL();
$(this.attr(“href”,数据)
$(this.attr(“下载”,“imgName.png”);
});*/
//yyy添加
函数下载文件(){
var fileTransfer=new fileTransfer();
var downloadurl=document.getElementById(“预览”).src;
var uri=encodeURI(下载URL);
var fileURL=cdvfile://localhost/sdcard/test.jpg';
fileTransfer.download(
uri,fileURL,
功能(条目){
警报(“下载完成:+entry.toURL());
},
函数(错误){
警报(“错误:-”+JSON.stringify(错误));
},
假,{
标题:{
“授权”:“基本dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=”
}
}
);
}
函数下载文件(URL、文件夹名称、文件名称){
//参数不匹配检查
如果(URL==null&&Folder\u Name==null&&File\u Name==null){
返回;
}否则{
//检查Internet连接可用性
var networkState=navigator.connection.type;
if(networkState==Connection.NONE){
返回;
}否则{
下载(URL、文件夹名称、文件名称);//如果有下载函数调用
}
}
}
功能下载(URL、文件夹名称、文件名称){
//请求文件系统的步骤
requestFileSystem(LocalFileSystem.PERSISTENT,0,fileSystemSuccess,fileSystemFail);
功能文件系统成功(文件系统){
var download_link=encodeURI(URL);
ext=download\u link.substr(download\u link.lastIndexOf('.')+1);//获取URL的扩展名
var directoryEntry=fileSystem.root;//获取目录的根路径
directoryEntry.getDirectory(文件夹名称{
创造:真的,
独家:假
},onDirectorySuccess,onDirectoryFail);//正在SD卡中创建文件夹
var rootdir=fileSystem.root;
var fp=rootdir.toURL();//返回本地目录的Fulpath
console.log(“harsh_link:-”+fp);
fp=fp+“/”+文件夹名称+“/”+文件名称+“+ext;//我们要给出的文件的完整路径和名称
//下载函数调用
文件传输(下载链接,fp);
}
DirectorySuccess函数(父级){
//目录创建成功
}
函数onDirectoryFail(错误){
//创建目录时出错
警报(“无法创建新目录:+错误。代码”);
}
函数文件系统失败(evt){
//无法访问文件系统
警报(evt.target.error.code);
}
}
函数文件传输(下载链接,fp){
var fileTransfer=new fileTransfer();
//具有URL和本地路径的文件下载功能
下载(下载链接,fp,
功能(条目){
警报(“下载完成:+entry.fullPath”);
},
函数(错误){
//下载中止错误或下载失败错误
警报(“下载错误源”+错误源);
//警报(“下载错误目标”+错误目标);
//警报(“上传错误代码”+错误代码);
}
);
}
//yyy添加

注册用户
签名

下载签名


我通过添加不透明白色的背景色解决了问题,因为签名板默认为黑色,我的问题通过更改背景色解决

var signaturePad=新的signaturePad(画布{

背景颜色:“rgb(255255)”


}))

FileTransfer
是插件吗?如果是这样的话,请链接它,因为它与代码非常相关。是的,它是一个插件,我已经添加了该插件,并且它已经在工作,也允许我下载图像,但当我尝试打开下载的图像时,它只会闪烁并消失,留下一个黑屏。@CarstenLøvboandersen我理解你的问题,但是如果没有插件,我们很难测试问题并帮助您解决问题,请更新您的代码片段,以便它反映您的示例problem@CarstenLøvboAndersen我已经为插件添加了链接。你现在能帮我解决这个问题吗?
dotSize: 1