我想将卡扫描器从 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/