2015-11-11 46 views
1
.controller('paymentsController', function ($scope, $localStorage, $log, $state, $window, $ionicModal, Payment, ItemList, SweetAlert) { 

$scope.scanCard = function(){ 

    var cardIOResponseFields = [ 
    "card_type", 
    "redacted_card_number", 
    "card_number", 
    "expiry_month", 
    "expiry_year", 
    "cvv", 
    "zip" 
    ]; 

    var onCardIOComplete = function(response) { 
    for (var i = 0, len = cardIOResponseFields.length; i < len; i++) { 
     var field = cardIOResponseFields[i]; 
     console.log(field + ": " + response[field]); 
    } 
    }; 

    var onCardIOCancel = function() { 
    console.log("card.io scan cancelled"); 
    }; 

    var onCardIOCheck = function (canScan) { 
    console.log("card.io canScan? " + canScan); 
    var scanBtn = angular.element($("#scanBtn")).scope(); 
    //var scanBtn = document.getElementById("scanBtn"); 
    if (!canScan) { 
     scanBtn.innerHTML = "Manual entry"; 
    } 
    }; 

    CardIO.scan({ 
     "collect_expiry": true, 
     "collect_cvv": false, 
     "collect_zip": false, 
     "shows_first_use_alert": true, 
     "disable_manual_entry_buttons": false 
    }, 
    onCardIOComplete, 
    onCardIOCancel 
); 

    CardIO.canScan(onCardIOCheck); 
}; 

} 我安裝在我的PhoneGap讀卡器插件(我用的離子作爲一個框架),我遇到的問題是,插件是行不通的。這是我使用的插件https://github.com/card-io/card.io-iOS-SDK-PhoneGap卡IO PhoneGap的插件沒有工作

這是我的看法。

<button id="scanBtn" ng-click="scanCard()" class="button button-large button-block button-light">Scan Card</button> 

當用戶點擊#scanBtn時,它會加載該腳本。

 var cardIOResponseFields = [ 
    "card_type", 
    "redacted_card_number", 
    "card_number", 
    "expiry_month", 
    "expiry_year", 
    "cvv", 
    "zip" 
    ]; 

    var onCardIOComplete = function(response) { 
    for (var i = 0, len = cardIOResponseFields.length; i < len; i++) { 
     var field = cardIOResponseFields[i]; 
     console.log(field + ": " + response[field]); 
    } 
    }; 

    var onCardIOCancel = function() { 
    console.log("card.io scan cancelled"); 
    }; 

    var onCardIOCheck = function (canScan) { 
    console.log("card.io canScan? " + canScan); 
    var scanBtn = angular.element($("#scanBtn")).scope(); 
    //var scanBtn = document.getElementById("scanBtn"); 
    if (!canScan) { 
     scanBtn.innerHTML = "Manual entry"; 
    } 
    }; 

    CardIO.scan({ 
     "collect_expiry": true, 
     "collect_cvv": false, 
     "collect_zip": false, 
     "shows_first_use_alert": true, 
     "disable_manual_entry_buttons": false 
    }, 
    onCardIOComplete, 
    onCardIOCancel 
); 

    CardIO.canScan(onCardIOCheck); 
}; 

我的應用程序不會在我的瀏覽器或使用PhoneGap的應用程序工作,但是當我啓動離子模擬器只有進入到輸入卡的形式顯示出來,並沒有攝像頭載荷掃描卡,這導致我相信相機執行失敗。

在我的瀏覽器中加載心臟時,出現以下控制檯錯誤: ReferenceError:CardIO未定義。

回答

1

請在設備上嘗試一致。

我在瀏覽器上得到了同樣的錯誤,它在設備上運行良好。您可以將其視爲相機/或聯繫人選取器插件 - 僅適用於設備 - 而不適用於SIM或瀏覽器。

+0

是的,你的權利,一旦我把它放在設備上我沒有得到一個錯誤。 – user3862830

0

在瀏覽器或模擬器上運行時,所有cordova插件都會引發錯誤。始終使用他們的設備和內部

$ionicPlatform.ready(function() { ... });