一:介绍下futter的一些NFC插件

1:nfc_in_flutter
这一个插件也是我第一次需要用到NFC功能时使用的。

优点:集成快,后续扫描基本没Bug
缺点:写法较累赘。最主要的是只能扫描标准的NDEF格式的卡片。而的NFC-B 这种的就无法扫描了。所以有很大的局限性。

2:nfc_manager
这款插件好评最多。我也在ios上尝试集成过。但扫描出来的 tag 的 “identity”是一个字节数组。我尝试解码过,没有解出来,好像需要根据NFC的格式来进行专门的解密的吧。有懂的小伙伴可以私聊下我,共同学习下~

3:flutter_nfc_reader 和flutter_nfc
只在ios上尝试过,扫描出来的 nfcId 和其他内容都是空,所以就没用这两款

4:flutter_nfc_kit: ^2.2.0
我目前在使用这款插件,比较好用,可以扫描的NFC的格式较多,基本可以满足用户需求,下面介绍的也是这款插件的使用方法

上面的版本如果不适合您的项目的话可以上官方网址搜索下flutter_nfc_kit

二:在Android上使用前需要进行的步骤

需要在项目路径的android/app/src/main/AndroidMainfest.xml 里面写入

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

三:在ios上使用前需要进行的步骤

1:在项目的根路径下面打开 ios/Runner/Info.plist 文件
在里面填写(注意对齐!)

 <key>NFCReaderUsageDescription</key><string>App需要您的同意,才能使用NFC功能</string><key>com.apple.developer.nfc.readersession.felica.systemcodes</key><array><string>8005</string><string>8008</string><string>0003</string><string>fe00</string><string>90b7</string><string>927a</string><string>86a7</string></array><key>com.apple.developer.nfc.readersession.formats</key><array><string>NDEF</string><string>TAG</string></array><key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key><array><string>A0000002471001</string><string>A000000003101001</string><string>A000000003101002</string><string>A0000000041010</string><string>A0000000042010</string><string>A0000000044010</string><string>44464D46412E44466172653234313031</string><string>D2760000850100</string><string>D2760000850101</string><string>00000000000000</string></array>

2:打开Xcode,找到 General 右边的 Singing & Capablilities,之后点击左上角的 Capability。在里面找到 Nera Field C communication Tag Reading ,双击它,就添加完成了。

四:代码部分,注意Android和ios系统需要区别判断来写

注意:ios端使用的话会自动跳出扫码页面,是不要我们编写的。Android端的话需要编写个页面或弹窗来进行提示过度下。有需要的小伙伴可以私聊我,在这里就不写入了。

1:编写nfc_util.dart

