Card.io SDK のカード スキャナーを Phonegap for iOS に実装したいと考えています。私はPhonegap v2.9.0を使用しており、これを経験しましたhttps://github.com/card-io/card.io-iOS-SDK-PhoneGap
プラグインであることは理解していますが、Phonegap でプラグインを作成または実装したことはありません。上記のリンクで提供されているコードは、私には機能しません。理由はわかりませんが、セットアップ手順で何か間違ったことをしている可能性があります。
説明が欲しい。以下は、gitHub に記載されている手順です。
1) CardIOPGPlugin.[h|m] をプロジェクト (Plugins グループ) に追加します。
2) CardIOPGPlugin.js をプロジェクトの www フォルダーにコピーします。(まだ www フォルダーがない場合は、シミュレーターで実行し、ビルド警告の指示に従ってください。)
3) html に eg を追加します。詳細な使用方法については、CardIOPGPlugin.js を参照してください。
4) PhoneGap バージョン 3.0+ の場合、config.xml に以下を追加します。
<feature name="CardIOPGPlugin"><param name="ios-package" value="CardIOPGPlugin" /></feature>
私の疑問:
(1) でどのフォルダについて話しているのですか? Xcodeのプラグインフォルダ? または、プロジェクト ディレクトリ (config.xml があるディレクトリ) 内の Plugins フォルダー。両方を試しましたが、サンプル コードは onCardIOCheck を呼び出しません。
card.io SDK の gitHub は、初期セットアップ手順を提供します。( https://github.com/card-io/card.io-iOS-SDK )
そこでは、ステップ 2 で、「CardIO ディレクトリ (いくつかの .h ファイルと libCardIO.a を含む) を Xcode プロジェクトに追加する」と書かれています。どうすればいいですか?フォルダをどこにコピーしますか?
また、ステップ 3 と 4 も実行しました。
3) プロジェクトのビルド設定で、-lc++ をその他のリンカー フラグに追加します。
4) これらのフレームワークをプロジェクトに追加します。iOS バージョン 5.0 までの弱いリンクがサポートされています。(フレームワークのリスト..)
onDeviceReady は動作しますが、window.plugins.card_io.canScan(onCardIOCheck); をすべて実行しました。は呼び出していません。
お願い.. PhoneGap と iOS でこれを行ったことがある人は、詳細な説明と Phonegap iOS でこれを実装する手順を提供してください。
私のコードを提供する:(アプリIDは質問のために変更されています)
document.addEventListener("deviceready",onDeviceReady, false);
function onDeviceReady() {
alert('device ready');
var cardIOResponseFields = [
"card_type",
"redacted_card_number",
"card_number",
"expiry_month",
"expiry_year",
"cvv",
"zip"
];
var onCardIOComplete = function(response) {
alert("card.io scan complete");
for (var i = 0, len = cardIOResponseFields.length; i < len; i++) {
var field = cardIOResponseFields[i];
console.log(field + ": " + response[field]);
}
};
var onCardIOCancel = function() {
alert("card.io scan cancelled");
};
var onCardIOCheck = function (canScan) {
alert("card.io canScan? " + canScan);
var scanBtn = document.getElementById("scanBtn");
if (!canScan) {
scanBtn.innerHTML = "Manual entry";
}
scanBtn.onclick = function (e) {
window.plugins.card_io.scan(
"MYAPPIDCHANGEDFORQUESTION",
{
"collect_expiry": true,
"collect_cvv": false,
"collect_zip": false,
"shows_first_use_alert": true,
"disable_manual_entry_buttons": false
},
onCardIOComplete,
onCardIOCancel
);
}
};
window.plugins.card_io.canScan(onCardIOCheck);
}