У меня возникли проблемы с внедрением плагина Card.io для Cordova. Есть инструкции на странице GitHub о том, как установить и реализовать плагин: https://github.com/card-io/card.io-Cordova-PluginПлагин Cordova Card.IO плагин
Я добавил врезание делая
$ cordova plugin add https:///...
И добавил кнопку они говорят вам, чтобы добавить на страницу GitHub. До этого момента я почти уверен, что делаю все так, как должен. Здесь возникает проблема, хотя фактическая реализация в приложении. Я использую ui framework в своем приложении, и поэтому у меня нет файла 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);
});
}
Это не работает, хотя. Я добавил alert() по обе стороны вызова внутри функции .ready(), чтобы узнать, срабатывает ли он. Оба огня, но это как если бы функция Card.canScan() не срабатывала вообще. Я добавил функцию alert() внутри функции onCardIOCheck, чтобы убедиться, что она когда-либо достигнута, но это не так.
Любая помощь была бы принята с благодарностью.
(Пожалуйста, обратите внимание: я не использую Angular.js, я использую только чистый Javascript с редкими JQuery)
Спасибо, я попробовал ваше решение. Это помогает, но не полностью работает. Это помогает в том, что Card.io теперь срабатывает должным образом. Однако он запускает функцию canScan, но обратный вызов не срабатывает. Что еще более странно, так это то, что когда я помещаю приложение в фоновый режим и возвращаюсь к нему, обратный вызов срабатывает со статусом «true», что является положительным. Но почему он срабатывает только тогда, когда приложение находится в фоновом режиме. Затем, когда я нажимаю кнопку, ничего не происходит, но снова, когда я помещаю приложение в фоновом режиме, он вызывает интерфейс Card.io. Интерфейс снова работает только в фоновом режиме. Мысли? – user1840352