react-native-nfc-manager 3.11.1 → 3.11.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +137 -82
- package/android/build.gradle +1 -1
- package/android/src/main/java/community/revteltech/nfc/NfcManager.java +10 -0
- package/app.plugin.js +8 -0
- package/index.d.ts +1 -1
- package/package.json +2 -2
- package/CHANGELOG.md +0 -98
package/README.md
CHANGED
|
@@ -32,11 +32,30 @@ For Android, it should be properly auto-linked, so you don't need to do anything
|
|
|
32
32
|
|
|
33
33
|
Please see [here](setup.md)
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
### **Android 12**
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
We start to support Android 12 from `v3.11.1`, and you will need to update `compileSdkVersion` to `31`, otherwise the build will fail:
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
```
|
|
40
|
+
buildscript {
|
|
41
|
+
ext {
|
|
42
|
+
...
|
|
43
|
+
compileSdkVersion = 31
|
|
44
|
+
...
|
|
45
|
+
}
|
|
46
|
+
...
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
The reason for this is because Android puts new limitation on [PendingIntent](https://developer.android.com/reference/android/app/PendingIntent#FLAG_MUTABLE) which says `Starting with Build.VERSION_CODES.S, it will be required to explicitly specify the mutability of PendingIntents`
|
|
51
|
+
|
|
52
|
+
> The original issue is [here](https://github.com/revtel/react-native-nfc-manager/issues/469)
|
|
53
|
+
|
|
54
|
+
BTW, if you don't care about **Android 12** for now, you can use **`v3.11.0`** as a short term solution.
|
|
55
|
+
|
|
56
|
+
### **[Demo App] NfcOpenReWriter**
|
|
57
|
+
|
|
58
|
+
We have a full featured NFC utility app using this library available for download.
|
|
40
59
|
|
|
41
60
|
<a href='https://apps.apple.com/tw/app/nfc-rewriter/id1551243964' target='_blank'>
|
|
42
61
|
<img alt="react-native-nfc-rewriter" src="./images/Apple-App-Store-Icon.png" width="250">
|
|
@@ -50,19 +69,73 @@ We have a full featured NFC utility app available for download.
|
|
|
50
69
|
|
|
51
70
|
It also open sourced in this repo: [React Native NFC ReWriter App](https://github.com/revtel/react-native-nfc-rewriter)
|
|
52
71
|
|
|
53
|
-
##
|
|
72
|
+
## Usage
|
|
54
73
|
|
|
55
|
-
|
|
74
|
+
The simplest (and most common) use case for this library is to read `NFC` tags containing `NDEF`, which can be achieved via the following codes:
|
|
56
75
|
|
|
57
76
|
```javascript
|
|
58
|
-
import
|
|
77
|
+
import React from 'react';
|
|
78
|
+
import {View, Text, TouchableOpacity, StyleSheet} from 'react-native';
|
|
79
|
+
import NfcManager, {NfcTech} from 'react-native-nfc-manager';
|
|
59
80
|
|
|
60
81
|
// Pre-step, call this before any NFC operations
|
|
61
|
-
|
|
62
|
-
|
|
82
|
+
NfcManager.start();
|
|
83
|
+
|
|
84
|
+
function App() {
|
|
85
|
+
async function readNdef() {
|
|
86
|
+
try {
|
|
87
|
+
// register for the NFC tag with NDEF in it
|
|
88
|
+
await NfcManager.requestTechnology(NfcTech.Ndef);
|
|
89
|
+
// the resolved tag object will contain `ndefMessage` property
|
|
90
|
+
const tag = await NfcManager.getTag();
|
|
91
|
+
console.warn('Tag found', tag);
|
|
92
|
+
} catch (ex) {
|
|
93
|
+
console.warn('Oops!', ex);
|
|
94
|
+
} finally {
|
|
95
|
+
// stop the nfc scanning
|
|
96
|
+
NfcManager.cancelTechnologyRequest();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return (
|
|
101
|
+
<View style={styles.wrapper}>
|
|
102
|
+
<TouchableOpacity onPress={readNdef}>
|
|
103
|
+
<Text>Scan a Tag</Text>
|
|
104
|
+
</TouchableOpacity>
|
|
105
|
+
</View>
|
|
106
|
+
);
|
|
63
107
|
}
|
|
64
108
|
|
|
65
|
-
|
|
109
|
+
const styles = StyleSheet.create({
|
|
110
|
+
wrapper: {
|
|
111
|
+
flex: 1,
|
|
112
|
+
justifyContent: 'center',
|
|
113
|
+
alignItems: 'center',
|
|
114
|
+
},
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
export default App;
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Pleaes notice when running above codes, iOS and Android has different behaviors:
|
|
121
|
+
|
|
122
|
+
- iOS will pop up a system scanning UI
|
|
123
|
+
- Android provides **NO** system scanning UI
|
|
124
|
+
|
|
125
|
+
Regarding the system scannning UI, both platforms should be able to scan your NFC tags succesfully and print out its content.
|
|
126
|
+
|
|
127
|
+
### Old Style (registerTagEvent) To Scan NFC Tags
|
|
128
|
+
|
|
129
|
+
There's an alterntaive style to scan NFC tags through `NfcManager.registerTagEvent`, like this:
|
|
130
|
+
|
|
131
|
+
```javascript
|
|
132
|
+
import NfcManager, {NfcTech} from 'react-native-nfc-manager';
|
|
133
|
+
|
|
134
|
+
// The following function resolves to a NFC Tag object using old event listener approach.
|
|
135
|
+
// You can call it like this:
|
|
136
|
+
// `const nfcTag = await listenToNfcEventOnce()`
|
|
137
|
+
|
|
138
|
+
function listenToNfcEventOnce() {
|
|
66
139
|
const cleanUp = () => {
|
|
67
140
|
NfcManager.setEventListener(NfcEvents.DiscoverTag, null);
|
|
68
141
|
NfcManager.setEventListener(NfcEvents.SessionClosed, null);
|
|
@@ -74,8 +147,7 @@ function readNdef() {
|
|
|
74
147
|
NfcManager.setEventListener(NfcEvents.DiscoverTag, (tag) => {
|
|
75
148
|
tagFound = tag;
|
|
76
149
|
resolve(tagFound);
|
|
77
|
-
NfcManager.
|
|
78
|
-
NfcManager.unregisterTagEvent().catch(() => 0);
|
|
150
|
+
NfcManager.unregisterTagEvent();
|
|
79
151
|
});
|
|
80
152
|
|
|
81
153
|
NfcManager.setEventListener(NfcEvents.SessionClosed, () => {
|
|
@@ -90,120 +162,102 @@ function readNdef() {
|
|
|
90
162
|
}
|
|
91
163
|
```
|
|
92
164
|
|
|
93
|
-
|
|
165
|
+
As you can see, the above approach is more verbose and hard-to-read, so we recommend using `NfcManager.requestTechnology` instead of `NfcManager.registerTagEvent` in your application.
|
|
166
|
+
|
|
167
|
+
## Advanced Usage Concept
|
|
94
168
|
|
|
95
|
-
|
|
169
|
+
In higher level, there're 4 steps to use this library:
|
|
96
170
|
|
|
97
|
-
|
|
171
|
+
1. request your particular NFC technologies through `NfcManager.requestTechnology`, for example:
|
|
98
172
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
-
|
|
102
|
-
-
|
|
103
|
-
-
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
-
|
|
107
|
-
|
|
108
|
-
|
|
173
|
+
- `Ndef`
|
|
174
|
+
- `NfcA`
|
|
175
|
+
- `NfcB` (Android-only)
|
|
176
|
+
- `NfcF` (Android-only)
|
|
177
|
+
- `NfcV` (Android-only)
|
|
178
|
+
- `IsoDep`
|
|
179
|
+
- `MifareClassic` (Android-only)
|
|
180
|
+
- `MifareUltralight` (Android-only)
|
|
181
|
+
- `MifareIOS` (ios-only)
|
|
182
|
+
- `Iso15693IOS` (ios-only)
|
|
183
|
+
- `FelicaIOS` (ios-only)
|
|
184
|
+
|
|
185
|
+
2. select the proper NFC technology handler, which is implemented as getter in main `NfcManager` object, for example:
|
|
186
|
+
|
|
187
|
+
- `ndefHandler` (for `Ndef` tech)
|
|
188
|
+
- `nfcAHandler` (for `NfcA` tech)
|
|
189
|
+
- `isoDepHandler` (for `IsoDep` tech)
|
|
190
|
+
- `iso15693HandlerIOS` (for `Iso15693IOS` tech)
|
|
191
|
+
- `mifareClassicHandlerAndroid` (for `mifareClassic` tech)
|
|
192
|
+
- `mifareUltralightHandlerAndroid` (for `mifareUltralight` tech)
|
|
193
|
+
- ... and so on
|
|
194
|
+
|
|
195
|
+
3. call specific methods on the NFC technology handler (for example `NfcManager.ndefHandler.writeNdefMessage`). To view all available methods for some tech handler, check out the [API List](index.d.ts)
|
|
196
|
+
|
|
197
|
+
4. clean up your tech registration through `NfcManager.cancelTechnology`
|
|
198
|
+
|
|
199
|
+
## Advanced Usage Example: NDEF-Writing
|
|
109
200
|
|
|
110
201
|
For example, here's an example to write NDEF:
|
|
111
202
|
|
|
112
203
|
```javascript
|
|
113
204
|
import NfcManager, {NfcTech, Ndef} from 'react-native-nfc-manager';
|
|
114
205
|
|
|
115
|
-
// Pre-step, call this before any NFC operations
|
|
116
|
-
async function initNfc() {
|
|
117
|
-
await NfcManager.start();
|
|
118
|
-
}
|
|
119
|
-
|
|
120
206
|
async function writeNdef({type, value}) {
|
|
121
207
|
let result = false;
|
|
122
208
|
|
|
123
209
|
try {
|
|
124
|
-
//
|
|
125
|
-
await NfcManager.requestTechnology(NfcTech.Ndef
|
|
126
|
-
alertMessage: 'Ready to write some NDEF',
|
|
127
|
-
});
|
|
210
|
+
// STEP 1
|
|
211
|
+
await NfcManager.requestTechnology(NfcTech.Ndef);
|
|
128
212
|
|
|
129
213
|
const bytes = Ndef.encodeMessage([Ndef.textRecord('Hello NFC')]);
|
|
130
214
|
|
|
131
215
|
if (bytes) {
|
|
132
|
-
await NfcManager.ndefHandler //
|
|
133
|
-
.writeNdefMessage(bytes); //
|
|
134
|
-
|
|
135
|
-
if (Platform.OS === 'ios') {
|
|
136
|
-
await NfcManager.setAlertMessageIOS('Successfully write NDEF');
|
|
137
|
-
}
|
|
216
|
+
await NfcManager.ndefHandler // STEP 2
|
|
217
|
+
.writeNdefMessage(bytes); // STEP 3
|
|
218
|
+
result = true;
|
|
138
219
|
}
|
|
139
|
-
|
|
140
|
-
result = true;
|
|
141
220
|
} catch (ex) {
|
|
142
221
|
console.warn(ex);
|
|
222
|
+
} finally {
|
|
223
|
+
// STEP 4
|
|
224
|
+
NfcManager.cancelTechnologyRequest();
|
|
143
225
|
}
|
|
144
226
|
|
|
145
|
-
// Step 4
|
|
146
|
-
NfcManager.cancelTechnologyRequest().catch(() => 0);
|
|
147
227
|
return result;
|
|
148
228
|
}
|
|
149
229
|
```
|
|
150
230
|
|
|
151
|
-
## Advanced: Mifare Ultralight
|
|
231
|
+
## Advanced Usage Example: Mifare Ultralight
|
|
152
232
|
|
|
153
|
-
Here's
|
|
233
|
+
Here's another example to read a Mifare Ultralight tag:
|
|
154
234
|
|
|
155
235
|
```javascript
|
|
156
|
-
import NfcManager, {NfcTech} from 'react-native-nfc-manager';
|
|
157
|
-
|
|
158
|
-
// Pre-step, call this before any NFC operations
|
|
159
|
-
async function initNfc() {
|
|
160
|
-
await NfcManager.start();
|
|
161
|
-
}
|
|
162
|
-
|
|
163
236
|
async function readMifare() {
|
|
237
|
+
let mifarePages = [];
|
|
238
|
+
|
|
164
239
|
try {
|
|
165
|
-
//
|
|
240
|
+
// STEP 1
|
|
166
241
|
let reqMifare = await NfcManager.requestTechnology(
|
|
167
242
|
NfcTech.MifareUltralight,
|
|
168
243
|
);
|
|
169
|
-
if (reqMifare !== 'MifareUltralight') {
|
|
170
|
-
throw new Error(
|
|
171
|
-
'[NFC Read] [ERR] Mifare technology could not be requested',
|
|
172
|
-
);
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
// 1. Get NFC Tag information
|
|
176
|
-
const nfcTag = await NfcManager.getTag();
|
|
177
|
-
console.log('[NFC Read] [INFO] Tag: ', nfcTag);
|
|
178
244
|
|
|
179
|
-
// 2. Read pages
|
|
180
245
|
const readLength = 60;
|
|
181
|
-
let mifarePages = [];
|
|
182
246
|
const mifarePagesRead = await Promise.all(
|
|
183
247
|
[...Array(readLength).keys()].map(async (_, i) => {
|
|
184
|
-
const
|
|
185
|
-
|
|
186
|
-
pageOffset,
|
|
187
|
-
);
|
|
248
|
+
const pages = await NfcManager.mifareUltralightHandlerAndroid // STEP 2
|
|
249
|
+
.mifareUltralightReadPages(i * 4); // STEP 3
|
|
188
250
|
mifarePages.push(pages);
|
|
189
|
-
console.log(`[NFC Read] [INFO] Mifare Page: ${pageOffset}`, pages);
|
|
190
|
-
//await wait(500); // If Mifare Chip is to slow
|
|
191
251
|
}),
|
|
192
252
|
);
|
|
193
|
-
|
|
194
|
-
// 3. Success
|
|
195
|
-
console.log('[NFC Read] [INFO] Success reading Mifare');
|
|
196
|
-
|
|
197
|
-
// 4. Cleanup
|
|
198
|
-
_cleanup();
|
|
199
253
|
} catch (ex) {
|
|
200
|
-
console.warn(
|
|
201
|
-
|
|
254
|
+
console.warn(ex);
|
|
255
|
+
} finally {
|
|
256
|
+
// STEP 4
|
|
257
|
+
NfcManager.cancelTechnologyRequest();
|
|
202
258
|
}
|
|
203
|
-
}
|
|
204
259
|
|
|
205
|
-
|
|
206
|
-
NfcManager.cancelTechnologyRequest().catch(() => 0);
|
|
260
|
+
return mifarePages;
|
|
207
261
|
}
|
|
208
262
|
```
|
|
209
263
|
|
|
@@ -233,6 +287,8 @@ After installing this npm package, add the [config plugin](https://docs.expo.io/
|
|
|
233
287
|
|
|
234
288
|
Next, rebuild your app as described in the ["Adding custom native code"](https://docs.expo.io/workflow/customizing/) guide.
|
|
235
289
|
|
|
290
|
+
> Notice: This Config Plugin will ensure the minimum Android SDK version is 31.
|
|
291
|
+
|
|
236
292
|
#### Props
|
|
237
293
|
|
|
238
294
|
The plugin provides props for extra customization. Every time you change the props or plugins, you'll need to rebuild (and `prebuild`) the native app. If no extra properties are added, defaults will be used.
|
|
@@ -259,4 +315,3 @@ The plugin provides props for extra customization. Every time you change the pro
|
|
|
259
315
|
}
|
|
260
316
|
}
|
|
261
317
|
```
|
|
262
|
-
|
package/android/build.gradle
CHANGED
|
@@ -14,7 +14,7 @@ buildscript {
|
|
|
14
14
|
apply plugin: 'com.android.library'
|
|
15
15
|
|
|
16
16
|
android {
|
|
17
|
-
compileSdkVersion safeExtGet('compileSdkVersion',
|
|
17
|
+
compileSdkVersion safeExtGet('compileSdkVersion', 31)
|
|
18
18
|
defaultConfig {
|
|
19
19
|
minSdkVersion safeExtGet('minSdkVersion', 16)
|
|
20
20
|
//noinspection OldTargetApi
|
|
@@ -987,6 +987,16 @@ class NfcManager extends ReactContextBaseJavaModule implements ActivityEventList
|
|
|
987
987
|
callback.invoke(null, isForegroundEnabled);
|
|
988
988
|
}
|
|
989
989
|
|
|
990
|
+
@ReactMethod
|
|
991
|
+
public void addListener(String eventName) {
|
|
992
|
+
// Keep: Required for RN built in Event Emitter Calls.
|
|
993
|
+
}
|
|
994
|
+
|
|
995
|
+
@ReactMethod
|
|
996
|
+
public void removeListeners(Integer count) {
|
|
997
|
+
// Keep: Required for RN built in Event Emitter Calls.
|
|
998
|
+
}
|
|
999
|
+
|
|
990
1000
|
@Override
|
|
991
1001
|
public void onHostResume() {
|
|
992
1002
|
Log.d(LOG_TAG, "onResume");
|
package/app.plugin.js
CHANGED
|
@@ -85,6 +85,14 @@ function withNfc(config, props = {}) {
|
|
|
85
85
|
config = withIosNfcEntitlement(config);
|
|
86
86
|
config = withIosNfcSelectIdentifiers(config, {selectIdentifiers});
|
|
87
87
|
config = withIosNfcSystemCodes(config, {systemCodes});
|
|
88
|
+
|
|
89
|
+
// We start to support Android 12 from v3.11.1, and you will need to update compileSdkVersion to 31,
|
|
90
|
+
// otherwise the build will fail:
|
|
91
|
+
config = AndroidConfig.Version.withBuildScriptExtMinimumVersion(config, {
|
|
92
|
+
name: 'compileSdkVersion',
|
|
93
|
+
minVersion: 31,
|
|
94
|
+
});
|
|
95
|
+
|
|
88
96
|
if (nfcPermission !== false) {
|
|
89
97
|
config = withIosPermission(config, props);
|
|
90
98
|
config = AndroidConfig.Permissions.withPermissions(config, [
|
package/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-nfc-manager",
|
|
3
|
-
"version": "3.11.
|
|
3
|
+
"version": "3.11.5",
|
|
4
4
|
"description": "A NFC module for react native.",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"repository": {
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"typescript": "^4.1.3"
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"@expo/config-plugins": "^
|
|
65
|
+
"@expo/config-plugins": "^4.0.16"
|
|
66
66
|
},
|
|
67
67
|
"scripts": {
|
|
68
68
|
"lint": "eslint .",
|
package/CHANGELOG.md
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
## [3.0.2](https://github.com/whitedogg13/react-native-nfc-manager/compare/v3.0.1...v3.0.2) (2021-02-22)
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
### Features
|
|
5
|
-
|
|
6
|
-
* **android:** allow requestTechnology resolves to tags even when tech ([8b7f862](https://github.com/whitedogg13/react-native-nfc-manager/commit/8b7f8629a8e46304f2a68d62f01e745047fe01dc))
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
## [3.0.1](https://github.com/whitedogg13/react-native-nfc-manager/compare/v3.0.0...v3.0.1) (2021-02-20)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
### Bug Fixes
|
|
14
|
-
|
|
15
|
-
* [#371](https://github.com/whitedogg13/react-native-nfc-manager/issues/371) missing MIFARE_BLOCK_SIZE for mifareClassicHandlerAndroid ([b136419](https://github.com/whitedogg13/react-native-nfc-manager/commit/b1364197c80ab16542bbb823483a2079a896e169))
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
# [3.0.0](https://github.com/whitedogg13/react-native-nfc-manager/compare/v3.0.0-0...v3.0.0) (2021-02-18)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
### Features
|
|
23
|
-
|
|
24
|
-
* expose RTD_URI_PROTOCOLS ([26516a7](https://github.com/whitedogg13/react-native-nfc-manager/commit/26516a7ce8309ade21464df13a8e5c799c0e417c))
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
# [3.0.0-0](https://github.com/whitedogg13/react-native-nfc-manager/compare/v2.0.0-beta.1...v3.0.0-0) (2021-02-10)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
### Bug Fixes
|
|
32
|
-
|
|
33
|
-
* disable 18092 polling (cause iOS freeze) ([64115f8](https://github.com/whitedogg13/react-native-nfc-manager/commit/64115f80f8cd93ed5ef3b01987d6c628a5a9127b))
|
|
34
|
-
* **ios:** add polling for iso18092 ([b7984a5](https://github.com/whitedogg13/react-native-nfc-manager/commit/b7984a59ea27076d7fd34a2614592f468c80f5e1))
|
|
35
|
-
* add callback type null possible ([1371533](https://github.com/whitedogg13/react-native-nfc-manager/commit/13715334ea908b89654b42eba4ec902bcc6f4229))
|
|
36
|
-
* cancelTechnology might cause exception if there's a connected tag ([af2f1f9](https://github.com/whitedogg13/react-native-nfc-manager/commit/af2f1f92bbd7bfcf8c604db48b790289c3ca4946))
|
|
37
|
-
* cancelTechnology might cause exception if there's a connected tag ([dcb26b8](https://github.com/whitedogg13/react-native-nfc-manager/commit/dcb26b85a955ce17ae633e00f6f189a895e8adcb))
|
|
38
|
-
* getNdefMessage should use the same structure for platforms ([73859fb](https://github.com/whitedogg13/react-native-nfc-manager/commit/73859fbac8939277f1e7fc2ad13ececee8c9d4c7))
|
|
39
|
-
* import NfcManager from new location ([c95cc76](https://github.com/whitedogg13/react-native-nfc-manager/commit/c95cc76a0a3b52c751c1a0f00895cf1b34b66b28))
|
|
40
|
-
* ios isSupported ([adcc966](https://github.com/whitedogg13/react-native-nfc-manager/commit/adcc966c8ed4a565c2800fabc5e5a0cad07ea376))
|
|
41
|
-
* promise won't be rejected when calling cancelTechnologyRequest in ([64c9cbd](https://github.com/whitedogg13/react-native-nfc-manager/commit/64c9cbd05e34e975fa4744727859efd08ea610bf))
|
|
42
|
-
* reject tech request promise when native iOS cancel button is pressed ([7915b98](https://github.com/whitedogg13/react-native-nfc-manager/commit/7915b98132cf5c6f86eb96dfe242b67bef32e8a7))
|
|
43
|
-
* remove getNdefMessage's parameter declaration ([6fc257e](https://github.com/whitedogg13/react-native-nfc-manager/commit/6fc257e61e1da5600a7aac44d9a8a97a7ecc988c))
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
### Features
|
|
47
|
-
|
|
48
|
-
* extract more NfcTech handlers ([0032408](https://github.com/whitedogg13/react-native-nfc-manager/commit/0032408af21cafa3f5f92c16083f914325450524))
|
|
49
|
-
* **android:** getNdefStatus ([4cc68ce](https://github.com/whitedogg13/react-native-nfc-manager/commit/4cc68ce233d81c03760b791fc2f568fe4b8415c4))
|
|
50
|
-
* **ios:** enhance didDetectTags and add queryNDEFStatus / makeReadOnly ([32dd3be](https://github.com/whitedogg13/react-native-nfc-manager/commit/32dd3be2968abbe095ae42fd12793a9a8c0725c6))
|
|
51
|
-
* invalidateSessionWithErrorIOS ([c631110](https://github.com/whitedogg13/react-native-nfc-manager/commit/c631110b6454c08821607014a28b8dffb20fe8b0))
|
|
52
|
-
* ios 13 ndef read and write ([31a3ae6](https://github.com/whitedogg13/react-native-nfc-manager/commit/31a3ae6e141e41f3f36a102d5c2bb5ce04ba78a5))
|
|
53
|
-
* requestTechnology support multi-techs ([65e8f02](https://github.com/whitedogg13/react-native-nfc-manager/commit/65e8f02b83820cb72e65c8443a607b6dca2c8fae))
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
# [2.0.0-beta.1](https://github.com/whitedogg13/react-native-nfc-manager/compare/0.0.9...v2.0.0-beta.1) (2019-07-13)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
### Bug Fixes
|
|
61
|
-
|
|
62
|
-
* call the correct method `mifareUltralightReadPages` (notice the tailing s) ([60feee8](https://github.com/whitedogg13/react-native-nfc-manager/commit/60feee88c2d20bc18af23b3abb6d8cb22fe17e16))
|
|
63
|
-
* ios crash on registerTagEvent ([e654d93](https://github.com/whitedogg13/react-native-nfc-manager/commit/e654d9359751327284d20b3bee1139c78657dcb4))
|
|
64
|
-
* MifareClassic should also support `transceive` ([dd4a902](https://github.com/whitedogg13/react-native-nfc-manager/commit/dd4a902257a402e5d6d3eae8bd43f9d37c03928b))
|
|
65
|
-
* use non-cached ndef for getNdefMessage API ([49f8541](https://github.com/whitedogg13/react-native-nfc-manager/commit/49f85415a5bc6d0218992dc6ba2b9303cee8e3ac))
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
### Features
|
|
69
|
-
|
|
70
|
-
* mifareultralight support ([4a53a13](https://github.com/whitedogg13/react-native-nfc-manager/commit/4a53a135c594ef340927ae053dfc142ebfd0b9b6))
|
|
71
|
-
* support `getMaxTransceiveLength` and `setTimeout` ([e759c39](https://github.com/whitedogg13/react-native-nfc-manager/commit/e759c399008e9060ae6f5fe23d7b31a61b1f8037))
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
## [0.0.9](https://github.com/whitedogg13/react-native-nfc-manager/compare/0.0.8...0.0.9) (2018-01-02)
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
## [0.0.8](https://github.com/whitedogg13/react-native-nfc-manager/compare/0.0.7...0.0.8) (2017-12-09)
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
## [0.0.7](https://github.com/whitedogg13/react-native-nfc-manager/compare/0.0.6...0.0.7) (2017-12-04)
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
## [0.0.6](https://github.com/whitedogg13/react-native-nfc-manager/compare/0.0.3...0.0.6) (2017-11-17)
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
## [0.0.3](https://github.com/whitedogg13/react-native-nfc-manager/compare/0.0.2...0.0.3) (2017-09-27)
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
## 0.0.2 (2017-08-01)
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|