我想将卡片扫描器从 card.io SDK实现到iOS版Phonegap中。我正在使用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) 将以下内容添加到 配置.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) 在项目的"生成设置"中,将 -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);
}
他们在哪个文件夹(1)中谈论?Xcode 中的插件文件夹?或者项目目录中的插件文件夹(具有 config.xml 的目录)。我已经尝试了这两种方法,但示例代码没有调用onCardIOCheck。
Plugins
文件夹是相同的,Xcode 项目只是引用该文件夹,当您复制文件(取决于您喜欢如何组织它们)时,您通常会选择 copy,因此它们将放置在 plugins
文件夹中,只要文件编译到项目中就无关紧要。
将在那里,在第2步中,他们说"将CardIO目录(包含多个.h文件和libCardIO.a)添加到Xcode项目中。我该怎么做?将文件夹复制到何处?
文件复制到何处并不重要,只要它们包含在 Xcode 项目中并进行编译即可。
我已经完成了所有工作,我的onDeviceReady可以工作,但是window.plugins.card_io.canScan(onCardIOCheck);没有调用。
确保CardIOPGPlugin.js
在使用它的javascript文件之前加载,它可能未定义,因此失败。
希望对您有所帮助。