nfc: NfcTag cannot read the id and kind either platform sends, so scan fails from Rust
Maintainers usually reply within 3 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 77/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Domain
- backend, mobile-dev
Research direction
Read plugins/nfc/src/models.rs:80-87 and compare its NfcTag fields with the payloads in android/src/main/java/NfcPlugin.kt:416-419 and ios/Sources/NfcPlugin.swift:174-177. Check the Rust scan deserialization tests or entry point to see how these values are consumed. Done means responses from both platforms deserialize successfully, including a tag with no identifier.
Written by the indexing model from the issue text.
Description
tauri-plugin-nfc 2.4.2, and plugins/nfc/src/models.rs on the default branch as of 2026-11-08.
NfcTag declares id: String and kind: String (plugins/nfc/src/models.rs:80-87). Both platforms send arrays for these fields:
- Android sends
idas the identifier's bytes (ret.put("id", fromU8Array(tag.id)),android/src/main/java/NfcPlugin.kt:416) andkindas the tag's technology list (ret.put("kind", JSArray.from(tag.techList)),:419). - iOS sends
kindas a one-element list (metadata["kind"] = ["MiFare"],ios/Sources/NfcPlugin.swift:176) andidas the identifier's bytes, or nothing for FeliCa (:174,:177).
So Nfc::scan called from Rust fails to deserialise the response for every tag it reads. #2272 reported the mismatch and is closed as completed, but the struct is unchanged in 2.4.2 and on the default branch.
A shape that reads what both platforms send: id: Option<Vec<u8>> and kind: Vec<String>.
- Dominant language
- Rust
- Stars
- 1.8k
- Forks
- 637
- Avg merge
- 5d 3h
- Merged PRs (30d)
- 36
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from tauri-apps/plugins-workspace
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
tauri-apps/plugins-workspace#3770 ·
Maintainers usually reply within 3 days
-
[notification] init script fires IPC on about:blank → 500 'Origin header is not a valid URL' on Linux (WebKitGTK)May be free again A pull request for this issue was closed without being merged. Openplatform: linux plugin: notification type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
tauri-apps/plugins-workspace#3562 · 1 comment ·
Maintainers usually reply within 3 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
tauri-apps/plugins-workspace#3543 ·
Maintainers usually reply within 3 days
-
platform: ios plugin: notification type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
tauri-apps/plugins-workspace#3533 ·
Maintainers usually reply within 3 days
-
[bug][notification] Windows: init script always sets `window.Notification.permission` to `"denied"` at startupPossibly taken @Legend-Master claimed this 86 days ago. Openplatform: windows plugin: notification type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
tauri-apps/plugins-workspace#3512 · 1 comment ·
Maintainers usually reply within 3 days
All issues in tauri-apps/plugins-workspace
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
NVIDIA/spark-local-inference#268 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
datafusion-contrib/StreamFusion#653 ·
Maintainers usually reply within 1 day
-
bug CLI exec session
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
tursodatabase/turso#11734 ·
Maintainers usually reply within 1 day