dictionary NFCMessage { | |
sequence<NFCRecord> records; | |
USVString url; | |
}; | |
typedef (DOMString or unrestricted double or ArrayBuffer or Dictionary) NFCRecordData; | |
dictionary NFCRecord { | |
NFCRecordType recordType; | |
USVString mediaType; | |
NFCRecordData data; | |
}; | |
enum NFCRecordType { | |
"empty", | |
"text", | |
"url", | |
"json", | |
"opaque" | |
}; | |
partial interface Navigator { | |
readonly attribute NFC nfc; | |
}; | |
typedef (DOMString or ArrayBuffer or NFCMessage) NFCPushMessage; | |
interface NFC { | |
Promise<void> push(NFCPushMessage message, optional NFCPushOptions options); | |
Promise<void> cancelPush(optional NFCPushTarget target="any"); | |
Promise<long> watch(MessageCallback callback, optional NFCWatchOptions options); | |
Promise<void> cancelWatch(optional long id); | |
}; | |
callback MessageCallback = void (NFCMessage message); | |
dictionary NFCPushOptions { | |
NFCPushTarget target = "any"; | |
unrestricted double timeout = Infinity; | |
boolean ignoreRead = true; | |
}; | |
enum NFCPushTarget { | |
"tag", | |
"peer", | |
"any" | |
}; | |
dictionary NFCWatchOptions { | |
USVString url = ""; | |
NFCRecordType? recordType; | |
USVString mediaType = ""; | |
NFCWatchMode mode = "web-nfc-only"; | |
}; | |
enum NFCWatchMode { | |
"web-nfc-only", | |
"any" | |
}; |