我在爲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