@de./sdk-rn 1.0.17 → 1.0.19
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.
|
@@ -19,6 +19,7 @@ export interface MSIProps extends MapOptions {
|
|
|
19
19
|
}
|
|
20
20
|
export interface MSIRef extends MSIInterface {
|
|
21
21
|
isReady: () => boolean;
|
|
22
|
+
retry: () => void;
|
|
22
23
|
}
|
|
23
24
|
declare const _default: React.ForwardRefExoticComponent<MSIProps & React.RefAttributes<MSIRef>>;
|
|
24
25
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/allend/MSI/index.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAuE,MAAM,OAAO,CAAA;AAI3F,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,OAAO,MAAM,WAAW,CAAA;AAC/B,OAAO,OAAO,EAAE,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;CACjB;AA4CD,MAAM,WAAW,QAAS,SAAQ,UAAU;IAC1C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAA;CACvC;AAED,MAAM,WAAW,MAAO,SAAQ,YAAY;IAC1C,OAAO,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/allend/MSI/index.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAuE,MAAM,OAAO,CAAA;AAI3F,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,OAAO,MAAM,WAAW,CAAA;AAC/B,OAAO,OAAO,EAAE,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;CACjB;AA4CD,MAAM,WAAW,QAAS,SAAQ,UAAU;IAC1C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAA;CACvC;AAED,MAAM,WAAW,MAAO,SAAQ,YAAY;IAC1C,OAAO,EAAE,MAAM,OAAO,CAAA;IACtB,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;;AAGD,wBA0QE;AAmCF,qBAAa,QAAQ;IACnB,OAAO,CAAC,OAAO,CAAY;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAA;gBAEhC,OAAO,EAAE,UAAU;IAOhC,MAAM,CAAC,CAAC,EAAG,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAItC,IAAI,CAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IAMtC,EAAE,CAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IAIpC,UAAU,IAAI,UAAU;IAIxB,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC;IAO7B,OAAO,IAAI,OAAO;CAGnB"}
|
package/dist/allend/MSI/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* React Native SDK for MSI (Map Service Interface)
|
|
4
4
|
*/
|
|
5
5
|
import React, { useRef, useEffect, useState, forwardRef, useImperativeHandle } from 'react';
|
|
6
|
-
import { View, StyleSheet, AppState } from 'react-native';
|
|
6
|
+
import { View, Text, StyleSheet, AppState } from 'react-native';
|
|
7
7
|
import { WebView } from 'react-native-webview';
|
|
8
8
|
import WIO from 'webview.io';
|
|
9
9
|
import Controls from './Controls';
|
|
@@ -57,92 +57,193 @@ export default forwardRef((props, ref) => {
|
|
|
57
57
|
const handlesRef = useRef(null);
|
|
58
58
|
const pluginsRef = useRef(null);
|
|
59
59
|
const [isConnected, setIsConnected] = useState(false);
|
|
60
|
+
const [isReady, setIsReady] = useState(false);
|
|
60
61
|
const [hasError, setHasError] = useState(false);
|
|
62
|
+
const [connectionAttempts, setConnectionAttempts] = useState(0);
|
|
63
|
+
const isInitializedRef = useRef(false);
|
|
61
64
|
// Expose API via ref
|
|
62
65
|
useImperativeHandle(ref, () => ({
|
|
63
66
|
controls: controlsRef.current,
|
|
64
67
|
handles: handlesRef.current,
|
|
65
68
|
plugins: pluginsRef.current,
|
|
66
|
-
isReady: () => isConnected
|
|
69
|
+
isReady: () => isConnected && isReady,
|
|
70
|
+
retry: () => {
|
|
71
|
+
setHasError(false);
|
|
72
|
+
setConnectionAttempts(0);
|
|
73
|
+
initializeConnection();
|
|
74
|
+
}
|
|
67
75
|
}));
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
76
|
+
const initializeAPI = () => {
|
|
77
|
+
var _a;
|
|
78
|
+
if (isInitializedRef.current || !wioRef.current || !isConnected || !isReady)
|
|
79
|
+
return;
|
|
80
|
+
console.log('[MSI] Initializing API components');
|
|
81
|
+
const controls = new Controls(wioRef.current, props), handles = new Handles(wioRef.current, controls, props), plugins = new Plugins(wioRef.current, handles, controls, props);
|
|
82
|
+
plugins.mount(REGISTERED_PLUGINS);
|
|
83
|
+
controlsRef.current = controls;
|
|
84
|
+
handlesRef.current = handles;
|
|
85
|
+
pluginsRef.current = plugins;
|
|
86
|
+
isInitializedRef.current = true;
|
|
87
|
+
console.log('[MSI] API initialized successfully');
|
|
88
|
+
(_a = props.onLoaded) === null || _a === void 0 ? void 0 : _a.call(props, {
|
|
89
|
+
controls,
|
|
90
|
+
handles,
|
|
91
|
+
plugins
|
|
74
92
|
});
|
|
93
|
+
};
|
|
94
|
+
const performBinding = async () => {
|
|
95
|
+
var _a;
|
|
96
|
+
if (!wioRef.current)
|
|
97
|
+
return;
|
|
98
|
+
console.log('[MSI] Performing bind with access token');
|
|
99
|
+
try {
|
|
100
|
+
// Use emitAsync for better error handling
|
|
101
|
+
await wioRef.current.emitAsync('bind', Object.assign(Object.assign({}, props), { origin: 'react-native' }), 10000); // 10 second timeout for binding
|
|
102
|
+
console.log('[MSI] Bind successful');
|
|
103
|
+
setIsConnected(true);
|
|
104
|
+
setHasError(false);
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
console.error('[MSI] Bind failed:', error);
|
|
108
|
+
const errorObj = error instanceof Error ? error : new Error(String(error));
|
|
109
|
+
setHasError(true);
|
|
110
|
+
(_a = props.onError) === null || _a === void 0 ? void 0 : _a.call(props, errorObj);
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
const initializeConnection = () => {
|
|
114
|
+
if (!wioRef.current || !webViewRef.current)
|
|
115
|
+
return;
|
|
75
116
|
const baseURL = props.env === 'dev'
|
|
76
117
|
? 'http://localhost:4800'
|
|
77
118
|
: 'https://msi.dedot.io';
|
|
119
|
+
console.log('[MSI] Initiating WIO connection to', baseURL);
|
|
78
120
|
wioRef.current.initiate(webViewRef, baseURL);
|
|
121
|
+
};
|
|
122
|
+
useEffect(() => {
|
|
123
|
+
// Initialize WIO bridge
|
|
124
|
+
console.log('[MSI] Creating WIO instance');
|
|
125
|
+
wioRef.current = new WIO({
|
|
126
|
+
type: 'WEBVIEW',
|
|
127
|
+
debug: props.env === 'dev',
|
|
128
|
+
connectionTimeout: 15000, // 15 seconds for initial connection
|
|
129
|
+
connectionPingInterval: 2000,
|
|
130
|
+
maxConnectionAttempts: 5,
|
|
131
|
+
autoReconnect: true,
|
|
132
|
+
heartbeatInterval: 30000
|
|
133
|
+
});
|
|
79
134
|
// Setup event listeners
|
|
80
|
-
console.log('
|
|
135
|
+
console.log('[MSI] Setting up WIO event listeners');
|
|
81
136
|
wioRef.current
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
var _a;
|
|
89
|
-
console.log('WIO bind from MSI component', error);
|
|
90
|
-
if (error) {
|
|
91
|
-
const errorObj = new Error(typeof error === 'string' ? error : 'Connection failed');
|
|
92
|
-
setHasError(true);
|
|
93
|
-
(_a = props.onError) === null || _a === void 0 ? void 0 : _a.call(props, errorObj);
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
setIsConnected(true);
|
|
97
|
-
});
|
|
137
|
+
// Handle successful connection
|
|
138
|
+
.on('connect', async () => {
|
|
139
|
+
console.log('[MSI] WIO bridge connected');
|
|
140
|
+
setConnectionAttempts(0);
|
|
141
|
+
// Perform binding after connection
|
|
142
|
+
await performBinding();
|
|
98
143
|
})
|
|
99
|
-
|
|
144
|
+
// Handle connection timeout
|
|
145
|
+
.on('connect_timeout', ({ attempts }) => {
|
|
100
146
|
var _a;
|
|
101
|
-
console.
|
|
102
|
-
|
|
147
|
+
console.error('[MSI] Connection timeout after', attempts, 'attempts');
|
|
148
|
+
setConnectionAttempts(attempts);
|
|
103
149
|
setHasError(true);
|
|
104
|
-
(_a = props.onError) === null || _a === void 0 ? void 0 : _a.call(props,
|
|
150
|
+
(_a = props.onError) === null || _a === void 0 ? void 0 : _a.call(props, new Error(`Failed to connect after ${attempts} attempts`));
|
|
151
|
+
})
|
|
152
|
+
// Handle reconnection attempts
|
|
153
|
+
.on('reconnecting', ({ attempt, delay }) => {
|
|
154
|
+
console.log(`[MSI] Reconnecting (attempt ${attempt}, delay ${delay}ms)`);
|
|
155
|
+
setIsConnected(false);
|
|
156
|
+
setIsReady(false);
|
|
105
157
|
})
|
|
158
|
+
// Handle reconnection failure
|
|
159
|
+
.on('reconnection_failed', ({ attempts }) => {
|
|
160
|
+
var _a;
|
|
161
|
+
console.error('[MSI] Reconnection failed after', attempts, 'attempts');
|
|
162
|
+
setHasError(true);
|
|
163
|
+
(_a = props.onError) === null || _a === void 0 ? void 0 : _a.call(props, new Error(`Reconnection failed after ${attempts} attempts`));
|
|
164
|
+
})
|
|
165
|
+
// Handle disconnection
|
|
166
|
+
.on('disconnect', ({ reason }) => {
|
|
167
|
+
console.log('[MSI] Disconnected:', reason);
|
|
168
|
+
setIsConnected(false);
|
|
169
|
+
setIsReady(false);
|
|
170
|
+
})
|
|
171
|
+
// Handle WebView ready event
|
|
106
172
|
.on('ready', () => {
|
|
107
|
-
var _a
|
|
108
|
-
console.log('MSI ready'
|
|
173
|
+
var _a;
|
|
174
|
+
console.log('[MSI] WebView content ready');
|
|
175
|
+
setIsReady(true);
|
|
109
176
|
(_a = props.onReady) === null || _a === void 0 ? void 0 : _a.call(props);
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
177
|
+
})
|
|
178
|
+
// Handle errors
|
|
179
|
+
.on('error', (error) => {
|
|
180
|
+
var _a;
|
|
181
|
+
console.error('[MSI] WIO error:', error);
|
|
182
|
+
const errorObj = typeof error === 'object' && error.error
|
|
183
|
+
? new Error(error.error)
|
|
184
|
+
: typeof error === 'string'
|
|
185
|
+
? new Error(error)
|
|
186
|
+
: error instanceof Error
|
|
187
|
+
? error
|
|
188
|
+
: new Error('Unknown error');
|
|
189
|
+
// Don't set hasError for rate limiting or non-critical errors
|
|
190
|
+
if (error.type !== 'RATE_LIMIT_EXCEEDED') {
|
|
191
|
+
setHasError(true);
|
|
123
192
|
}
|
|
193
|
+
(_a = props.onError) === null || _a === void 0 ? void 0 : _a.call(props, errorObj);
|
|
124
194
|
});
|
|
125
195
|
// Handle app state changes
|
|
126
196
|
const subscription = AppState.addEventListener('change', (nextAppState) => {
|
|
197
|
+
var _a, _b, _c;
|
|
127
198
|
if (nextAppState === 'background') {
|
|
128
|
-
|
|
129
|
-
|
|
199
|
+
console.log('[MSI] App backgrounded - pausing map updates');
|
|
200
|
+
// Optionally emit event to WebView to pause rendering
|
|
201
|
+
(_a = wioRef.current) === null || _a === void 0 ? void 0 : _a.emit('app:background');
|
|
130
202
|
}
|
|
131
203
|
else if (nextAppState === 'active') {
|
|
132
|
-
|
|
133
|
-
|
|
204
|
+
console.log('[MSI] App active - resuming map updates');
|
|
205
|
+
(_b = wioRef.current) === null || _b === void 0 ? void 0 : _b.emit('app:foreground');
|
|
206
|
+
// Check if we need to reconnect
|
|
207
|
+
if (!((_c = wioRef.current) === null || _c === void 0 ? void 0 : _c.isConnected())) {
|
|
208
|
+
console.log('[MSI] Reconnecting after app resumed');
|
|
209
|
+
initializeConnection();
|
|
210
|
+
}
|
|
134
211
|
}
|
|
135
212
|
});
|
|
136
213
|
return () => {
|
|
137
214
|
var _a;
|
|
215
|
+
console.log('[MSI] Cleaning up');
|
|
138
216
|
subscription.remove();
|
|
139
217
|
(_a = wioRef.current) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
218
|
+
isInitializedRef.current = false;
|
|
140
219
|
};
|
|
141
220
|
}, []);
|
|
142
|
-
|
|
143
|
-
|
|
221
|
+
// Initialize API when both connection and ready state are achieved
|
|
222
|
+
useEffect(() => initializeAPI(), [isConnected, isReady]);
|
|
144
223
|
const handleMessage = (event) => {
|
|
145
224
|
var _a;
|
|
225
|
+
// Handle console logs separately
|
|
226
|
+
try {
|
|
227
|
+
const data = JSON.parse(event.nativeEvent.data);
|
|
228
|
+
if (data.type === '__console') {
|
|
229
|
+
const prefix = '[WebView]';
|
|
230
|
+
switch (data.level) {
|
|
231
|
+
case 'log':
|
|
232
|
+
console.log(prefix, data.message);
|
|
233
|
+
break;
|
|
234
|
+
case 'error':
|
|
235
|
+
console.error(prefix, data.message);
|
|
236
|
+
break;
|
|
237
|
+
case 'warn':
|
|
238
|
+
console.warn(prefix, data.message);
|
|
239
|
+
break;
|
|
240
|
+
}
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
catch (e) {
|
|
245
|
+
// Not JSON or not console log, pass to WIO
|
|
246
|
+
}
|
|
146
247
|
(_a = wioRef.current) === null || _a === void 0 ? void 0 : _a.handleMessage(event);
|
|
147
248
|
};
|
|
148
249
|
const baseURL = props.env === 'dev'
|
|
@@ -152,21 +253,27 @@ export default forwardRef((props, ref) => {
|
|
|
152
253
|
<WebView ref={webViewRef} source={{ uri: mapUrl }} style={styles.webview} onMessage={handleMessage} injectedJavaScript={`
|
|
153
254
|
${getInjectedConsole()}
|
|
154
255
|
${WIO_PAIR_INJECTED_JAVASCRIPT}
|
|
155
|
-
`} javaScriptEnabled={true} domStorageEnabled={true} geolocationEnabled={true} allowsInlineMediaPlayback={true} cacheEnabled={true} androidLayerType="hardware" allowsBackForwardNavigationGestures={false} bounces={false} scrollEnabled={false} mixedContentMode="always" originWhitelist={['*']} onLoadStart={() => console.log('WebView loading...')} onLoadEnd={() => {
|
|
156
|
-
console.log('WebView loaded');
|
|
157
|
-
//
|
|
158
|
-
|
|
256
|
+
`} javaScriptEnabled={true} domStorageEnabled={true} geolocationEnabled={true} allowsInlineMediaPlayback={true} cacheEnabled={true} androidLayerType="hardware" allowsBackForwardNavigationGestures={false} bounces={false} scrollEnabled={false} mixedContentMode="always" originWhitelist={['*']} onLoadStart={() => console.log('[MSI] WebView loading...')} onLoadEnd={() => {
|
|
257
|
+
console.log('[MSI] WebView loaded, initiating connection');
|
|
258
|
+
// Let WIO handle the connection automatically
|
|
259
|
+
// Remove the manual ping - it's not needed!
|
|
260
|
+
initializeConnection();
|
|
159
261
|
}} onError={(syntheticEvent) => {
|
|
160
262
|
var _a;
|
|
161
263
|
const { nativeEvent } = syntheticEvent;
|
|
162
|
-
console.error('WebView error:', nativeEvent);
|
|
264
|
+
console.error('[MSI] WebView error:', nativeEvent);
|
|
163
265
|
setHasError(true);
|
|
164
266
|
(_a = props.onError) === null || _a === void 0 ? void 0 : _a.call(props, new Error(nativeEvent.description || 'WebView error'));
|
|
165
267
|
}}/>
|
|
166
268
|
|
|
167
269
|
{hasError && (<View style={styles.errorOverlay}>
|
|
168
270
|
<View style={styles.errorCard}>
|
|
169
|
-
{/*
|
|
271
|
+
{/* Add error UI with retry button */}
|
|
272
|
+
<Text style={styles.errorText}>
|
|
273
|
+
{connectionAttempts > 0
|
|
274
|
+
? `Connection failed after ${connectionAttempts} attempts`
|
|
275
|
+
: 'An error occurred'}
|
|
276
|
+
</Text>
|
|
170
277
|
</View>
|
|
171
278
|
</View>)}
|
|
172
279
|
</View>);
|
|
@@ -185,7 +292,13 @@ const styles = StyleSheet.create({
|
|
|
185
292
|
backgroundColor: 'white',
|
|
186
293
|
padding: 20,
|
|
187
294
|
borderRadius: 12,
|
|
188
|
-
margin: 20
|
|
295
|
+
margin: 20,
|
|
296
|
+
minWidth: 200
|
|
297
|
+
},
|
|
298
|
+
errorText: {
|
|
299
|
+
fontSize: 16,
|
|
300
|
+
color: '#333',
|
|
301
|
+
textAlign: 'center'
|
|
189
302
|
}
|
|
190
303
|
});
|
|
191
304
|
// =====================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/allend/MSI/index.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/allend/MSI/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@de./sdk-rn",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.19",
|
|
4
4
|
"description": "Complete SDK pack for MSI React Native (Map Service Interface) and DClient services",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"events": "^3.3.0",
|
|
39
39
|
"socket.io-client": "^4.6.1",
|
|
40
|
-
"webview.io": "^1.0.
|
|
40
|
+
"webview.io": "^1.0.3"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
43
|
"react": ">=16.8.0",
|
package/src/allend/MSI/index.tsx
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import React, { useRef, useEffect, useState, forwardRef, useImperativeHandle } from 'react'
|
|
7
|
-
import { View, StyleSheet, AppState, AppStateStatus } from 'react-native'
|
|
7
|
+
import { View, Text, StyleSheet, AppState, AppStateStatus } from 'react-native'
|
|
8
8
|
import { WebView } from 'react-native-webview'
|
|
9
9
|
import WIO from 'webview.io'
|
|
10
10
|
import Controls from './Controls'
|
|
@@ -68,6 +68,7 @@ export interface MSIProps extends MapOptions {
|
|
|
68
68
|
|
|
69
69
|
export interface MSIRef extends MSIInterface {
|
|
70
70
|
isReady: () => boolean
|
|
71
|
+
retry: () => void
|
|
71
72
|
}
|
|
72
73
|
|
|
73
74
|
// MSI Component
|
|
@@ -78,108 +79,205 @@ export default forwardRef<MSIRef, MSIProps>(( props, ref ) => {
|
|
|
78
79
|
const handlesRef = useRef<Handles | null>(null)
|
|
79
80
|
const pluginsRef = useRef<Plugins | null>(null)
|
|
80
81
|
const [isConnected, setIsConnected] = useState(false)
|
|
82
|
+
const [isReady, setIsReady] = useState(false)
|
|
81
83
|
const [hasError, setHasError] = useState(false)
|
|
84
|
+
const [connectionAttempts, setConnectionAttempts] = useState(0)
|
|
85
|
+
const isInitializedRef = useRef(false)
|
|
82
86
|
|
|
83
87
|
// Expose API via ref
|
|
84
88
|
useImperativeHandle( ref, () => ({
|
|
85
89
|
controls: controlsRef.current!,
|
|
86
90
|
handles: handlesRef.current!,
|
|
87
91
|
plugins: pluginsRef.current!,
|
|
88
|
-
isReady: () => isConnected
|
|
92
|
+
isReady: () => isConnected && isReady,
|
|
93
|
+
retry: () => {
|
|
94
|
+
setHasError(false)
|
|
95
|
+
setConnectionAttempts(0)
|
|
96
|
+
initializeConnection()
|
|
97
|
+
}
|
|
89
98
|
}))
|
|
90
99
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
100
|
+
const initializeAPI = () => {
|
|
101
|
+
if( isInitializedRef.current || !wioRef.current || !isConnected || !isReady ) return
|
|
102
|
+
|
|
103
|
+
console.log('[MSI] Initializing API components')
|
|
104
|
+
|
|
105
|
+
const
|
|
106
|
+
controls = new Controls( wioRef.current, props ),
|
|
107
|
+
handles = new Handles( wioRef.current, controls, props ),
|
|
108
|
+
plugins = new Plugins( wioRef.current, handles, controls, props )
|
|
109
|
+
|
|
110
|
+
plugins.mount( REGISTERED_PLUGINS )
|
|
111
|
+
|
|
112
|
+
controlsRef.current = controls
|
|
113
|
+
handlesRef.current = handles
|
|
114
|
+
pluginsRef.current = plugins
|
|
115
|
+
isInitializedRef.current = true
|
|
116
|
+
|
|
117
|
+
console.log('[MSI] API initialized successfully')
|
|
118
|
+
props.onLoaded?.({
|
|
119
|
+
controls,
|
|
120
|
+
handles,
|
|
121
|
+
plugins
|
|
97
122
|
})
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
const performBinding = async () => {
|
|
126
|
+
if( !wioRef.current ) return
|
|
127
|
+
|
|
128
|
+
console.log('[MSI] Performing bind with access token')
|
|
129
|
+
|
|
130
|
+
try {
|
|
131
|
+
// Use emitAsync for better error handling
|
|
132
|
+
await wioRef.current.emitAsync('bind', { ...props, origin: 'react-native' }, 10000) // 10 second timeout for binding
|
|
133
|
+
|
|
134
|
+
console.log('[MSI] Bind successful')
|
|
135
|
+
setIsConnected(true)
|
|
136
|
+
setHasError(false)
|
|
137
|
+
}
|
|
138
|
+
catch( error ) {
|
|
139
|
+
console.error('[MSI] Bind failed:', error)
|
|
140
|
+
const errorObj = error instanceof Error ? error : new Error(String(error))
|
|
141
|
+
setHasError(true)
|
|
142
|
+
props.onError?.(errorObj)
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
const initializeConnection = () => {
|
|
147
|
+
if( !wioRef.current || !webViewRef.current ) return
|
|
98
148
|
|
|
99
149
|
const baseURL = props.env === 'dev'
|
|
100
150
|
? 'http://localhost:4800'
|
|
101
151
|
: 'https://msi.dedot.io'
|
|
102
152
|
|
|
153
|
+
console.log('[MSI] Initiating WIO connection to', baseURL)
|
|
103
154
|
wioRef.current.initiate( webViewRef, baseURL )
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
useEffect(() => {
|
|
158
|
+
// Initialize WIO bridge
|
|
159
|
+
console.log('[MSI] Creating WIO instance')
|
|
160
|
+
wioRef.current = new WIO({
|
|
161
|
+
type: 'WEBVIEW',
|
|
162
|
+
debug: props.env === 'dev',
|
|
163
|
+
connectionTimeout: 15000, // 15 seconds for initial connection
|
|
164
|
+
connectionPingInterval: 2000,
|
|
165
|
+
maxConnectionAttempts: 5,
|
|
166
|
+
autoReconnect: true,
|
|
167
|
+
heartbeatInterval: 30000
|
|
168
|
+
})
|
|
104
169
|
|
|
105
170
|
// Setup event listeners
|
|
106
|
-
console.log('
|
|
171
|
+
console.log('[MSI] Setting up WIO event listeners')
|
|
172
|
+
|
|
107
173
|
wioRef.current
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
174
|
+
// Handle successful connection
|
|
175
|
+
.on('connect', async () => {
|
|
176
|
+
console.log('[MSI] WIO bridge connected')
|
|
177
|
+
setConnectionAttempts(0)
|
|
178
|
+
|
|
179
|
+
// Perform binding after connection
|
|
180
|
+
await performBinding()
|
|
181
|
+
})
|
|
182
|
+
// Handle connection timeout
|
|
183
|
+
.on('connect_timeout', ({ attempts }) => {
|
|
184
|
+
console.error('[MSI] Connection timeout after', attempts, 'attempts')
|
|
185
|
+
setConnectionAttempts(attempts)
|
|
186
|
+
setHasError(true)
|
|
187
|
+
props.onError?.(new Error(`Failed to connect after ${attempts} attempts`))
|
|
188
|
+
})
|
|
189
|
+
// Handle reconnection attempts
|
|
190
|
+
.on('reconnecting', ({ attempt, delay }) => {
|
|
191
|
+
console.log(`[MSI] Reconnecting (attempt ${attempt}, delay ${delay}ms)`)
|
|
192
|
+
setIsConnected(false)
|
|
193
|
+
setIsReady(false)
|
|
128
194
|
})
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
setHasError(
|
|
133
|
-
props.onError?.(
|
|
195
|
+
// Handle reconnection failure
|
|
196
|
+
.on('reconnection_failed', ({ attempts }) => {
|
|
197
|
+
console.error('[MSI] Reconnection failed after', attempts, 'attempts')
|
|
198
|
+
setHasError(true)
|
|
199
|
+
props.onError?.(new Error(`Reconnection failed after ${attempts} attempts`))
|
|
134
200
|
})
|
|
201
|
+
// Handle disconnection
|
|
202
|
+
.on('disconnect', ({ reason }) => {
|
|
203
|
+
console.log('[MSI] Disconnected:', reason)
|
|
204
|
+
setIsConnected(false)
|
|
205
|
+
setIsReady(false)
|
|
206
|
+
})
|
|
207
|
+
// Handle WebView ready event
|
|
135
208
|
.on('ready', () => {
|
|
136
|
-
console.log('MSI ready'
|
|
209
|
+
console.log('[MSI] WebView content ready')
|
|
210
|
+
setIsReady(true)
|
|
137
211
|
props.onReady?.()
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
props.onLoaded?.({
|
|
154
|
-
controls,
|
|
155
|
-
handles,
|
|
156
|
-
plugins
|
|
157
|
-
})
|
|
212
|
+
})
|
|
213
|
+
// Handle errors
|
|
214
|
+
.on('error', ( error: any ) => {
|
|
215
|
+
console.error('[MSI] WIO error:', error)
|
|
216
|
+
const errorObj = typeof error === 'object' && error.error
|
|
217
|
+
? new Error(error.error)
|
|
218
|
+
: typeof error === 'string'
|
|
219
|
+
? new Error(error)
|
|
220
|
+
: error instanceof Error
|
|
221
|
+
? error
|
|
222
|
+
: new Error('Unknown error')
|
|
223
|
+
|
|
224
|
+
// Don't set hasError for rate limiting or non-critical errors
|
|
225
|
+
if( error.type !== 'RATE_LIMIT_EXCEEDED' ){
|
|
226
|
+
setHasError(true)
|
|
158
227
|
}
|
|
228
|
+
|
|
229
|
+
props.onError?.(errorObj)
|
|
159
230
|
})
|
|
160
231
|
|
|
161
232
|
// Handle app state changes
|
|
162
233
|
const subscription = AppState.addEventListener('change', ( nextAppState: AppStateStatus ) => {
|
|
163
234
|
if( nextAppState === 'background' ){
|
|
164
|
-
|
|
165
|
-
|
|
235
|
+
console.log('[MSI] App backgrounded - pausing map updates')
|
|
236
|
+
// Optionally emit event to WebView to pause rendering
|
|
237
|
+
wioRef.current?.emit('app:background')
|
|
166
238
|
}
|
|
167
239
|
else if( nextAppState === 'active' ){
|
|
168
|
-
|
|
169
|
-
|
|
240
|
+
console.log('[MSI] App active - resuming map updates')
|
|
241
|
+
wioRef.current?.emit('app:foreground')
|
|
242
|
+
|
|
243
|
+
// Check if we need to reconnect
|
|
244
|
+
if( !wioRef.current?.isConnected() ){
|
|
245
|
+
console.log('[MSI] Reconnecting after app resumed')
|
|
246
|
+
initializeConnection()
|
|
247
|
+
}
|
|
170
248
|
}
|
|
171
249
|
})
|
|
172
250
|
|
|
173
251
|
return () => {
|
|
252
|
+
console.log('[MSI] Cleaning up')
|
|
174
253
|
subscription.remove()
|
|
175
254
|
wioRef.current?.disconnect()
|
|
255
|
+
isInitializedRef.current = false
|
|
176
256
|
}
|
|
177
257
|
}, [])
|
|
178
258
|
|
|
179
|
-
|
|
180
|
-
|
|
259
|
+
// Initialize API when both connection and ready state are achieved
|
|
260
|
+
useEffect( () => initializeAPI(), [isConnected, isReady] )
|
|
181
261
|
|
|
182
262
|
const handleMessage = ( event: any ) => {
|
|
263
|
+
// Handle console logs separately
|
|
264
|
+
try {
|
|
265
|
+
const data = JSON.parse(event.nativeEvent.data)
|
|
266
|
+
if( data.type === '__console' ){
|
|
267
|
+
const prefix = '[WebView]'
|
|
268
|
+
switch( data.level ){
|
|
269
|
+
case 'log': console.log(prefix, data.message); break
|
|
270
|
+
case 'error': console.error(prefix, data.message); break
|
|
271
|
+
case 'warn': console.warn(prefix, data.message); break
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
return
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
catch(e){
|
|
278
|
+
// Not JSON or not console log, pass to WIO
|
|
279
|
+
}
|
|
280
|
+
|
|
183
281
|
wioRef.current?.handleMessage( event )
|
|
184
282
|
}
|
|
185
283
|
|
|
@@ -211,15 +309,16 @@ export default forwardRef<MSIRef, MSIProps>(( props, ref ) => {
|
|
|
211
309
|
scrollEnabled={false}
|
|
212
310
|
mixedContentMode="always"
|
|
213
311
|
originWhitelist={['*']}
|
|
214
|
-
onLoadStart={() => console.log('WebView loading...')}
|
|
312
|
+
onLoadStart={() => console.log('[MSI] WebView loading...')}
|
|
215
313
|
onLoadEnd={() => {
|
|
216
|
-
console.log('WebView loaded')
|
|
217
|
-
//
|
|
218
|
-
|
|
314
|
+
console.log('[MSI] WebView loaded, initiating connection')
|
|
315
|
+
// Let WIO handle the connection automatically
|
|
316
|
+
// Remove the manual ping - it's not needed!
|
|
317
|
+
initializeConnection()
|
|
219
318
|
}}
|
|
220
319
|
onError={( syntheticEvent ) => {
|
|
221
320
|
const { nativeEvent } = syntheticEvent
|
|
222
|
-
console.error('WebView error:', nativeEvent )
|
|
321
|
+
console.error('[MSI] WebView error:', nativeEvent )
|
|
223
322
|
setHasError( true )
|
|
224
323
|
props.onError?.( new Error( nativeEvent.description || 'WebView error' ) )
|
|
225
324
|
}}
|
|
@@ -228,7 +327,12 @@ export default forwardRef<MSIRef, MSIProps>(( props, ref ) => {
|
|
|
228
327
|
{hasError && (
|
|
229
328
|
<View style={styles.errorOverlay}>
|
|
230
329
|
<View style={styles.errorCard}>
|
|
231
|
-
{/*
|
|
330
|
+
{/* Add error UI with retry button */}
|
|
331
|
+
<Text style={styles.errorText}>
|
|
332
|
+
{connectionAttempts > 0
|
|
333
|
+
? `Connection failed after ${connectionAttempts} attempts`
|
|
334
|
+
: 'An error occurred'}
|
|
335
|
+
</Text>
|
|
232
336
|
</View>
|
|
233
337
|
</View>
|
|
234
338
|
)}
|
|
@@ -255,7 +359,13 @@ const styles = StyleSheet.create({
|
|
|
255
359
|
backgroundColor: 'white',
|
|
256
360
|
padding: 20,
|
|
257
361
|
borderRadius: 12,
|
|
258
|
-
margin: 20
|
|
362
|
+
margin: 20,
|
|
363
|
+
minWidth: 200
|
|
364
|
+
},
|
|
365
|
+
errorText: {
|
|
366
|
+
fontSize: 16,
|
|
367
|
+
color: '#333',
|
|
368
|
+
textAlign: 'center'
|
|
259
369
|
}
|
|
260
370
|
})
|
|
261
371
|
|