2017-05-30 96 views
1

我想打一个反应,本机应用程序可以读取NFC标签。我正在使用react-native-nfc,但无法正常工作。任何人都可以帮助搞清楚我做错了什么,并指出我在正确的方向吗?读取NFC标签阵营原生应用

守则index.android.js如下:

import React, { Component } from 'react'; 
import { 
    AppRegistry, 
    StyleSheet, 
    Text, 
    View, 
    ToastAndroid 
} from 'react-native'; 

import NFC, {NfcDataType, NdefRecordType} from "react-native-nfc"; 

export default class nfcTry extends Component { 

    constructor(props){ 
    super(props); 
    } 

    componentDidMount(){ 
    this.bindNfcListener(); 
    } 

    bindNfcListener(){ 
    NFC.addListener((payload)=>{ 
     alert(payload.data.id); 
    }) 
    } 

    render() { 
    return (
     <View style={styles.container}> 
     <Text style={styles.welcome}> 
      Welcome to React Native! 
     </Text> 
     </View> 
    ); 
    } 
} 

的AndroidManifest.xml守则如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.nfctry" 
    android:versionCode="1" 
    android:versionName="1.0"> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> 
    <uses-permission android:name="android.permission.NFC" /> 

    <uses-sdk 
     android:minSdkVersion="16" 
     android:targetSdkVersion="22" /> 

    <application 
     android:name=".MainApplication" 
     android:allowBackup="true" 
     android:label="@string/app_name" 
     android:icon="@mipmap/ic_launcher" 
     android:theme="@style/AppTheme"> 
     <activity 
     android:name=".MainActivity" 
     android:launchMode="singleTask" 
     android:label="@string/app_name" 
     android:configChanges="keyboard|keyboardHidden|orientation|screenSize" 
     android:windowSoftInputMode="adjustResize"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

     <intent-filter> 
      <action android:name="android.nfc.action.NDEF_DISCOVERED"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
     </intent-filter> 

     <intent-filter> 
      <action android:name="android.nfc.action.TECH_DISCOVERED"/> 
     </intent-filter> 

     <meta-data android:name="android.nfc.action.TECH_DISCOVERED" android:resource="@xml/nfc_tech_filter" /> 

     </activity> 
     <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" /> 
    </application> 

</manifest> 
+0

当你说“我用的反应本地-NFC,但不能得到它的工作”,你有任何错误消息? “react-native-nfc”的例子呢,你可以使它工作吗? – OlivierM

+0

@OlivierM该应用程序被安装在我的平板电脑和正常工作,我没有错误,但是当我尝试从卡什么也没有发生读取NFC标签。我试着用'react-native-nfc'给出的例子,这是同样的事情。 –

+0

您是否使用第三方应用程序确认平板电脑上的NFC工作? – OlivierM

回答

0

是您正在使用的标签/卡使用NDEF消息进行格式化(也可在第二个选项卡上的TagInfo中显示)。 当您使用标签/卡片接近平板电脑时是否发生任何事情(例如播放声音)?

+0

我越来越检测到标签的声音是因为设备nfc,但然后应用程序打开后,下面的代码是不给任何种类的指示,我已经把一些敬酒没有得到显示。 –

0

最后我能够使它的目标! 在这个时间点,您的总代码丢失,另一个npm包名为nfc-ndef-react-native

链接下面的包与您现有的代码,你可能会面临一些问题与NDK,解决这些问题呢!终于你能够做到了!我正在根据需要运行此应用程序。

+0

适合你这些网站的例子? – CrsCaballero