Um novo plugin flutter para ajudar os desenvolvedores que desejam usar hardware interno em dispositivos iOS ou Android para ler e escrever tags NFC.
O sistema ativa uma sessão de leitura conjunta que para automaticamente assim que uma etiqueta é reconhecida. Você também pode acionar o evento de parada manualmente usando uma função dedicada.
Plataforma | Etiquetas NFC suportadas |
---|---|
Android | NDEF: A, B, F, V, CÓDIGO DE BARRAS |
iOS | NDEF: NFC TIPO 1, 2, 3, 4, 5 |
Adicione ao pubspec.yaml:
dependências: flutter_nfc_reader: ^0.2.0
ou para obter o experimental:
dependências: flutter_nfc_reader:git: url: git://github.com/matteocrippa/flutter-nfc-reader.git ref: desenvolver
e então execute o shell
pacotes flutter são obtidos
última etapa importar para o projeto:
importar 'pacote:flutter_nfc_reader/flutter_nfc_reader.dart';
Adicione essas duas linhas ao seu AndroidManifest.xml
na parte superior
<uses-permission android:name="android.permission.NFC" /> <uses-featureandroid:name="android.hardware.nfc"android:required="true" />
Atribua 19 em minSdkVersion no build.gradle (Module: app)
configuração padrão {... minSdkVersão 19... }
Somente projetos Flutter baseados em Swift
são suportados.
Ativar recursos/leitura de tags de comunicação de campo próximo.
Arquivo Info.plist, adicione Privacidade - Descrição de uso de digitalização NFC com valor de string Tag NFC.
No seu Podfile adicione este código no topo
plataforma:ios, '8.0'use_frameworks!
Esta função retornará uma promessa quando ocorrer uma leitura, até o exato momento em que a sessão de leitura for aberta. A promessa retornará um modelo NfcData
, este modelo contém:
FlutterNfcReader.read()
e FlutterNfcReader.onTagDiscovered()
possuem um parâmetro opcional, apenas para iOS , chamado instruction
. Você pode passar uma String que contém informações a serem mostradas na tela modal.
id > id da tag
conteúdo > conteúdo da tag
erro > se ocorrer algum erro
FlutterNfcReader.read().then((resposta) {print(response.content); });
esta função retornará um Stream que emite NfcData
toda vez que uma tag é reconhecida. No Ios você também pode usar isso, mas o IOS sempre mostrará uma folha inferior quando quiser digitalizar uma etiqueta NFC. Portanto, você precisa lançar explicitamente FlutterNfcReader.read()
quando espera um segundo valor. Ao assinar o stream, a função de leitura é chamada pela primeira vez para você. Veja o exemplo para obter um exemplo de implementação.
FlutterNfcReader.onTagDiscovered().listen((onData) { print(onData.id); print(onData.content); });
Esta função retornará uma promessa quando ocorrer uma gravação, até o exato momento em que a sessão de leitura for aberta. A promessa retornará um modelo NfcData
, este modelo contém:
conteúdo > escrito na tag
FlutterNfcReader.write("path_prefix","tag content").then((response) {print(response.content); });
Você pode ler e escrever em uma tag NFC usando as funções acima, como segue
FlutterNfcReader.read().then((readResponse) {FlutterNfcReader.write(" ",readResponse.content).then((writeResponse) {print('writed: ${writeResponse.content}'); }); });
status> status da leitura ou gravação do ncf interrompida
FlutterNfcReader.stop().then((resposta) {print(response.status.toString()); });
Para obter melhores detalhes, consulte o aplicativo de demonstração.
Para verificar se o dispositivo suporta NFC ou não, você pode ligar FlutterNfcReader.checkNFCAvailability()
. O método retorna NFCAvailability.available
quando NFC é compatível e ativado, NFCAvailability.disabled
quando NFC está desativado (somente Android) e NFCAvailability.not_supported
quando o hardware do usuário não oferece suporte a NFC.
O IOS se comporta um pouco diferente em termos de digitalização e gravação NFC.
Os IDs das tags não são possíveis na implementação atual
cada digitalização é visível para o usuário com uma folha inferior
Para obter ajuda para começar a usar o Flutter, consulte nossa documentação on-line.
Para obter ajuda sobre a edição do código do plugin, consulte a documentação.
Por favor, dê uma olhada rápida nas diretrizes de contribuição primeiro. Se você encontrar um pacote ou projeto aqui que não é mais mantido ou não é adequado, envie uma solicitação pull para melhorar este arquivo. Obrigado a todos os colaboradores!!
para desenvolver no iOS você precisa ativar o sistema de compilação "legado" por causa deste problema de vibração:
vibração/vibração#20685