[英]How to get NFC tag id on Nexus using HTML5
我正在構建一個讀取NFC標簽的HTML5應用程序。 它在台式機上運行,我使用閱讀器讀取NFC標簽。 我想在Nexus上運行此應用並從Nexus讀取NFC。...有人知道如何使Nexus讀取NFC標簽並將標簽ID放在文本框中嗎?
我們在Android和iOS SDK中使用此方法。 對於Android,您想要設置一個簡單的應用程序,該應用程序注冊NFC意圖ACTION_TAG_DISCOVERED
,然后將tag ID
推入變量。 然后,您可以使用簡單的javascript注入方法將這些數據獲取到Webview中。 這是一個示例,從HTML頁面(index.html)開始:
<!doctype html>
<html>
<head>
</head>
<body>
<center>
<input class="input-text" name="UUID" id="UUID" value="empty">
</center>
</body>
</html>
Android版式(activity_main.xml):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:layout_gravity="center"
android:orientation="vertical">
<WebView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight=".5"
android:id="@+id/webview" ></WebView>
</LinearLayout>
和Java代碼(MainAcitivity.java):
package com.authorwjf.javascriptinjection;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.EditText;
import android.annotation.SuppressLint;
import android.app.Activity;
public class MainActivity extends Activity implements OnClickListener {
private static final String URL = "file:///android_asset/index.html";
private static final String tagUUID = "empty";
private WebView mWebView;
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebChromeClient(new WebChromeClient());
mWebView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
String javascript="javascript: document.getElementById('UUID').value="+tagUUID+";";
view.loadUrl(javascript);
}
});
IntentFilter mFilter = new IntentFilter(ACTION_TAG_DISCOVERED);
BroadcastReceiver mScanReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String s = intent.getAction();
if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(s)) {
Tag tag = (Tag) intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
byte[] tagIDBytes = tag.getId();
String tagId = bytesToHexString(tagIDBytes);
MainActivity.this.PostToWebview(tagId);
}
}
};
registerReceiver(mScanReceiver, mFilter);
refreshWebView();
}
public void PostToWebview(final String tagId) {
tagUUID = tagId;
refreshWebView();
}
private void refreshWebView() {
mWebView.loadUrl(URL);
}
}
我在編輯器中組裝了最后一塊而不進行測試,因此可能會有一些語法錯誤。 總體而言,它應該為您提供一切所需的一切,以使它們正常工作。 也可以使用移動NFC閱讀器在iOS上執行此操作。 它涉及更多,但是我們可以幫助您前進 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.