My NFC-тег-это Mifare Classic 1K (ISO 14443-3A) < /code>. < /p>
- на Android, он работает идеально-я способен обнаружить тег и читать
li. /> На iOS, однако, открытый обратный вызов никогда не запускается.
(E.G. Simple NFC) может читать полезную нагрузку, которую я написал. NfcManager.instance.startSession(
pollingOptions: {
NfcPollingOption.iso14443,
NfcPollingOption.iso15693,
NfcPollingOption.iso18092,
},
alertMessageIos: "",
onSessionErrorIos: (p0) {
_isNfcOn = false;
notifyListeners();
log("Mesage${p0.message}");
},
onDiscovered: (NfcTag tag) async {
log("Tag Discoverd on ios");
try {
log("Cmonnnnn");
if (!_isNfcReading) {
log("hi");
_isNfcReading = true;
num decodeValue = 0;
if (Platform.isIOS) {
log("Haiiii");
} else {
Uint8List? idBytes;
final nfcA = NfcAAndroid.from(tag);
if (nfcA != null) {
idBytes = nfcA.tag.id;
}
if (idBytes == null) {
final mc = MifareClassicAndroid.from(tag);
idBytes = mc?.tag.id;
}
final List encodedByte = idBytes!;
for (var i = 0; i < encodedByte.length; i++) {
decodeValue += encodedByte * pow(256, i);
}
log("
}
await cardMarking(
cardId: decodeValue.toString(),
isNfc: true,
);
await Future.delayed(const Duration(milliseconds: 2000));
_isNfcReading = false;
}
} catch (e) {
await NfcManager.instance.stopSession();
_isNfcOn = false;
notifyListeners();
log("Error while reading NFC CARD$e");
}
},
);
Подробнее здесь: https://stackoverflow.com/questions/796 ... in-flutter