react-native-web-serial-api 0.0.1 → 0.0.3
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 +50 -0
- package/android/src/main/java/dev/webserialapi/NativeUsbSerialModule.java +28 -1
- package/example/__tests__/connectEvents.test.tsx +81 -0
- package/example/__tests__/getPorts.test.tsx +140 -0
- package/example/src/screens/DevicesScreen.tsx +134 -23
- package/example/src/screens/TerminalScreen.tsx +8 -0
- package/lib/commonjs/NativeUsbSerial.js.map +1 -1
- package/lib/commonjs/UsbSerial.js.map +1 -1
- package/lib/commonjs/WebSerial.js +19 -4
- package/lib/commonjs/WebSerial.js.map +1 -1
- package/lib/typescript/src/NativeUsbSerial.d.ts +5 -0
- package/lib/typescript/src/NativeUsbSerial.d.ts.map +1 -1
- package/lib/typescript/src/UsbSerial.d.ts +5 -0
- package/lib/typescript/src/UsbSerial.d.ts.map +1 -1
- package/lib/typescript/src/WebSerial.d.ts +6 -0
- package/lib/typescript/src/WebSerial.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/NativeUsbSerial.ts +5 -0
- package/src/UsbSerial.ts +5 -0
- package/src/WebSerial.ts +24 -4
package/README.md
CHANGED
|
@@ -87,12 +87,62 @@ serial.addEventListener('disconnect', () => console.log('device detached'));
|
|
|
87
87
|
port.addEventListener('disconnect', () => console.log('this port went away'));
|
|
88
88
|
```
|
|
89
89
|
|
|
90
|
+
On Android, `serial` fires `connect` when a USB device is **attached** _and_ when
|
|
91
|
+
the app is **granted USB permission** for a device (the latter matters because
|
|
92
|
+
Android revokes permission on unplug, so a re-attached device only becomes
|
|
93
|
+
accessible — and shows up in `getPorts()` — once permission is re-granted).
|
|
94
|
+
Simply subscribing with `serial.addEventListener('connect', …)` is enough to
|
|
95
|
+
receive these; you don't need to call `getPorts()` first. A common pattern is to
|
|
96
|
+
re-run `getPorts()` on every `connect`/`disconnect` to keep a device list fresh.
|
|
97
|
+
|
|
90
98
|
### Listing already-permitted ports
|
|
91
99
|
|
|
92
100
|
```ts
|
|
93
101
|
const ports = await serial.getPorts();
|
|
94
102
|
```
|
|
95
103
|
|
|
104
|
+
## Permission model (Android vs. Web Serial)
|
|
105
|
+
|
|
106
|
+
There are two distinct notions of "permission" in play, and they behave
|
|
107
|
+
differently on Android than in the browser:
|
|
108
|
+
|
|
109
|
+
- **Web Serial permission grant** — `serial.requestPort()`. In the browser this
|
|
110
|
+
records a site-level grant for the chosen port; on Android it shows a native
|
|
111
|
+
picker and requests the Android USB permission for the selected device. This
|
|
112
|
+
is the mechanism for gaining access to a device you don't have access to yet,
|
|
113
|
+
and it is **unchanged** by anything below.
|
|
114
|
+
- **Native Android USB permission** — `UsbManager` permission for a device.
|
|
115
|
+
This can be granted **outside** the app entirely: when you plug a device in,
|
|
116
|
+
Android may show its own _"Open <app> to handle this USB device? / use by
|
|
117
|
+
default for this device"_ dialog, or the app may have been launched via a
|
|
118
|
+
`USB_DEVICE_ATTACHED` intent filter. In those cases the app already holds USB
|
|
119
|
+
permission without ever calling `requestPort()`.
|
|
120
|
+
|
|
121
|
+
**`serial.getPorts()` in Android/native mode** returns **every probed
|
|
122
|
+
USB-serial port the app can currently access through Android USB permission** —
|
|
123
|
+
regardless of how that permission was obtained. So a device granted via the
|
|
124
|
+
system attach dialog appears in `getPorts()` even though `requestPort()` was
|
|
125
|
+
never called for it. Probed devices the app does **not** yet have permission for
|
|
126
|
+
are excluded; use `requestPort()` to gain access to those.
|
|
127
|
+
|
|
128
|
+
```ts
|
|
129
|
+
// All devices accessible right now (natively-granted OR previously requested):
|
|
130
|
+
const ports = await serial.getPorts();
|
|
131
|
+
|
|
132
|
+
// Gain access to a device you don't have permission for yet:
|
|
133
|
+
const port = await serial.requestPort();
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
On the **web**, `getPorts()` returns the ports the user has previously granted
|
|
137
|
+
the site via `requestPort()` (the browser's persistent permission store) — the
|
|
138
|
+
native "attach dialog" notion does not apply.
|
|
139
|
+
|
|
140
|
+
> Note: this is a deliberate, Android-appropriate reading of the Web Serial
|
|
141
|
+
> spec's `getPorts()` ("ports the site has been granted access to"). On Android
|
|
142
|
+
> the unit of access is the OS-level USB permission, so a device the OS has
|
|
143
|
+
> already authorized for the app is, by definition, one the app has been
|
|
144
|
+
> granted access to.
|
|
145
|
+
|
|
96
146
|
## API
|
|
97
147
|
|
|
98
148
|
The package exposes:
|
|
@@ -93,6 +93,8 @@ public class NativeUsbSerialModule extends NativeUsbSerialSpec {
|
|
|
93
93
|
result.putInt("portNumber", portNumber);
|
|
94
94
|
result.putInt("usbVendorId", driver.getDevice().getVendorId());
|
|
95
95
|
result.putInt("usbProductId", driver.getDevice().getProductId());
|
|
96
|
+
// Permission was just granted above, so this port is accessible.
|
|
97
|
+
result.putBoolean("hasPermission", true);
|
|
96
98
|
promise.resolve(result);
|
|
97
99
|
}
|
|
98
100
|
});
|
|
@@ -109,6 +111,20 @@ public class NativeUsbSerialModule extends NativeUsbSerialSpec {
|
|
|
109
111
|
if (promise != null) {
|
|
110
112
|
promise.resolve(granted);
|
|
111
113
|
}
|
|
114
|
+
// Gaining USB permission makes the device accessible to getPorts(),
|
|
115
|
+
// so surface it like an attach: emit "connect" with the device's
|
|
116
|
+
// identifiers. This lets JS auto-refresh once permission is granted
|
|
117
|
+
// (e.g. after a re-attach, where Android revokes prior permission).
|
|
118
|
+
if (granted) {
|
|
119
|
+
UsbDevice device = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
|
|
120
|
+
if (device != null) {
|
|
121
|
+
WritableMap event = Arguments.createMap();
|
|
122
|
+
event.putInt("deviceId", device.getDeviceId());
|
|
123
|
+
event.putInt("usbVendorId", device.getVendorId());
|
|
124
|
+
event.putInt("usbProductId", device.getProductId());
|
|
125
|
+
sendEvent("connect", event);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
112
128
|
}
|
|
113
129
|
}
|
|
114
130
|
};
|
|
@@ -226,6 +242,10 @@ public class NativeUsbSerialModule extends NativeUsbSerialSpec {
|
|
|
226
242
|
WritableArray result = Arguments.createArray();
|
|
227
243
|
for (UsbSerialDriver driver : drivers) {
|
|
228
244
|
UsbDevice device = driver.getDevice();
|
|
245
|
+
// Whether the app already holds Android USB permission for this
|
|
246
|
+
// device. This is granted either via the system "use by default"
|
|
247
|
+
// attach dialog or a prior requestPermission()/requestPort() flow.
|
|
248
|
+
boolean hasPermission = usbManager.hasPermission(device);
|
|
229
249
|
List<UsbSerialPort> ports = driver.getPorts();
|
|
230
250
|
for (int i = 0; i < ports.size(); i++) {
|
|
231
251
|
WritableMap map = Arguments.createMap();
|
|
@@ -233,6 +253,7 @@ public class NativeUsbSerialModule extends NativeUsbSerialSpec {
|
|
|
233
253
|
map.putInt("portNumber", i);
|
|
234
254
|
map.putInt("usbVendorId", device.getVendorId());
|
|
235
255
|
map.putInt("usbProductId", device.getProductId());
|
|
256
|
+
map.putBoolean("hasPermission", hasPermission);
|
|
236
257
|
result.pushMap(map);
|
|
237
258
|
}
|
|
238
259
|
}
|
|
@@ -636,11 +657,17 @@ public class NativeUsbSerialModule extends NativeUsbSerialSpec {
|
|
|
636
657
|
Intent intent = new Intent(ACTION_USB_PERMISSION);
|
|
637
658
|
intent.putExtra(EXTRA_REQUEST_CODE, requestCode);
|
|
638
659
|
|
|
660
|
+
intent.setPackage(getReactApplicationContext().getPackageName());
|
|
661
|
+
|
|
662
|
+
int flags = android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S
|
|
663
|
+
? PendingIntent.FLAG_MUTABLE
|
|
664
|
+
: 0;
|
|
665
|
+
|
|
639
666
|
PendingIntent permissionIntent = PendingIntent.getBroadcast(
|
|
640
667
|
getReactApplicationContext(),
|
|
641
668
|
requestCode,
|
|
642
669
|
intent,
|
|
643
|
-
|
|
670
|
+
flags
|
|
644
671
|
);
|
|
645
672
|
usbManager.requestPermission(driver.getDevice(), permissionIntent);
|
|
646
673
|
} catch (Exception e) {
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @format
|
|
3
|
+
*
|
|
4
|
+
* Verifies that subscribing to Serial "connect"/"disconnect" wires up the
|
|
5
|
+
* native USB state listeners WITHOUT first calling getPorts()/requestPort(),
|
|
6
|
+
* and that a native event (e.g. the "connect" emitted when USB permission is
|
|
7
|
+
* granted) reaches the JS listener. This is what lets the example's device
|
|
8
|
+
* list auto-refresh on attach / detach / permission-grant.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import {afterEach, beforeEach, expect, it, jest} from '@jest/globals';
|
|
12
|
+
import {NativeModules} from 'react-native';
|
|
13
|
+
|
|
14
|
+
// Capture the JS listeners registered against the native event emitter so the
|
|
15
|
+
// test can drive them like the native side would.
|
|
16
|
+
const nativeListeners: Record<string, ((event: unknown) => void)[]> = {};
|
|
17
|
+
|
|
18
|
+
beforeEach(() => {
|
|
19
|
+
for (const k of Object.keys(nativeListeners)) {
|
|
20
|
+
delete nativeListeners[k];
|
|
21
|
+
}
|
|
22
|
+
(NativeModules as any).NativeUsbSerial = {
|
|
23
|
+
findAllDrivers: jest.fn(async () => []),
|
|
24
|
+
addListener: jest.fn(),
|
|
25
|
+
removeListeners: jest.fn(),
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
afterEach(() => {
|
|
30
|
+
// RCTDeviceEventEmitter is a global singleton across the RN copy; clear it so
|
|
31
|
+
// listeners from one test don't leak into the next.
|
|
32
|
+
const {DeviceEventEmitter} = require('react-native');
|
|
33
|
+
DeviceEventEmitter.removeAllListeners('connect');
|
|
34
|
+
DeviceEventEmitter.removeAllListeners('disconnect');
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
function freshSerial() {
|
|
38
|
+
let api: any;
|
|
39
|
+
jest.isolateModules(() => {
|
|
40
|
+
api = require('react-native-web-serial-api');
|
|
41
|
+
});
|
|
42
|
+
return new api.Serial();
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Emit a native device event the way the TurboModule does (via
|
|
46
|
+
// RCTDeviceEventEmitter, which NativeEventEmitter listens on).
|
|
47
|
+
function emitNative(event: 'connect' | 'disconnect', payload: unknown) {
|
|
48
|
+
const {DeviceEventEmitter} = require('react-native');
|
|
49
|
+
DeviceEventEmitter.emit(event, payload);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
it('addEventListener("connect") receives native events without calling getPorts() first', () => {
|
|
53
|
+
const serial = freshSerial();
|
|
54
|
+
const onConnect = jest.fn();
|
|
55
|
+
|
|
56
|
+
// Subscribe only — no getPorts()/requestPort() beforehand.
|
|
57
|
+
serial.addEventListener('connect', onConnect);
|
|
58
|
+
|
|
59
|
+
// Native fires "connect" (e.g. attach or permission-grant).
|
|
60
|
+
emitNative('connect', {
|
|
61
|
+
deviceId: 7,
|
|
62
|
+
usbVendorId: 0x0403,
|
|
63
|
+
usbProductId: 0x6001,
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
expect(onConnect).toHaveBeenCalledTimes(1);
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
it('forwards native disconnect to Serial listeners', () => {
|
|
70
|
+
const serial = freshSerial();
|
|
71
|
+
const onDisconnect = jest.fn();
|
|
72
|
+
serial.addEventListener('disconnect', onDisconnect);
|
|
73
|
+
|
|
74
|
+
emitNative('disconnect', {
|
|
75
|
+
deviceId: 7,
|
|
76
|
+
usbVendorId: 0x0403,
|
|
77
|
+
usbProductId: 0x6001,
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
expect(onDisconnect).toHaveBeenCalledTimes(1);
|
|
81
|
+
});
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @format
|
|
3
|
+
*
|
|
4
|
+
* Android/native permission-model contract for the Web Serial polyfill.
|
|
5
|
+
*
|
|
6
|
+
* getPorts() enumerates every probed USB-serial port the app can currently
|
|
7
|
+
* access through Android USB permission (PortId.hasPermission === true) —
|
|
8
|
+
* whether that permission came from requestPort() or was granted natively
|
|
9
|
+
* (e.g. the system "use by default for this device" attach dialog). Ports the
|
|
10
|
+
* app cannot access yet are excluded.
|
|
11
|
+
*
|
|
12
|
+
* requestPort() is unchanged: it shows the native picker and resolves with the
|
|
13
|
+
* chosen port; it does not consult getPorts()/hasPermission.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import {afterEach, beforeEach, describe, expect, it, jest} from '@jest/globals';
|
|
17
|
+
import {NativeModules} from 'react-native';
|
|
18
|
+
|
|
19
|
+
type FakePort = {
|
|
20
|
+
deviceId: number;
|
|
21
|
+
portNumber: number;
|
|
22
|
+
usbVendorId: number;
|
|
23
|
+
usbProductId: number;
|
|
24
|
+
hasPermission: boolean;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const findAllDrivers = jest.fn<() => Promise<FakePort[]>>();
|
|
28
|
+
const showPortPicker = jest.fn<() => Promise<FakePort>>();
|
|
29
|
+
|
|
30
|
+
// In jest, TurboModuleRegistry.get() falls back to NativeModules[name], so
|
|
31
|
+
// registering a fake here lets the real library (Serial -> UsbSerialModule)
|
|
32
|
+
// run against controlled data. addListener/removeListeners are required by
|
|
33
|
+
// NativeEventEmitter.
|
|
34
|
+
beforeEach(() => {
|
|
35
|
+
(NativeModules as any).NativeUsbSerial = {
|
|
36
|
+
findAllDrivers,
|
|
37
|
+
showPortPicker,
|
|
38
|
+
addListener: jest.fn(),
|
|
39
|
+
removeListeners: jest.fn(),
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
afterEach(() => {
|
|
44
|
+
findAllDrivers.mockReset();
|
|
45
|
+
showPortPicker.mockReset();
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
// Fresh module graph each time so the Serial singleton / known-port cache does
|
|
49
|
+
// not leak between tests.
|
|
50
|
+
function freshSerial() {
|
|
51
|
+
let api: any;
|
|
52
|
+
jest.isolateModules(() => {
|
|
53
|
+
api = require('react-native-web-serial-api');
|
|
54
|
+
});
|
|
55
|
+
return new api.Serial();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const ftdi: FakePort = {
|
|
59
|
+
deviceId: 1,
|
|
60
|
+
portNumber: 0,
|
|
61
|
+
usbVendorId: 0x0403,
|
|
62
|
+
usbProductId: 0x6001,
|
|
63
|
+
hasPermission: true,
|
|
64
|
+
};
|
|
65
|
+
const cp210xUnpermitted: FakePort = {
|
|
66
|
+
deviceId: 2,
|
|
67
|
+
portNumber: 0,
|
|
68
|
+
usbVendorId: 0x10c4,
|
|
69
|
+
usbProductId: 0xea60,
|
|
70
|
+
hasPermission: false,
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
describe('getPorts() Android permission filtering', () => {
|
|
74
|
+
it('includes a device granted natively (never via requestPort)', async () => {
|
|
75
|
+
findAllDrivers.mockResolvedValueOnce([ftdi]);
|
|
76
|
+
const ports = await freshSerial().getPorts();
|
|
77
|
+
expect(ports).toHaveLength(1);
|
|
78
|
+
expect(ports[0].getInfo()).toEqual({
|
|
79
|
+
usbVendorId: 0x0403,
|
|
80
|
+
usbProductId: 0x6001,
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
it('excludes a probed device the app has no permission for', async () => {
|
|
85
|
+
findAllDrivers.mockResolvedValueOnce([cp210xUnpermitted]);
|
|
86
|
+
const ports = await freshSerial().getPorts();
|
|
87
|
+
expect(ports).toHaveLength(0);
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
it('returns only the permitted subset when mixed', async () => {
|
|
91
|
+
findAllDrivers.mockResolvedValueOnce([ftdi, cp210xUnpermitted]);
|
|
92
|
+
const ports = await freshSerial().getPorts();
|
|
93
|
+
expect(ports).toHaveLength(1);
|
|
94
|
+
expect(ports[0].getInfo().usbVendorId).toBe(0x0403);
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
it('returns an empty list when nothing is permitted', async () => {
|
|
98
|
+
findAllDrivers.mockResolvedValueOnce([
|
|
99
|
+
cp210xUnpermitted,
|
|
100
|
+
{...cp210xUnpermitted, deviceId: 3},
|
|
101
|
+
]);
|
|
102
|
+
expect(await freshSerial().getPorts()).toHaveLength(0);
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
it('lists each port of a multi-port permitted device', async () => {
|
|
106
|
+
findAllDrivers.mockResolvedValueOnce([
|
|
107
|
+
{...ftdi, portNumber: 0},
|
|
108
|
+
{...ftdi, portNumber: 1},
|
|
109
|
+
]);
|
|
110
|
+
const ports = await freshSerial().getPorts();
|
|
111
|
+
expect(ports).toHaveLength(2);
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
it('returns the SAME SerialPort instance across repeated calls', async () => {
|
|
115
|
+
const serial = freshSerial();
|
|
116
|
+
findAllDrivers.mockResolvedValue([ftdi]);
|
|
117
|
+
const first = await serial.getPorts();
|
|
118
|
+
const second = await serial.getPorts();
|
|
119
|
+
expect(first[0]).toBe(second[0]); // cached, not re-created
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
describe('requestPort() is unaffected by the permission filter', () => {
|
|
124
|
+
it('resolves with the picked port even if getPorts would exclude it', async () => {
|
|
125
|
+
// getPorts sees nothing permitted...
|
|
126
|
+
findAllDrivers.mockResolvedValue([]);
|
|
127
|
+
// ...but the user picks a device through the native picker.
|
|
128
|
+
showPortPicker.mockResolvedValueOnce(ftdi);
|
|
129
|
+
|
|
130
|
+
const serial = freshSerial();
|
|
131
|
+
expect(await serial.getPorts()).toHaveLength(0);
|
|
132
|
+
|
|
133
|
+
const port = await serial.requestPort();
|
|
134
|
+
expect(port.getInfo()).toEqual({
|
|
135
|
+
usbVendorId: 0x0403,
|
|
136
|
+
usbProductId: 0x6001,
|
|
137
|
+
});
|
|
138
|
+
expect(showPortPicker).toHaveBeenCalledTimes(1);
|
|
139
|
+
});
|
|
140
|
+
});
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
AppState,
|
|
4
|
+
FlatList,
|
|
5
|
+
StyleSheet,
|
|
6
|
+
Text,
|
|
7
|
+
TouchableOpacity,
|
|
8
|
+
View,
|
|
9
|
+
} from 'react-native';
|
|
3
10
|
import type {SerialPort} from 'react-native-web-serial-api';
|
|
4
|
-
import {serial} from 'react-native-web-serial-api';
|
|
11
|
+
import {serial, UsbSerial} from 'react-native-web-serial-api';
|
|
5
12
|
import {AppBar} from '../components/AppBar';
|
|
6
13
|
import {colors} from '../theme';
|
|
7
14
|
|
|
@@ -9,6 +16,16 @@ type Props = {
|
|
|
9
16
|
onSelect: (port: SerialPort) => void;
|
|
10
17
|
};
|
|
11
18
|
|
|
19
|
+
// One row in the device list: a probed USB-serial port, which may or may not be
|
|
20
|
+
// accessible yet (Android USB permission).
|
|
21
|
+
type DeviceRow = {
|
|
22
|
+
deviceId: number;
|
|
23
|
+
portNumber: number;
|
|
24
|
+
usbVendorId: number;
|
|
25
|
+
usbProductId: number;
|
|
26
|
+
hasPermission: boolean;
|
|
27
|
+
};
|
|
28
|
+
|
|
12
29
|
function hex4(n: number | undefined): string {
|
|
13
30
|
return (n ?? 0).toString(16).toUpperCase().padStart(4, '0');
|
|
14
31
|
}
|
|
@@ -30,18 +47,48 @@ function chipLabel(vendorId: number | undefined): string {
|
|
|
30
47
|
}
|
|
31
48
|
}
|
|
32
49
|
|
|
50
|
+
// Native (Android) gives us every probed port plus its permission state, so we
|
|
51
|
+
// can show plugged-in-but-unpermitted devices too. On web that lower-level
|
|
52
|
+
// module is unavailable; fall back to serial.getPorts() (already permitted).
|
|
53
|
+
function nativeUsb() {
|
|
54
|
+
try {
|
|
55
|
+
return UsbSerial.getUsbSerial();
|
|
56
|
+
} catch {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
33
61
|
export function DevicesScreen({onSelect}: Props) {
|
|
34
|
-
const [
|
|
62
|
+
const [rows, setRows] = React.useState<DeviceRow[]>([]);
|
|
35
63
|
const [error, setError] = React.useState<string | null>(null);
|
|
36
64
|
|
|
37
65
|
const refresh = React.useCallback(async () => {
|
|
38
66
|
setError(null);
|
|
39
67
|
try {
|
|
68
|
+
const usb = nativeUsb();
|
|
69
|
+
if (usb) {
|
|
70
|
+
// Full enumeration incl. unpermitted devices.
|
|
71
|
+
setRows((await usb.findAllDrivers()) as DeviceRow[]);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
40
74
|
if (!serial) {
|
|
41
75
|
setError('Web Serial API is not available on this platform.');
|
|
42
76
|
return;
|
|
43
77
|
}
|
|
44
|
-
|
|
78
|
+
// Web: only already-granted ports are visible; all are permitted.
|
|
79
|
+
const ports = await serial.getPorts();
|
|
80
|
+
setRows(
|
|
81
|
+
ports.map(p => {
|
|
82
|
+
const info = p.getInfo();
|
|
83
|
+
return {
|
|
84
|
+
deviceId: -1,
|
|
85
|
+
portNumber: 0,
|
|
86
|
+
usbVendorId: info.usbVendorId ?? 0,
|
|
87
|
+
usbProductId: info.usbProductId ?? 0,
|
|
88
|
+
hasPermission: true,
|
|
89
|
+
};
|
|
90
|
+
}),
|
|
91
|
+
);
|
|
45
92
|
} catch (e: any) {
|
|
46
93
|
setError(e?.message ?? String(e));
|
|
47
94
|
}
|
|
@@ -52,8 +99,8 @@ export function DevicesScreen({onSelect}: Props) {
|
|
|
52
99
|
if (!serial) {
|
|
53
100
|
return;
|
|
54
101
|
}
|
|
55
|
-
// Auto-refresh
|
|
56
|
-
//
|
|
102
|
+
// Auto-refresh on attach, detach, AND permission-grant (the library emits
|
|
103
|
+
// "connect" for all three), so the list stays current without manual taps.
|
|
57
104
|
serial.addEventListener('connect', refresh);
|
|
58
105
|
serial.addEventListener('disconnect', refresh);
|
|
59
106
|
return () => {
|
|
@@ -62,6 +109,51 @@ export function DevicesScreen({onSelect}: Props) {
|
|
|
62
109
|
};
|
|
63
110
|
}, [refresh]);
|
|
64
111
|
|
|
112
|
+
// Resolve the SerialPort for an already-permitted row and proceed.
|
|
113
|
+
const openPermitted = React.useCallback(
|
|
114
|
+
async (row: DeviceRow) => {
|
|
115
|
+
setError(null);
|
|
116
|
+
try {
|
|
117
|
+
const ports = await serial.getPorts();
|
|
118
|
+
const match =
|
|
119
|
+
ports.find(p => {
|
|
120
|
+
const info = p.getInfo();
|
|
121
|
+
return (
|
|
122
|
+
info.usbVendorId === row.usbVendorId &&
|
|
123
|
+
info.usbProductId === row.usbProductId
|
|
124
|
+
);
|
|
125
|
+
}) ?? ports[0];
|
|
126
|
+
if (match) {
|
|
127
|
+
onSelect(match);
|
|
128
|
+
} else {
|
|
129
|
+
setError('Device is no longer available.');
|
|
130
|
+
}
|
|
131
|
+
} catch (e: any) {
|
|
132
|
+
setError(e?.message ?? String(e));
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
[onSelect],
|
|
136
|
+
);
|
|
137
|
+
|
|
138
|
+
// Tap on an unpermitted row: request Android USB permission. On grant,
|
|
139
|
+
// refresh immediately.
|
|
140
|
+
const grantPermission = React.useCallback(
|
|
141
|
+
async (row: DeviceRow) => {
|
|
142
|
+
setError(null);
|
|
143
|
+
const usb = nativeUsb();
|
|
144
|
+
if (!usb) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
try {
|
|
148
|
+
await usb.requestPermission(row.deviceId);
|
|
149
|
+
} catch (e: any) {
|
|
150
|
+
setError(e?.message ?? String(e));
|
|
151
|
+
}
|
|
152
|
+
refresh();
|
|
153
|
+
},
|
|
154
|
+
[refresh],
|
|
155
|
+
);
|
|
156
|
+
|
|
65
157
|
const requestNew = React.useCallback(async () => {
|
|
66
158
|
setError(null);
|
|
67
159
|
try {
|
|
@@ -73,6 +165,22 @@ export function DevicesScreen({onSelect}: Props) {
|
|
|
73
165
|
}
|
|
74
166
|
}, [onSelect]);
|
|
75
167
|
|
|
168
|
+
// Refresh device list when app returns to foreground (covers system dialog grants)
|
|
169
|
+
React.useEffect(() => {
|
|
170
|
+
const handleAppStateChange = (state: string) => {
|
|
171
|
+
if (state === 'active') {
|
|
172
|
+
refresh();
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
const subscription = AppState.addEventListener(
|
|
176
|
+
'change',
|
|
177
|
+
handleAppStateChange,
|
|
178
|
+
);
|
|
179
|
+
return () => {
|
|
180
|
+
subscription.remove();
|
|
181
|
+
};
|
|
182
|
+
}, [refresh]);
|
|
183
|
+
|
|
76
184
|
return (
|
|
77
185
|
<View style={styles.container}>
|
|
78
186
|
<AppBar
|
|
@@ -90,26 +198,28 @@ export function DevicesScreen({onSelect}: Props) {
|
|
|
90
198
|
{error ? <Text style={styles.error}>{error}</Text> : null}
|
|
91
199
|
|
|
92
200
|
<FlatList
|
|
93
|
-
data={
|
|
94
|
-
keyExtractor={(
|
|
201
|
+
data={rows}
|
|
202
|
+
keyExtractor={(r, i) => `${r.deviceId}:${r.portNumber}:${i}`}
|
|
95
203
|
ListEmptyComponent={
|
|
96
204
|
<Text style={styles.empty}>{'<no USB devices found>'}</Text>
|
|
97
205
|
}
|
|
98
|
-
renderItem={({item}) =>
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
206
|
+
renderItem={({item}) => (
|
|
207
|
+
<TouchableOpacity
|
|
208
|
+
style={styles.item}
|
|
209
|
+
onPress={() =>
|
|
210
|
+
item.hasPermission ? openPermitted(item) : grantPermission(item)
|
|
211
|
+
}>
|
|
212
|
+
<Text style={[styles.text1, !item.hasPermission && styles.dimmed]}>
|
|
213
|
+
{chipLabel(item.usbVendorId)}
|
|
214
|
+
{item.hasPermission ? '' : ' 🔒 tap to allow'}
|
|
215
|
+
</Text>
|
|
216
|
+
<Text style={[styles.text2, !item.hasPermission && styles.dimmed]}>
|
|
217
|
+
{`Vendor ${hex4(item.usbVendorId)}, Product ${hex4(
|
|
218
|
+
item.usbProductId,
|
|
219
|
+
)}`}
|
|
220
|
+
</Text>
|
|
221
|
+
</TouchableOpacity>
|
|
222
|
+
)}
|
|
113
223
|
/>
|
|
114
224
|
</View>
|
|
115
225
|
);
|
|
@@ -138,4 +248,5 @@ const styles = StyleSheet.create({
|
|
|
138
248
|
marginHorizontal: 20,
|
|
139
249
|
marginBottom: 4,
|
|
140
250
|
},
|
|
251
|
+
dimmed: {opacity: 0.5},
|
|
141
252
|
});
|
|
@@ -249,6 +249,14 @@ export function TerminalScreen({port, settings, onBack}: Props) {
|
|
|
249
249
|
}, [teardown]);
|
|
250
250
|
|
|
251
251
|
const connect = React.useCallback(async () => {
|
|
252
|
+
// Idempotent: ignore overlapping triggers. On re-attach the device may emit
|
|
253
|
+
// several "connect" events (USB attach + permission-grant), and port.open()
|
|
254
|
+
// itself awaits the permission dialog — so guard against re-entrancy that
|
|
255
|
+
// would otherwise cause a double-open ("port already open") and leave us
|
|
256
|
+
// stuck in the failed/closed state.
|
|
257
|
+
if (connectedRef.current !== 'False') {
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
252
260
|
connectedRef.current = 'Pending';
|
|
253
261
|
setConnected('Pending');
|
|
254
262
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeUsbSerial.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AAGA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeUsbSerial.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AAGA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GA0HeC,gCAAmB,CAACC,GAAG,CAAO,iBAAiB,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_NativeUsbSerial","_interopRequireDefault","e","__esModule","default","Parity","exports","NONE","ODD","EVEN","MARK","SPACE","DataBits","FIVE","SIX","SEVEN","EIGHT","StopBits","ONE","ONE_FIVE","TWO","DEFAULT_OPEN_OPTIONS","dataBits","stopBits","parity","UsbSerialModule","constructor","NativeUsbSerial","Error","native","emitter","NativeEventEmitter","NativeModules","findAllDrivers","showPortPicker","filter","labels","requestPermission","deviceId","open","portNumber","options","opts","baudRate","close","isOpen","write","data","timeout","startReading","stopReading","setParameters","setDTR","value","setRTS","getDTR","getRTS","getCD","getCTS","getDSR","getRI","getControlLines","getSupportedControlLines","setFlowControl","flowControl","getFlowControl","getSupportedFlowControl","setBreak","purgeHwBuffers","purgeWriteBuffers","purgeReadBuffers","getSerial","onData","listener","addListener","onError","onConnect","onDisconnect","instance","getUsbSerial"],"sourceRoot":"../../src","sources":["UsbSerial.ts"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAgD,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_NativeUsbSerial","_interopRequireDefault","e","__esModule","default","Parity","exports","NONE","ODD","EVEN","MARK","SPACE","DataBits","FIVE","SIX","SEVEN","EIGHT","StopBits","ONE","ONE_FIVE","TWO","DEFAULT_OPEN_OPTIONS","dataBits","stopBits","parity","UsbSerialModule","constructor","NativeUsbSerial","Error","native","emitter","NativeEventEmitter","NativeModules","findAllDrivers","showPortPicker","filter","labels","requestPermission","deviceId","open","portNumber","options","opts","baudRate","close","isOpen","write","data","timeout","startReading","stopReading","setParameters","setDTR","value","setRTS","getDTR","getRTS","getCD","getCTS","getDSR","getRI","getControlLines","getSupportedControlLines","setFlowControl","flowControl","getFlowControl","getSupportedFlowControl","setBreak","purgeHwBuffers","purgeWriteBuffers","purgeReadBuffers","getSerial","onData","listener","addListener","onError","onConnect","onDisconnect","instance","getUsbSerial"],"sourceRoot":"../../src","sources":["UsbSerial.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -658,6 +658,16 @@ class Serial extends _eventTarget.EventTarget {
|
|
|
658
658
|
#knownPorts = new Map();
|
|
659
659
|
#initialized = false;
|
|
660
660
|
|
|
661
|
+
/**
|
|
662
|
+
* Subscribing to "connect"/"disconnect" must wire up the native USB state
|
|
663
|
+
* listeners, so a consumer can receive attach/detach/permission events
|
|
664
|
+
* without first calling getPorts()/requestPort().
|
|
665
|
+
*/
|
|
666
|
+
addEventListener(...args) {
|
|
667
|
+
this.#ensureInit();
|
|
668
|
+
super.addEventListener(...args);
|
|
669
|
+
}
|
|
670
|
+
|
|
661
671
|
/**
|
|
662
672
|
* Lazily acquire the native USB-serial module and wire connect/disconnect
|
|
663
673
|
* listeners on first use (getPorts/requestPort) rather than at construction.
|
|
@@ -762,9 +772,12 @@ class Serial extends _eventTarget.EventTarget {
|
|
|
762
772
|
const usb = this.#ensureInit();
|
|
763
773
|
if (!usb) return []; // Native module not available
|
|
764
774
|
|
|
765
|
-
// 3.1. Let availablePorts be the sequence of available serial ports
|
|
766
|
-
//
|
|
767
|
-
//
|
|
775
|
+
// 3.1. Let availablePorts be the sequence of available serial ports the app
|
|
776
|
+
// can currently access. On Android this means every probed USB-serial port
|
|
777
|
+
// the app already holds USB permission for — whether that permission came
|
|
778
|
+
// from requestPort() or was granted natively (e.g. the system "use by
|
|
779
|
+
// default for this device" attach dialog). Ports the app cannot yet access
|
|
780
|
+
// are excluded; the user grants access for those via requestPort().
|
|
768
781
|
const portIds = await usb.findAllDrivers();
|
|
769
782
|
|
|
770
783
|
// 3.2. Let ports be the sequence of the SerialPorts representing the ports
|
|
@@ -774,8 +787,10 @@ class Serial extends _eventTarget.EventTarget {
|
|
|
774
787
|
deviceId,
|
|
775
788
|
portNumber,
|
|
776
789
|
usbVendorId,
|
|
777
|
-
usbProductId
|
|
790
|
+
usbProductId,
|
|
791
|
+
hasPermission
|
|
778
792
|
} of portIds) {
|
|
793
|
+
if (!hasPermission) continue;
|
|
779
794
|
const key = this.#portKey(deviceId, portNumber);
|
|
780
795
|
if (!this.#knownPorts.has(key)) {
|
|
781
796
|
this.#knownPorts.set(key, new SerialPort(usb, deviceId, portNumber, usbVendorId, usbProductId));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_webStreamsPolyfill","require","_domException","_eventTarget","_promise","_UsbSerial","serialPortDeviceIds","WeakMap","portInternals","kDefaultDataBits","kDefaultStopBits","kDefaultParity","kDefaultBufferSize","kDefaultFlowControl","kAcceptableDataBits","kAcceptableStopBits","kAcceptableParity","parityToNative","parity","flowControlToNative","flowControl","SerialPort","EventTarget","events","connect","disconnect","state","bufferSize","undefined","connected","readable","readFatal","writable","writeFatal","pendingClosePromise","usb","deviceId","portNumber","usbVendorId","usbProductId","outputSignals","dataTerminalReady","requestToSend","break","dataSubscription","errorSubscription","constructor","set","getVid","getPid","getPortNumber","getDeviceId","setDeviceId","id","handleDeviceLost","#handleDeviceLost","cancel","catch","abort","remove","dispatchEvent","Event","onconnect","fn","removeEventListener","addEventListener","ondisconnect","self","stream","ReadableStream","start","controller","onData","event","enqueue","Uint8Array","data","onError","error","DOMException","handleClosingReadableStream","purgeHwBuffers","ByteLengthQueuingStrategy","highWaterMark","WritableStream","write","chunk","Array","from","e","handleClosingWritableStream","message","close","getInfo","info","Object","create","open","options","baudRate","TypeError","dataBits","includes","stopBits","join","nativeOptions","setFlowControl","startReading","cancelPromise","Promise","resolve","abortPromise","createDeferredPromise","all","promise","forget","setSignals","signals","promises","push","setDTR","setRTS","setBreak","getSignals","dcd","cts","ri","dsr","getCD","getCTS","getRI","getDSR","dataCarrierDetect","clearToSend","ringIndicator","dataSetReady","#handleClosingReadableStream","#handleClosingWritableStream","exports","Serial","knownPorts","Map","initialized","ensureInit","#ensureInit","getUsbSerial","onConnect","matched","key","port","entries","internals","get","newKey","portKey","delete","onDisconnect","prefix","startsWith","#portKey","getPorts","portIds","findAllDrivers","ports","has","requestPort","filters","filter","bluetoothServiceClassId","nativeFilters","f","map","portId","showPortPicker","serial"],"sourceRoot":"../../src","sources":["WebSerial.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_webStreamsPolyfill","require","_domException","_eventTarget","_promise","_UsbSerial","serialPortDeviceIds","WeakMap","portInternals","kDefaultDataBits","kDefaultStopBits","kDefaultParity","kDefaultBufferSize","kDefaultFlowControl","kAcceptableDataBits","kAcceptableStopBits","kAcceptableParity","parityToNative","parity","flowControlToNative","flowControl","SerialPort","EventTarget","events","connect","disconnect","state","bufferSize","undefined","connected","readable","readFatal","writable","writeFatal","pendingClosePromise","usb","deviceId","portNumber","usbVendorId","usbProductId","outputSignals","dataTerminalReady","requestToSend","break","dataSubscription","errorSubscription","constructor","set","getVid","getPid","getPortNumber","getDeviceId","setDeviceId","id","handleDeviceLost","#handleDeviceLost","cancel","catch","abort","remove","dispatchEvent","Event","onconnect","fn","removeEventListener","addEventListener","ondisconnect","self","stream","ReadableStream","start","controller","onData","event","enqueue","Uint8Array","data","onError","error","DOMException","handleClosingReadableStream","purgeHwBuffers","ByteLengthQueuingStrategy","highWaterMark","WritableStream","write","chunk","Array","from","e","handleClosingWritableStream","message","close","getInfo","info","Object","create","open","options","baudRate","TypeError","dataBits","includes","stopBits","join","nativeOptions","setFlowControl","startReading","cancelPromise","Promise","resolve","abortPromise","createDeferredPromise","all","promise","forget","setSignals","signals","promises","push","setDTR","setRTS","setBreak","getSignals","dcd","cts","ri","dsr","getCD","getCTS","getRI","getDSR","dataCarrierDetect","clearToSend","ringIndicator","dataSetReady","#handleClosingReadableStream","#handleClosingWritableStream","exports","Serial","knownPorts","Map","initialized","args","ensureInit","#ensureInit","getUsbSerial","onConnect","matched","key","port","entries","internals","get","newKey","portKey","delete","onDisconnect","prefix","startsWith","#portKey","getPorts","portIds","findAllDrivers","ports","hasPermission","has","requestPort","filters","filter","bluetoothServiceClassId","nativeFilters","f","map","portId","showPortPicker","serial"],"sourceRoot":"../../src","sources":["WebSerial.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,6 +6,11 @@ export type PortId = {
|
|
|
6
6
|
portNumber: number;
|
|
7
7
|
usbVendorId: number;
|
|
8
8
|
usbProductId: number;
|
|
9
|
+
/**
|
|
10
|
+
* Whether the app currently holds Android USB permission to access this
|
|
11
|
+
* device (via the system attach dialog or a prior permission request).
|
|
12
|
+
*/
|
|
13
|
+
hasPermission: boolean;
|
|
9
14
|
};
|
|
10
15
|
export type PortPickerLabels = {
|
|
11
16
|
titleSelectPort?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeUsbSerial.d.ts","sourceRoot":"","sources":["../../../src/NativeUsbSerial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAI9C,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;AAGtE,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,SAAS,GACT,SAAS,GACT,UAAU,GACV,iBAAiB,CAAC;AAEtB,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeUsbSerial.d.ts","sourceRoot":"","sources":["../../../src/NativeUsbSerial.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,11 @@ export type PortId = {
|
|
|
14
14
|
portNumber: number;
|
|
15
15
|
usbVendorId: number;
|
|
16
16
|
usbProductId: number;
|
|
17
|
+
/**
|
|
18
|
+
* Whether the app currently holds Android USB permission to access this
|
|
19
|
+
* device (via the system attach dialog or a prior permission request).
|
|
20
|
+
*/
|
|
21
|
+
hasPermission: boolean;
|
|
17
22
|
};
|
|
18
23
|
export type DataEvent = {
|
|
19
24
|
deviceId: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UsbSerial.d.ts","sourceRoot":"","sources":["../../../src/UsbSerial.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;AACtE,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,SAAS,GACT,SAAS,GACT,UAAU,GACV,iBAAiB,CAAC;AAEtB,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"UsbSerial.d.ts","sourceRoot":"","sources":["../../../src/UsbSerial.ts"],"names":[],"mappings":"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"}
|
|
@@ -212,6 +212,12 @@ export declare class SerialPort extends EventTarget {
|
|
|
212
212
|
*/
|
|
213
213
|
export declare class Serial extends EventTarget {
|
|
214
214
|
#private;
|
|
215
|
+
/**
|
|
216
|
+
* Subscribing to "connect"/"disconnect" must wire up the native USB state
|
|
217
|
+
* listeners, so a consumer can receive attach/detach/permission events
|
|
218
|
+
* without first calling getPorts()/requestPort().
|
|
219
|
+
*/
|
|
220
|
+
addEventListener(...args: Parameters<EventTarget['addEventListener']>): void;
|
|
215
221
|
/**
|
|
216
222
|
* @see https://wicg.github.io/serial/#dom-serial-onconnect
|
|
217
223
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebSerial.d.ts","sourceRoot":"","sources":["../../../src/WebSerial.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"WebSerial.d.ts","sourceRoot":"","sources":["../../../src/WebSerial.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-web-serial-api",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "W3C Web Serial API (navigator.serial) for React Native on Android, backed by a USB-serial TurboModule (built on mik3y/usb-serial-for-android).",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"react-native": "lib/commonjs/index.js",
|
package/src/NativeUsbSerial.ts
CHANGED
|
@@ -17,6 +17,11 @@ export type PortId = {
|
|
|
17
17
|
portNumber: number;
|
|
18
18
|
usbVendorId: number;
|
|
19
19
|
usbProductId: number;
|
|
20
|
+
/**
|
|
21
|
+
* Whether the app currently holds Android USB permission to access this
|
|
22
|
+
* device (via the system attach dialog or a prior permission request).
|
|
23
|
+
*/
|
|
24
|
+
hasPermission: boolean;
|
|
20
25
|
};
|
|
21
26
|
|
|
22
27
|
export type PortPickerLabels = {
|
package/src/UsbSerial.ts
CHANGED
|
@@ -25,6 +25,11 @@ export type PortId = {
|
|
|
25
25
|
portNumber: number;
|
|
26
26
|
usbVendorId: number;
|
|
27
27
|
usbProductId: number;
|
|
28
|
+
/**
|
|
29
|
+
* Whether the app currently holds Android USB permission to access this
|
|
30
|
+
* device (via the system attach dialog or a prior permission request).
|
|
31
|
+
*/
|
|
32
|
+
hasPermission: boolean;
|
|
28
33
|
};
|
|
29
34
|
|
|
30
35
|
export type DataEvent = {
|
package/src/WebSerial.ts
CHANGED
|
@@ -864,6 +864,16 @@ export class Serial extends EventTarget {
|
|
|
864
864
|
#knownPorts: Map<string, SerialPort> = new Map();
|
|
865
865
|
#initialized = false;
|
|
866
866
|
|
|
867
|
+
/**
|
|
868
|
+
* Subscribing to "connect"/"disconnect" must wire up the native USB state
|
|
869
|
+
* listeners, so a consumer can receive attach/detach/permission events
|
|
870
|
+
* without first calling getPorts()/requestPort().
|
|
871
|
+
*/
|
|
872
|
+
addEventListener(...args: Parameters<EventTarget['addEventListener']>): void {
|
|
873
|
+
this.#ensureInit();
|
|
874
|
+
super.addEventListener(...args);
|
|
875
|
+
}
|
|
876
|
+
|
|
867
877
|
/**
|
|
868
878
|
* Lazily acquire the native USB-serial module and wire connect/disconnect
|
|
869
879
|
* listeners on first use (getPorts/requestPort) rather than at construction.
|
|
@@ -977,15 +987,25 @@ export class Serial extends EventTarget {
|
|
|
977
987
|
const usb = this.#ensureInit();
|
|
978
988
|
if (!usb) return []; // Native module not available
|
|
979
989
|
|
|
980
|
-
// 3.1. Let availablePorts be the sequence of available serial ports
|
|
981
|
-
//
|
|
982
|
-
//
|
|
990
|
+
// 3.1. Let availablePorts be the sequence of available serial ports the app
|
|
991
|
+
// can currently access. On Android this means every probed USB-serial port
|
|
992
|
+
// the app already holds USB permission for — whether that permission came
|
|
993
|
+
// from requestPort() or was granted natively (e.g. the system "use by
|
|
994
|
+
// default for this device" attach dialog). Ports the app cannot yet access
|
|
995
|
+
// are excluded; the user grants access for those via requestPort().
|
|
983
996
|
const portIds = await usb.findAllDrivers();
|
|
984
997
|
|
|
985
998
|
// 3.2. Let ports be the sequence of the SerialPorts representing the ports
|
|
986
999
|
// in availablePorts.
|
|
987
1000
|
const ports: SerialPort[] = [];
|
|
988
|
-
for (const {
|
|
1001
|
+
for (const {
|
|
1002
|
+
deviceId,
|
|
1003
|
+
portNumber,
|
|
1004
|
+
usbVendorId,
|
|
1005
|
+
usbProductId,
|
|
1006
|
+
hasPermission,
|
|
1007
|
+
} of portIds) {
|
|
1008
|
+
if (!hasPermission) continue;
|
|
989
1009
|
const key = this.#portKey(deviceId, portNumber);
|
|
990
1010
|
if (!this.#knownPorts.has(key)) {
|
|
991
1011
|
this.#knownPorts.set(
|