import 'dart:convert';
import 'dart:io';
import 'package:flutter_nfc_kit/flutter_nfc_kit.dart';class NFCUtil {static Future getNFCId() async {//判断权限var availability = await FlutterNfcKit.nfcAvailability;if (availability != NFCAvailability.available) {///主要Android进行提示,这里会报错,根据自身项目的提示方法来替换//Toast.showToast('当前设备不支持NFC');}//timeout:只对android有效,ios的控制不了//iosAlertMessage是ios扫码界面的提示,可设置为空。var tag = await FlutterNfcKit.poll(timeout: Duration(seconds: 60), iosAlertMessage: "请将NFC卡片靠近手机背面");/**在此判断的主要原因是:android平台最好不要使用 FlutterNfcKit.finish函数*因为使用该函数的话每次扫描都会跳出空标签页面,所以该函数只在ios端使用即可*/if(Platform.isIOS){if (null != tag) {await FlutterNfcKit.finish(iosAlertMessage: "扫描成功");} else {await FlutterNfcKit.finish(iosErrorMessage: "扫描失败");}}print(jsonEncode(tag));//返回扫描得到的idreturn tag.id;}
}

2:如何使用NFCUtil

NFCUtil.getNFCId().then((id) {if (id != null && id != '') {//在这里编写 业务} else {//只是个提示,可根据您个人项目来进行替换Toast.showError('扫描失败,ID为空!');}});

flutter nfc相关推荐

  1. 【Flutter】利用nfc_manager 读取NFC交通卡信息

    一,问题 最新,项目对Flutter 读取公交卡内容进行了调查,在pub上看到nfc_manager 反馈还不错,就下了代码使用.因为是对日项目,所以主要是针对日系的Felica的读取,用了一个下午的 ...

  2. 在flutter中使用NFC(超全)

    自建博客文章链接:https://www.heblogs.cn/articleDetails/644d1ea91978a16ab3471075 文章前景:目前公司主要的业务方向是sass平台,我们的a ...

  3. 【Flutter】手机应用类型 ( Android | iOS | Native 应用 | Web 应用 | Hybrid 应用 | ReactNative 应用 | Flutter 应用 )

    文章目录 一.Native 应用 二.Web 应用 三.Hybrid 应用 四.ReactNative 应用 五.Flutter 应用 一.Native 应用 原生应用开发 : Android / i ...

  4. 一个很棒的Flutter学习资源列表

    目录 文章 一开始 HOWTO文档 网站/博客 高级 视频 组件 演示 UI 材料设计 图片 地图 图表 导航 验证 文字和富文本 分析.流量统计 自动构建 风格样式 媒体 音频 视频 语音 存储 获 ...

  5. flutter 资料整理

    Flutter是Google出品的一款用于开发高性能.高保真.跨平台App(Android iOS)的SDK. 目录 文章 一开始 HOWTO文档 网站/博客 高级 视频 组件 演示 UI 材料设计 ...

  6. 决胜 Flutter 系列之第一章:熟悉战场

    欢迎参加"决胜 Flutter" 实训课程,这里是你此次实训之旅的起点.本章将带您快速了解移动开发的现状,然后向您介绍 Flutter 的发展历史以及优势特点,最后一起动手,搭建高 ...

  7. 「首席架构师推荐」最棒的的Flutter库,工具,教程,文章列表

    Flutter是一款移动应用SDK,可通过单一代码库为iOS和Android构建高性能,高保真的应用. 内容 文章 视频 组件 导航 模板 插件 构架 开源应用程序 WEB 工具 社区 文章 介绍 G ...

  8. Awesome Flutter筛选与实用度分析

    简介 本文大部分内容翻译自 Github 中 Awesome Flutter 项目,该项目集合了当下学习 Flutter 的优秀文章及开源项目,然而该项目对于所陈列的项目只有简单的分类,并没有做简要的 ...

  9. SwiftUI Core NFC 基础教程

    Core NFC 检测NFC标签,读取包含NDEF数据的消息,并将数据保存到可写标签. 使用教程 您的应用可以读取标签,以向用户提供有关其物理环境和其中的真实对象的更多信息. 使用核心NFC,您可以读 ...

最新文章

  1. python内置函数调用_Python中函数的基本定义与调用及内置函数详解
  2. 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(六) MiniGUI 提供的非 GUI/GDI 接口...
  3. 在SQL Server上该做的和不该做的
  4. Boost:iostream客户端的测试程序
  5. android学习之旅-学习计划
  6. 第一章:The Missing Code Library--2.合法化输入
  7. Apache 更改80端口
  8. 【Java入门提高篇】Day26 Java容器类详解(八)HashSet源码分析
  9. vmware vSAN 入门
  10. 30款前端特效源码分享
  11. iOS App集成Apple Pay 编程指南
  12. 从COD着陆页设计优化谈起
  13. 基于JavaWeb的订餐管理系统的设计与实现
  14. 厂级监控系统镜像服务器,厂级监控信息系统(SIS).PDF
  15. 紫外线消毒器的催化反应工艺指南
  16. scikit-learn笔记
  17. win10环境下基于OpenVINO部署yolov5模型
  18. WPS:将彻底关闭广告
  19. 中国 98 家央企及下属 409 家上市企业全名单( 2023 最新版)
  20. Shardingsphere的分库分表+读写分离+分页条件查询

热门文章

  1. 芝诺数解|「十」渝味之城,愉味无穷——重庆十一旅游数据分析报告
  2. python pip怎么安装包_python怎么用pip安装包
  3. IPC机制(三)--->Android中的几种IPC方式
  4. linux logger 监控,shell-logger的使用
  5. 最近的事情比较多,很久没有回来了,这次终于又回来了。。。。。。
  6. Halcon 算子 skeleton
  7. PXI/PXIe控制器 4Link架构 16GB带宽 兼容主流PXIe机箱 设计文件
  8. OPPO K7X手机刷root 获取magisk 强解锁BL coloros11教程
  9. 微信小程序 - 新闻动态 / 公告上下滚动列表(上下循环滚动,无限上下自动滚动列表)
  10. 基于kubernetes平台的CICD持续集成