gpt4 book ai didi

javascript - Canvas 签名触摸在电话间隙中产生问题

转载 作者:IT老高 更新时间:2023-10-28 21:53:07 25 4
gpt4 key购买 nike

我发现了一些与“phonegap Canvas 签名”相关的帖子,但它们没有帮助。我有一些下拉框、文本框和一个签名字段。我想在 sqlite 数据库中插入这些字段。

我的数据库表创建如下所示:

tx.executeSql("CREATE TABLE IF NOT EXISTS parts(id INTEGER PRIMARY KEY AUTOINCREMENT,nr,productId,description,toolsVerified)");
tx.executeSql("CREATE TABLE IF NOT EXISTS costs(id INTEGER PRIMARY KEY AUTOINCREMENT,nr,date,starttime,endtime,reason,cost)");
tx.executeSql("CREATE TABLE IF NOT EXISTS sign(orderNr unique ,rapport,sign)");

像普通文本一样读取字段值, Canvas 签名字段的下拉菜单就像

kundusSign = $("#mKundusskirt")[0];
kundensUnderSkrift = kundusSign.toDataURL();

插入数据的代码如下:

db
.transaction(function(tx) {
// for parts table
tx
.executeSql(
"insert into parts(nr,productid,description,toolsVerified) values(?,?,?,?)",
[ nr, productId, desc, tool ]);
// for cost table
tx
.executeSql(
"insert into costs(nr,date,starttime,endtime,reason,cost) values (?,?,?,?,?,?)",
[ nr, date, startTime, endTime, reason, cost ]);

// for sign table
signQuery = 'UNION SELECT ' + nr + ", '" + rapport + "','"
+ kundensUnderSkrift + "'";
tx
.executeSql('insert or replace into "sign" SELECT "orderNr","rapport","sign"'
+ signQuery);
});

我包括 sign plugin签名。现在我的问题是,当我输入签名字段时,没有插入数据库字段。此外,当我尝试删除符号插入查询并放置符号时,也不会插入其他两个表(成本和零件)值。如果我没有触摸符号字段,则图像的所有值都已成功插入,插入 toDataurl() 格式。

我只在堆栈跟踪中得到了这个错误:

sqlite (23) 未授权.

请给出一些解决方案。

编辑:我也试过这个:

tx.executeSql("insert into sign(orderNr,sign,rapport)values(?,?,?)",[nr,rapport,kundensUnderSkrift]);

最佳答案

嗯,它可以来自很多地方。

首先,您是否在 Android(2.3 或更低版本)上对其进行测试?如果是这样,那么问题很可能是 Android 默认浏览器不支持 .toDataUrl() 这意味着它也无法在 PhoneGap 中运行。

所以首先我建议你做的是仔细检查你在 kundensUnderSkrift 中是否真的有一个字符串。

第二个有时 WebSql 可能会很棘手,所以为了安全起见,我将使用它来创建表:

tx.executeSql("CREATE TABLE IF NOT EXISTS sign(orderNr unique ,rapport,sign STRING)");

WebSql 更新似乎根本不起作用,因此请确保清除数据或卸载,而不是再试一次。

3rd 你的语句顺序看起来不对:

tx.executeSql("insert into sign(orderNr,sign,rapport)values(?,?,?)",[nr,rapport,kundensUnderSkrift]);

应该是:

tx.executeSql("insert into sign(orderNr,rapport,sign)values(?,?,?)",[nr,rapport,kundensUnderSkrift]);

如果在检查了所有 3 点后仍然无法正常工作,我会建议尝试以下 UGLY 方法:

tx.executeSql("insert into sign(orderNr,sign,rapport) values('"+nr+"','"+ kundensUnderSkrift+"','"+rapport+"');",[],function(tx,success){alert("ALL OK");},function(tx,error){alert(error.message);});

您可以使用 console.log 代替 alert,但在移动设备上,我发现使用 alert 进行调试要容易得多。 (除了windows phone,默认不支持alert)。

如果这对你有帮助,请告诉我。

关于javascript - Canvas 签名触摸在电话间隙中产生问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21672814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com