使用Flutter进行NFC读写

4

我想尝试使用Flutter,但目前只找到了NFC读卡器插件。我还需要另外两个东西。

  • 在NFC标签出现时做出反应,然后可能使用NFC插件进行读取

  • 写入NFC标签,可能需要使用平台通道

我只需要确认在Flutter中是否可行,并需要正确的指引,然后才能离开普通的Android。


1
刚刚发现了这个仓库 https://github.com/akeblom/flutter-nfc-reader,但它并不完全可用... - rickdroio
3个回答

5

或许我来晚了一些,但是因为我刚刚解决了一个非常类似的问题,所以我想在这个话题上发表一下我的看法:

使用Flutter读写NFC是可能的。正如之前提到的那样,您需要通过平台通道将命令交给本地系统,并且如果您想将数据读取到Flutter应用程序中,则需要使用事件通道来完成此任务。

最好的方法是使用可用的插件来处理此操作,但是我无法使你提到过的这个插件与我的Flutter应用程序一起工作(特别是因为我尝试了IOS和Swift)。

以下是一些资源,从中我组合出了我的系统:

  • 通过平台通道实现从Flutter到本地系统的通信:这个链接是Flutter官方页面,有趣的是它只描述了从Flutter到本地系统的通信方式,但没有涉及另一种方式,您需要:
  • 通过事件通道实现从本地系统到Flutter应用程序的通信:(是的,您需要不同的通道来进行回传到Flutter应用程序)。这个示例仅适用于Android。对于Swift,我能找到的只有这个似乎有点老的资源
  • IOS NFC教程:只要您有一个开发者帐户,这实际上非常简单。可以在这里找到良好的极简教程。
  • Android NFC教程:实际上更简单,因为NFC在Android上已经很长时间建立。我喜欢这个

0

我认为你想要做的事情肯定是可行的,但正如你在问题中提到的,你将不得不使用平台通道。

平台通道可以双向传输;你应该能够设置它,使得你的主活动接收NFC标签存在意图,然后你从Android发送一个方法调用到Dart。或者你可以从Dart开始监听,然后当意图被接收时返回该方法。

写入NFC大致相同,你使用方法通道进行调用。

根据你所做的事情,你可能需要考虑将NFC功能拆分成插件,即使你最终不发布该插件。


1
分享另一个Flutter插件:https://github.com/okadan/flutter_nfc_manager/ - xds2000

0

通过这个从flutter-nfc-reader分支出来的项目,你现在可以从安卓设备读写nfc标签,并且从iOS设备读取它们 https://github.com/semakers/flutter-nfc-reader

要安装,请将以下依赖项添加到您的pubspec.yaml文件中

 dependencies:
  flutter_nfc_reader:
    git:
      url: git: //github.com/semakers/flutter-nfc-reader.git
      ref: master

在该仓库的Readme.md文件中包含了安装和使用说明。

祝您愉快地编写NFC标签!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接