Xamarin如何使用终端设备的NFC功能传递卡号等信息给Web页面(Android)
2018-10-11 09:36
435 查看
一、前提条件,App必须具有NFC权限。
[Activity(Label = "NFCCatch",Theme = "@android:style/Theme.NoDisplay")] [IntentFilter(new[] { "android.nfc.action.TECH_DISCOVERED" })] [MetaData("android.nfc.action.TECH_DISCOVERED", Resource = "@xml/nfc_tech_filter")] public class NFCCatchActivity : Activity { NfcAdapter mNfcAdapter; PendingIntent mPendingIntent; protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); mNfcAdapter = NfcAdapter.GetDefaultAdapter(this); if (mNfcAdapter == null) { //textViewNFC.Text = "NFC is not available on this device."; } else { mPendingIntent = PendingIntent.GetActivity(this, 0, new Intent(this, typeof(NFCCatchActivity)), PendingIntentFlags.UpdateCurrent); OnNewIntent(Intent); } } protected override void OnResume() { base.OnResume(); if (mNfcAdapter != null) mNfcAdapter.EnableForegroundDispatch(this, mPendingIntent, null, null); } protected override void OnPause() { base.OnPause(); if (mNfcAdapter != null) mNfcAdapter.DisableForegroundDispatch(this); } public static string ByteArrayToString(byte[] ba) { string hex = BitConverter.ToString(ba); string rtnStr = ""; string timeN = DateTime.Now.ToString("ssmmHHddMMyyMMyyddHHmmssMMddHHmm"); string tmp1 = ""; string tmp2 = ""; } rtnStr = tmp1 + hex + tmp2; return rtnStr; } protected override void OnNewIntent(Intent intent) { base.OnNewIntent(intent); Intent = intent; Tag tag = (Tag)intent.GetParcelableExtra(NfcAdapter.ExtraTag); string cardID = ByteArrayToString(tag.GetId()); //本活动为后台运行,在获取到IC卡号之后,调用主活动中的方法处理实际业务,如反馈给H5页面。 MainActivity.instance.SetNFCData(cardID); } }NFC处理类
三、与之相关的主活动方法
public void SetNFCData(string nfcid) { //EvaluateJavascript不会刷新页面 //调用H5页面的函数,赋值给文本框或变量都可以 string script = "javascript:SetNFCID('"+ nfcid + "');"; web_view.EvaluateJavascript(script, null); }
四、由此,就可以实现在终端上感应源,获取源的信息到Web页面之中了。
相关文章推荐
- android开发基础:Intent与Bundle的使用,实现页面跳转及信息传递
- Android使用webview时出现404如何替换掉原来的错误页面
- 在页面中直接设计TreeView的节点而不使用Web.Sitemap文件在运行时出错信息
- 当创建网页时,如何把信息从一个页面传递到另一个页面
- Android中页面跳转,并传递信息
- 在页面中直接设计TreeView的节点而不使用Web.Sitemap文件在运行时出错信息
- 关于asp.net(c#),webconfig中如何定义一个字符串让所有页面共同使用?
- 【Android游戏开发二十一】Android os设备谎言分辨率的解决方案!以及简单阐述游戏引擎如何使用!
- 【Android游戏开发二十一】Android os设备谎言分辨率的解决方案!以及简单阐述游戏引擎如何使用!
- 使用MVC框架中要注意的问题(五):如何在页面和用户控件之间传递数据
- 在本地UI使用webview,在html页面用js与android通信方法。
- android源码解析 ---- Mms 短信息,如何使用系统浮动搜索框
- 如何在单击WEB控件引发页面刷新时定位页面?(不使用智能导航)
- 如何在Android平台上使用PMEM及注册Platform设备
- 如何使用OpenGL向Cg着色器传递Tangent和Binormal信息
- 如何在ASP.NET中制作Web用户自定义控件,并在aspx页面中使用它的方法和属性?
- 如何是用户在web页面使用回退以后,让用户从新登录。
- 在页面中直接设计TreeView的节点而不使用Web.Sitemap文件在运行时出错信息
- 【Android游戏开发二十一】Android os设备谎言分辨率的解决方案!以及简单阐述游戏引擎如何使用!
- 在页面中直接设计TreeView的节点而不使用Web.Sitemap文件在运行时出错信息