ios - 使用 Phonegap iOS 实现 card.io SDK 的正确方法?

标签 ios cordova card.io

我想将卡扫描器从 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] 到您的项目(插件组)。

2) 将 CardIOPGPlugin.js 复制到项目的 www 文件夹中。 (如果您还没有 www 文件夹,请在模拟器中运行并按照构建警告中的说明进行操作。)

3) 添加例如到你的 html。 有关详细的使用信息,请参阅 CardIOPGPlugin.js。

4) 将以下内容添加到 config.xml,适用于 PhoneGap 版本 3.0+:

<feature name="CardIOPGPlugin"><param name="ios-package" value="CardIOPGPlugin" /></feature>

我的疑问:

他们在 (1) 中谈论的是哪个文件夹? Xcode 中的插件文件夹?或项目目录(具有 config.xml 的目录)中的插件文件夹。我都试过了,但示例代码没有调用 onCardIOCheck。

card.io SDK 的 gitHub 提供了初始设置步骤。 ( https://github.com/card-io/card.io-iOS-SDK )

在那里,在第 2 步中,他们说“将 CardIO 目录(包含几个 .h 文件和 libCardIO.a)添加到您的 Xcode 项目中。”我该怎么做呢?将文件夹复制到哪里?

我还完成了第 3 步和第 4 步

3) 在项目的build设置中,将 -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);
        }

最佳答案

Which folder are they talking about in(1)? Plugins folder in Xcode? Or the Plugins folder in Project directory (directory that has config.xml). I have tried both but the sample code does not call the onCardIOCheck.

Plugins 文件夹是相同的,Xcode 项目只是引用该文件夹,当你复制文件时(取决于你喜欢如何组织它们)你通常会选择复制,因此它们将放在plugins 文件夹,只要编译到项目中的文件就无所谓了。

There, in Step 2, they say "Add the CardIO directory (containing several .h files and libCardIO.a) to your Xcode project." How do I do this? Where do I copy the folder to?

将文件复制到哪里并不重要,只要它们包含在 Xcode 项目中并经过编译即可。

I have done all, my onDeviceReady works, but window.plugins.card_io.canScan(onCardIOCheck); is not calling.

确保 CardIOPGPlugin.js 在使用它的 javascript 文件之前加载,它可能未定义并因此失败。

希望对您有所帮助。

关于ios - 使用 Phonegap iOS 实现 card.io SDK 的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19630028/

相关文章:

card.io - 我可以使用card.io获取信用卡扫描图像吗

ios - 当 UISlider 一直拖到最后时会触发什么事件?

php - json 解析失败 - cocoa 错误 3840 和字符 0 周围的无效值

javascript - Phonegap 中的解析查询返回错误 100 XMLHTTPRequest 失败

android - card.io Mono for Android (Xamarin Studio)

android - Card.io - Android 找不到 libcardioDecider.so

ios - PhoneGap 暂停事件,模糊当前屏幕以防止快照中显示敏感数据

ios - 如何检测 iPad 上的智能/外接键盘?

android - 移动应用程序 Jquerymobile 或 Sencha Touch 哪个更好? (与 Phonegap 一起使用)

javascript - PhoneGap 应用程序中的 FaceBook 集成