我想将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)将以下内容添加到config.xml,适用于PhoneGap 3.0 +版:
<feature name="CardIOPGPlugin"><param name="ios-package" value="CardIOPGPlugin" /></feature>
我的怀疑:
他们在(1)中谈论了哪个文件夹? Xcode中的插件文件夹?或Project目录中的Plugins文件夹(具有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 Settings中,将-lc ++添加到Other Linker Flags。
4)将这些框架添加到您的项目中。支持iOS版本的弱链接回5.0。 (框架清单..)
我做了所有,我的onDeviceReady工作,但是window.plugins.card_io.canScan(onCardIOCheck);没有打电话。
请...之前在PhoneGap和iOS中完成此操作的任何人,请在Phonegap iOS中提供详细解释和步骤。
提供我的代码:( app 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);
}
答案 0 :(得分:1)
他们在(1)中谈论了哪个文件夹? Xcode中的插件文件夹?或Project目录中的Plugins文件夹(具有config.xml的目录)。我试过了两个,但示例代码没有调用onCardIOCheck。
Plugins
文件夹是相同的,Xcode项目只是引用文件夹,当你复制文件时(取决于你喜欢如何组织它们),你通常会选择复制,因此它们将成为{{{ 1}}文件夹,只要编译到项目中的文件并不重要。
在第2步中,他们说“将CardIO目录(包含几个.h文件和libCardIO.a)添加到Xcode项目中。”我该怎么做呢?我在哪里将文件夹复制到?
只要文件包含在Xcode项目中并进行编译,复制文件的位置无关紧要。
我做了所有,我的onDeviceReady工作,但是window.plugins.card_io.canScan(onCardIOCheck);没有打电话。
确保在使用javascript文件之前加载plugins
,它可能未定义,因此失败。
希望它有所帮助。