Cordova NFC 插件不工作
Cordova NFC plugin not working
我正在尝试构建一个测试 cordova 应用程序来读取和写入针对 windows phones 和 android phone 的 NFC 标签。
当测试应用程序部署到设备时,在 android 上,我在尝试注册侦听器时收到一条错误消息,提示“Class 未找到”。在 windows phone 上我一无所获。
以下是我使用 cordova CLI 创建应用程序的步骤
创建了一个 cordova 应用程序
添加平台
添加了插件 (https://github.com/chariotsolutions/phonegap-nfc.git)
添加了以下代码替换 index.js 文件中的 deviceready
try {
// Read NDEF formatted NFC Tags
nfc.addNdefListener(
function (nfcEvent) {
var tag = nfcEvent.tag,
ndefMessage = tag.ndefMessage;
// dump the raw json of the message
// note: real code will need to decode
// the payload from each record
alert(JSON.stringify(ndefMessage));
// assuming the first record in the message has
// a payload that can be converted to a string.
alert(nfc.bytesToString(ndefMessage[0].payload).substring(3));
},
function () { // success callback
alert("Waiting for NDEF tag");
},
function (error) { // error callback
alert("Error adding NDEF listener " + JSON.stringify(error));
}
);
} catch (ex) {
alert(ex.message);
}
app.receivedEvent('deviceready');
}
压缩项目文件夹并上传到phone-gap-build。
获得项目构建并部署到 android 和 windows 8.1 phones(两台设备都启用了 nfc)。 Phone-gap 构建已使用 PhoneGap 3.7.0 构建应用程序
当我尝试执行应用程序时,在尝试注册侦听器时,Android 抱怨“Class 未找到”。 Windows phone 没有抛出任何错误(至少我看不到任何错误),但无法识别出示给它的任何 NFC 卡。
在 \nfcReaderB\platforms\android\src\com\chariotsolutions\nfc\plugin 下,我可以看到 android 平台
所需的 java 源文件
phone 上的 NFC 功能运行良好
代码可在 https://github.com/cmeegamarachchi/nfc
非常感谢帮助解决这个问题
问题是您使用 PhoneGap Build 但没有正确配置插件。命令行工具用于在本地构建时安装插件。对于 PhoneGap 构建,您需要在 config.xml.
中定义插件
<gap:plugin name="phonegap-nfc" source="npm" />
使用 phonegap
命令将项目上传到 PhoneGap Build 服务器。
phonegap remote build android
登录 http://build.phonegap.com 将应用程序下载到您的 phone。
代码的更新版本可用https://github.com/don/phonegap-nfc-issue-190
有关 PhoneGap Build 插件的更多信息,请参阅 http://docs.build.phonegap.com/en_US/configuring_plugins.md.html#Plugins
我正在尝试构建一个测试 cordova 应用程序来读取和写入针对 windows phones 和 android phone 的 NFC 标签。 当测试应用程序部署到设备时,在 android 上,我在尝试注册侦听器时收到一条错误消息,提示“Class 未找到”。在 windows phone 上我一无所获。
以下是我使用 cordova CLI 创建应用程序的步骤
创建了一个 cordova 应用程序
添加平台
添加了插件 (https://github.com/chariotsolutions/phonegap-nfc.git)
添加了以下代码替换 index.js 文件中的 deviceready
try {
// Read NDEF formatted NFC Tags
nfc.addNdefListener(
function (nfcEvent) {
var tag = nfcEvent.tag,
ndefMessage = tag.ndefMessage;
// dump the raw json of the message
// note: real code will need to decode
// the payload from each record
alert(JSON.stringify(ndefMessage));
// assuming the first record in the message has
// a payload that can be converted to a string.
alert(nfc.bytesToString(ndefMessage[0].payload).substring(3));
},
function () { // success callback
alert("Waiting for NDEF tag");
},
function (error) { // error callback
alert("Error adding NDEF listener " + JSON.stringify(error));
}
);
} catch (ex) {
alert(ex.message);
}
app.receivedEvent('deviceready');
}
压缩项目文件夹并上传到phone-gap-build。
获得项目构建并部署到 android 和 windows 8.1 phones(两台设备都启用了 nfc)。 Phone-gap 构建已使用 PhoneGap 3.7.0 构建应用程序
当我尝试执行应用程序时,在尝试注册侦听器时,Android 抱怨“Class 未找到”。 Windows phone 没有抛出任何错误(至少我看不到任何错误),但无法识别出示给它的任何 NFC 卡。 在 \nfcReaderB\platforms\android\src\com\chariotsolutions\nfc\plugin 下,我可以看到 android 平台
所需的 java 源文件phone 上的 NFC 功能运行良好
代码可在 https://github.com/cmeegamarachchi/nfc
非常感谢帮助解决这个问题
问题是您使用 PhoneGap Build 但没有正确配置插件。命令行工具用于在本地构建时安装插件。对于 PhoneGap 构建,您需要在 config.xml.
中定义插件<gap:plugin name="phonegap-nfc" source="npm" />
使用 phonegap
命令将项目上传到 PhoneGap Build 服务器。
phonegap remote build android
登录 http://build.phonegap.com 将应用程序下载到您的 phone。
代码的更新版本可用https://github.com/don/phonegap-nfc-issue-190
有关 PhoneGap Build 插件的更多信息,请参阅 http://docs.build.phonegap.com/en_US/configuring_plugins.md.html#Plugins