1

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);
        }
4

1 に答える 1

1

(1) でどのフォルダについて話しているのですか? Xcodeのプラグインフォルダ? または、プロジェクト ディレクトリ (config.xml があるディレクトリ) 内の Plugins フォルダー。両方を試しましたが、サンプル コードは onCardIOCheck を呼び出しません。

フォルダーは同じです。Xcode プロジェクトはPluginsフォルダーを参照するだけです。ファイルをコピーするときは (ファイルの整理方法によって異なります)、通常はコピーを選択するためplugins、ファイルがコンパイルされている限り、ファイルはフォルダー内に配置されます。プロジェクトそれは本当に重要ではありません。

そこでは、ステップ 2 で、「CardIO ディレクトリ (複数の .h ファイルと libCardIO.a を含む) を Xcode プロジェクトに追加する」と書かれています。どうすればいいですか?フォルダをどこにコピーしますか?

ファイルが Xcode プロジェクトに含まれており、コンパイルされている限り、ファイルをどこにコピーするかは問題ではありません。

onDeviceReady は動作しますが、window.plugins.card_io.canScan(onCardIOCheck); をすべて実行しました。は呼び出していません。

それを使用するJavaScriptファイルの前にロードされていることを確認してくださいCardIOPGPlugin.js。未定義である可能性があり、失敗します。

それが役に立てば幸い。

于 2013-10-28T17:55:31.467 に答える