我在为Cordova实现Card.io插件时遇到了一些麻烦。还有如何安装和实施插件GitHub的页面上的说明:https://github.com/card-io/card.io-Cordova-PluginCordova Card.IO插件实现
我做
$ cordova plugin add https:///...
添加的切入并补充他们告诉你GitHub的页面上添加按钮。到目前为止,我很确定我正在尽我所能。现在问题来了,但在应用程序中的实际实现。我在我的应用程序中使用了ui框架,因此我没有index.js文件,我的代码也不像标准index.js中关于deviceReady处理的代码。我只是做...
.ready(function() {
// Code to fire on device ready.
}):
我对回调有些熟悉,但我不知道他们的例子中发生了什么。整个“例子:function(){...”对我来说是全新的。
有人可以重写该示例,以便它是一些结构良好,使得更有意义的功能?
我试着这样做,我的代码现在看起来像这样:
.ready(function() {
CardIO.canScan(onCardIOCheck);
});
function onCardIOComplete() {
var cardIOResponseFields = [
"cardType",
"redactedCardNumber",
"cardNumber",
"expiryMonth",
"expiryYear",
"cvv",
"postalCode"
];
var len = cardIOResponseFields.length;
alert("card.io scan complete");
for (var i = 0; i < len; i++) {
var field = cardIOResponseFields[i];
alert(field + ": " + response[field]);
}
}
function onCardIOCancel() {
alert("card.io scan cancelled");
}
function onCardIOCheck(canScan) {
alert("card.io canScan? " + canScan);
var scanBtn = document.getElementById("scanBtn");
if (!canScan) {
scanBtn.innerHTML = "Manual entry";
}
scanBtn.addEventListener("click", function(e) {
var options = {
"requireExpiry": true,
"requireCVV": false,
"requirePostalCode": false,
"restrictPostalCodeToNumericOnly": true
};
CardIO.scan(options, onCardIOComplete, onCardIOCancel);
});
}
这不工作,虽然。我在.ready()函数内部的调用的两侧添加了alert(),以查看它是否触发。这两者都会触发,但它好像Card.canScan()函数根本不会触发。我还在onCardIOCheck函数中添加了一个alert(),以查看它是否到达,但事实并非如此。
任何帮助将不胜感激。
(请注意:我不使用Angular.js,我只用纯JavaScript偶有jQuery的)
谢谢,我试过你的解决方案。它有帮助,但不完全工作。它有助于Card.io现在正确启动。但是,它会关闭canScan功能,但回调不会触发。更令人感到奇怪的是,当我将应用程序置于后台并返回时,回调触发状态为“true”,这是积极的。但为什么只有当应用程序在后台时才会触发。然后,当我点击按钮时,什么都没有发生,但是当我将应用程序放在后台时,它会调出Card.io界面。接口再次只能在后台运行。思考? – user1840352