banking_dcb_sdk_react_native 1.0.75 → 1.0.76
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.
|
@@ -11,6 +11,7 @@ import CookieManager from '@react-native-cookies/cookies';
|
|
|
11
11
|
import { AnalyticsLogger } from "./analytics/analytics_logger.js";
|
|
12
12
|
import SendIntentAndroid from 'react-native-send-intent';
|
|
13
13
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
|
+
const [waitingForUserClosedRedirect, setWaitingForUserClosedRedirect] = useState(false);
|
|
14
15
|
const PKG = {
|
|
15
16
|
gmail: 'com.google.android.gm',
|
|
16
17
|
outlook: 'com.microsoft.office.outlook',
|
|
@@ -47,7 +48,7 @@ export async function openMailAppIntent(app) {
|
|
|
47
48
|
return true;
|
|
48
49
|
}
|
|
49
50
|
} catch (err) {
|
|
50
|
-
console.log(`[mailIntent] openApp(${pkg}) failed:`, err);
|
|
51
|
+
console.log(`SDK:LOG: [mailIntent] openApp(${pkg}) failed:`, err);
|
|
51
52
|
}
|
|
52
53
|
|
|
53
54
|
// Step 2: Fallback to the custom scheme.
|
|
@@ -58,16 +59,16 @@ export async function openMailAppIntent(app) {
|
|
|
58
59
|
return true;
|
|
59
60
|
}
|
|
60
61
|
} catch (err2) {
|
|
61
|
-
console.log(`[mailIntent] Linking fallback (${scheme}) failed:`, err2);
|
|
62
|
+
console.log(`SDK:LOG: [mailIntent] Linking fallback (${scheme}) failed:`, err2);
|
|
62
63
|
}
|
|
63
64
|
return false;
|
|
64
65
|
}
|
|
65
66
|
const clearAllCookies = async () => {
|
|
66
67
|
try {
|
|
67
68
|
await CookieManager.clearAll(true);
|
|
68
|
-
console.log('clearing cookies');
|
|
69
|
+
console.log('SDK:LOG: clearing cookies');
|
|
69
70
|
} catch (e) {
|
|
70
|
-
console.error('Failed to clear cookies:', e);
|
|
71
|
+
console.error('SDK:LOG: Failed to clear cookies:', e);
|
|
71
72
|
}
|
|
72
73
|
};
|
|
73
74
|
export const WebView = ({
|
|
@@ -93,7 +94,7 @@ export const WebView = ({
|
|
|
93
94
|
if (Platform.OS === 'android') {
|
|
94
95
|
ToastAndroid.show('Oops! Something went wrong. Please try again.', ToastAndroid.LONG);
|
|
95
96
|
}
|
|
96
|
-
console.log('Application not found to open link');
|
|
97
|
+
console.log('SDK:LOG: Application not found to open link');
|
|
97
98
|
}
|
|
98
99
|
};
|
|
99
100
|
const showToast_with_code_message = syntheticEvent => {
|
|
@@ -129,7 +130,7 @@ export const WebView = ({
|
|
|
129
130
|
};
|
|
130
131
|
const downloadAndOpenFile = async fileUrl => {
|
|
131
132
|
try {
|
|
132
|
-
console.log('Starting file download...', fileUrl);
|
|
133
|
+
console.log('SDK:LOG: Starting file download...', fileUrl);
|
|
133
134
|
|
|
134
135
|
// Get cookies using CookieManager
|
|
135
136
|
let cookieString = '';
|
|
@@ -137,7 +138,7 @@ export const WebView = ({
|
|
|
137
138
|
const cookies = await CookieManager.get(fileUrl);
|
|
138
139
|
cookieString = Object.keys(cookies).map(key => `${key}=${cookies[key]?.value ?? ''}`).join('; ');
|
|
139
140
|
} catch (e) {
|
|
140
|
-
console.error('Failed to get cookies:', e);
|
|
141
|
+
console.error('SDK:LOG: Failed to get cookies:', e);
|
|
141
142
|
}
|
|
142
143
|
|
|
143
144
|
// Create a clean filename from the URL
|
|
@@ -154,7 +155,7 @@ export const WebView = ({
|
|
|
154
155
|
if (!downloadPath) {
|
|
155
156
|
throw new Error('Could not determine download path');
|
|
156
157
|
}
|
|
157
|
-
console.log('Downloading to:', downloadPath);
|
|
158
|
+
console.log('SDK:LOG: Downloading to:', downloadPath);
|
|
158
159
|
const options = {
|
|
159
160
|
fromUrl: fileUrl,
|
|
160
161
|
toFile: downloadPath,
|
|
@@ -165,12 +166,12 @@ export const WebView = ({
|
|
|
165
166
|
},
|
|
166
167
|
background: true,
|
|
167
168
|
begin: res => {
|
|
168
|
-
console.log('Download started with headers:', res);
|
|
169
|
+
console.log('SDK:LOG: Download started with headers:', res);
|
|
169
170
|
}
|
|
170
171
|
};
|
|
171
172
|
const response = await RNFS.downloadFile(options).promise;
|
|
172
173
|
if (response.statusCode === 200) {
|
|
173
|
-
console.log('File downloaded to:', downloadPath);
|
|
174
|
+
console.log('SDK:LOG: File downloaded to:', downloadPath);
|
|
174
175
|
if (Platform.OS === 'android') {
|
|
175
176
|
ToastAndroid.show('File downloaded successfully', ToastAndroid.SHORT);
|
|
176
177
|
}
|
|
@@ -186,45 +187,55 @@ export const WebView = ({
|
|
|
186
187
|
throw new Error(`Download failed with status ${response.statusCode}`);
|
|
187
188
|
}
|
|
188
189
|
} catch (error) {
|
|
189
|
-
console.error('File download/open error:', error);
|
|
190
|
+
console.error('SDK:LOG: File download/open error:', error);
|
|
190
191
|
}
|
|
191
192
|
};
|
|
192
193
|
const handleOnShouldStartLoadWithRequest = event => {
|
|
193
194
|
const {
|
|
194
195
|
url
|
|
195
196
|
} = event;
|
|
196
|
-
console.log('URL:', url);
|
|
197
|
+
console.log('SDK:LOG: WEBVIEW URL:', url);
|
|
197
198
|
if (url === 'about:blank' || url === 'about:srcdoc') {
|
|
198
199
|
return true;
|
|
199
200
|
}
|
|
201
|
+
if (waitingForUserClosedRedirect && (url?.includes('/session-expired?status=') || url?.includes('/redirect?status=') || url?.includes('/api/user/redirect'))) {
|
|
202
|
+
console.log('SDK:LOG: waitingForUserClosedRedirect overriding url');
|
|
203
|
+
const status = getQueryParam(url, 'status');
|
|
204
|
+
setWaitingForUserClosedRedirect(false);
|
|
205
|
+
console.log('SDK:LOG: Status thrown from webview ', status);
|
|
206
|
+
StatusBar.setBackgroundColor('#7E7E7EFF');
|
|
207
|
+
clearAllCookies();
|
|
208
|
+
onCallback?.(WebViewCallback.redirect(status ?? 'USER_CLOSED'));
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
200
211
|
if (Platform.OS === 'android' && url) {
|
|
201
212
|
if (url.includes('ms-outlook://')) {
|
|
202
|
-
console.log('Intent to open Outlook detected');
|
|
213
|
+
console.log('SDK:LOG: Intent to open Outlook detected');
|
|
203
214
|
openMailAppIntent('outlook').then(ok => !ok && ToastAndroid.show('Outlook app not found', ToastAndroid.SHORT));
|
|
204
215
|
return false; // cancel WebView navigation
|
|
205
216
|
}
|
|
206
217
|
if (url.includes('googlegmail://')) {
|
|
207
|
-
console.log('Intent to open Gmail detected');
|
|
218
|
+
console.log('SDK:LOG: Intent to open Gmail detected');
|
|
208
219
|
openMailAppIntent('gmail').then(ok => !ok && ToastAndroid.show('Gmail app not found', ToastAndroid.SHORT));
|
|
209
220
|
return false;
|
|
210
221
|
}
|
|
211
222
|
if (url.includes('ymail://')) {
|
|
212
|
-
console.log('Intent to open Yahoo Mail detected');
|
|
223
|
+
console.log('SDK:LOG: Intent to open Yahoo Mail detected');
|
|
213
224
|
openMailAppIntent('yahoo').then(ok => !ok && ToastAndroid.show('Yahoo Mail app not found', ToastAndroid.SHORT));
|
|
214
225
|
return false;
|
|
215
226
|
}
|
|
216
227
|
}
|
|
217
228
|
if (url?.includes('/session-expired?status=') || url?.includes('/redirect?status=')) {
|
|
218
|
-
console.log('overriding url');
|
|
229
|
+
console.log('SDK:LOG: overriding url');
|
|
219
230
|
const status = getQueryParam(url, 'status');
|
|
220
|
-
console.log('Status thrown from webview ', status);
|
|
231
|
+
console.log('SDK:LOG: Status thrown from webview ', status);
|
|
221
232
|
StatusBar.setBackgroundColor('#7E7E7EFF');
|
|
222
233
|
clearAllCookies();
|
|
223
234
|
onCallback?.(WebViewCallback.redirect(status ?? undefined));
|
|
224
235
|
return false;
|
|
225
236
|
}
|
|
226
237
|
if (url?.includes('/api/user/redirect')) {
|
|
227
|
-
console.log('overriding redirect url');
|
|
238
|
+
console.log('SDK:LOG: overriding redirect url');
|
|
228
239
|
StatusBar.setBackgroundColor('#7E7E7EFF');
|
|
229
240
|
clearAllCookies();
|
|
230
241
|
onCallback?.(WebViewCallback.redirect('SESSION_EXPIRED'));
|
|
@@ -234,12 +245,12 @@ export const WebView = ({
|
|
|
234
245
|
// Handle whitelisted URLs
|
|
235
246
|
const isWhitelisted = whitelistedUrls.some(white => url.includes(white)) || hostName && url.includes(hostName);
|
|
236
247
|
if (!isWhitelisted && url && url !== 'about:blank' && url !== 'about:srcdoc') {
|
|
237
|
-
console.log('External URL detected:', url);
|
|
248
|
+
console.log('SDK:LOG: External URL detected:', url);
|
|
238
249
|
handleExternalUrl(url);
|
|
239
250
|
return false;
|
|
240
251
|
}
|
|
241
252
|
if (url.includes('.pdf') || url.includes('/statements/') || url.includes('/download_statements')) {
|
|
242
|
-
console.log('File download URL detected:', url);
|
|
253
|
+
console.log('SDK:LOG: File download URL detected:', url);
|
|
243
254
|
downloadAndOpenFile(url);
|
|
244
255
|
return false;
|
|
245
256
|
}
|
|
@@ -290,7 +301,7 @@ export const WebView = ({
|
|
|
290
301
|
}
|
|
291
302
|
return result === RESULTS.GRANTED;
|
|
292
303
|
} catch (error) {
|
|
293
|
-
console.error('Permission request failed:', error);
|
|
304
|
+
console.error('SDK:LOG: Permission request failed:', error);
|
|
294
305
|
return false;
|
|
295
306
|
}
|
|
296
307
|
};
|
|
@@ -298,7 +309,7 @@ export const WebView = ({
|
|
|
298
309
|
const {
|
|
299
310
|
resources
|
|
300
311
|
} = event.nativeEvent;
|
|
301
|
-
console.log('Permission requested:', resources);
|
|
312
|
+
console.log('SDK:LOG: Permission requested:', resources);
|
|
302
313
|
const permissionsToRequest = [];
|
|
303
314
|
if (resources.includes('video')) {
|
|
304
315
|
permissionsToRequest.push(Platform.OS === 'ios' ? PERMISSIONS.IOS.CAMERA : PERMISSIONS.ANDROID.CAMERA);
|
|
@@ -320,11 +331,22 @@ export const WebView = ({
|
|
|
320
331
|
event.nativeEvent.deny();
|
|
321
332
|
}
|
|
322
333
|
} catch (error) {
|
|
323
|
-
console.error('Permission handling failed:', error);
|
|
334
|
+
console.error('SDK:LOG: Permission handling failed:', error);
|
|
324
335
|
// @ts-ignore - deny exists on the event
|
|
325
336
|
event.nativeEvent.deny();
|
|
326
337
|
}
|
|
327
338
|
};
|
|
339
|
+
const handleMessage = event => {
|
|
340
|
+
try {
|
|
341
|
+
const data = JSON.parse(event.nativeEvent.data);
|
|
342
|
+
if (data?.method === 'CLOSE_CLICKED') {
|
|
343
|
+
console.log('SDK:LOG: Received CLOSE_CLICKED from web');
|
|
344
|
+
setWaitingForUserClosedRedirect(true);
|
|
345
|
+
}
|
|
346
|
+
} catch (e) {
|
|
347
|
+
console.warn('SDK:LOG: Error parsing WebView message', e);
|
|
348
|
+
}
|
|
349
|
+
};
|
|
328
350
|
const handleWebViewLoadEnd = syntheticEvent => {
|
|
329
351
|
const loadedUrl = syntheticEvent?.nativeEvent?.url || url;
|
|
330
352
|
onPageFinished?.();
|
|
@@ -369,7 +391,8 @@ export const WebView = ({
|
|
|
369
391
|
sharedCookiesEnabled: true,
|
|
370
392
|
setSupportMultipleWindows: false,
|
|
371
393
|
mixedContentMode: "always",
|
|
372
|
-
allowsLinkPreview: true
|
|
394
|
+
allowsLinkPreview: true,
|
|
395
|
+
onMessage: handleMessage
|
|
373
396
|
})
|
|
374
397
|
});
|
|
375
398
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WebView","RNWebView","BackHandler","Platform","Linking","SafeAreaView","ActivityIndicator","View","ToastAndroid","StatusBar","useEffect","useRef","useState","WebViewCallback","check","PERMISSIONS","request","RESULTS","FileViewer","RNFS","CookieManager","AnalyticsLogger","SendIntentAndroid","jsx","_jsx","PKG","gmail","outlook","yahoo","SCHEME","openMailAppIntent","app","OS","pkg","scheme","wasOpened","openApp","err","console","log","canOpen","canOpenURL","openURL","err2","clearAllCookies","clearAll","e","error","url","options","onCallback","hostName","whitelistedUrls","onPageFinished","webviewRef","canGoBack","setCanGoBack","_analyticsLogger","setToast","handleExternalUrl","Promise","resolve","setTimeout","show","LONG","showToast_with_code_message","syntheticEvent","nativeEvent","errorCodesToHandle","includes","code","message","description","visible","redirect","getQueryParam","param","match","RegExp","decodeURIComponent","downloadAndOpenFile","fileUrl","cookieString","cookies","get","Object","keys","map","key","value","join","timestamp","Date","getTime","urlParts","split","lastPart","length","fileExt","pop","fileName","downloadPath","select","ios","DocumentDirectoryPath","android","DownloadDirectoryPath","Error","fromUrl","toFile","headers","background","begin","res","response","downloadFile","promise","statusCode","SHORT","open","showOpenWithDialog","onDismiss","unlink","catch","handleOnShouldStartLoadWithRequest","event","then","ok","status","setBackgroundColor","undefined","isWhitelisted","some","white","handleBackButton","current","goBack","backHandler","addEventListener","remove","Loading","style","flex","justifyContent","alignItems","children","size","injectedJavaScript","requestPermission","permission","result","DENIED","requestResult","GRANTED","handlePermissionRequest","resources","permissionsToRequest","push","IOS","CAMERA","ANDROID","MICROPHONE","RECORD_AUDIO","LOCATION_WHEN_IN_USE","ACCESS_FINE_LOCATION","results","all","granted","every","grant","deny","handleWebViewLoadEnd","loadedUrl","backgroundColor","ref","source","uri","onPermissionRequest","geolocationEnabled","androidPermissions","camera","microphone","geolocation","onError","startInLoadingState","renderLoading","onLoadEnd","originWhitelist","javaScriptEnabled","domStorageEnabled","mediaPlaybackRequiresUserAction","allowsInlineMediaPlayback","onShouldStartLoadWithRequest","onNavigationStateChange","navState","decelerationRate","allowsBackForwardNavigationGestures","sharedCookiesEnabled","setSupportMultipleWindows","mixedContentMode","allowsLinkPreview"],"sourceRoot":"../../../src","sources":["helpers/webview.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["WebView","RNWebView","BackHandler","Platform","Linking","SafeAreaView","ActivityIndicator","View","ToastAndroid","StatusBar","useEffect","useRef","useState","WebViewCallback","check","PERMISSIONS","request","RESULTS","FileViewer","RNFS","CookieManager","AnalyticsLogger","SendIntentAndroid","jsx","_jsx","waitingForUserClosedRedirect","setWaitingForUserClosedRedirect","PKG","gmail","outlook","yahoo","SCHEME","openMailAppIntent","app","OS","pkg","scheme","wasOpened","openApp","err","console","log","canOpen","canOpenURL","openURL","err2","clearAllCookies","clearAll","e","error","url","options","onCallback","hostName","whitelistedUrls","onPageFinished","webviewRef","canGoBack","setCanGoBack","_analyticsLogger","setToast","handleExternalUrl","Promise","resolve","setTimeout","show","LONG","showToast_with_code_message","syntheticEvent","nativeEvent","errorCodesToHandle","includes","code","message","description","visible","redirect","getQueryParam","param","match","RegExp","decodeURIComponent","downloadAndOpenFile","fileUrl","cookieString","cookies","get","Object","keys","map","key","value","join","timestamp","Date","getTime","urlParts","split","lastPart","length","fileExt","pop","fileName","downloadPath","select","ios","DocumentDirectoryPath","android","DownloadDirectoryPath","Error","fromUrl","toFile","headers","background","begin","res","response","downloadFile","promise","statusCode","SHORT","open","showOpenWithDialog","onDismiss","unlink","catch","handleOnShouldStartLoadWithRequest","event","status","setBackgroundColor","then","ok","undefined","isWhitelisted","some","white","handleBackButton","current","goBack","backHandler","addEventListener","remove","Loading","style","flex","justifyContent","alignItems","children","size","injectedJavaScript","requestPermission","permission","result","DENIED","requestResult","GRANTED","handlePermissionRequest","resources","permissionsToRequest","push","IOS","CAMERA","ANDROID","MICROPHONE","RECORD_AUDIO","LOCATION_WHEN_IN_USE","ACCESS_FINE_LOCATION","results","all","granted","every","grant","deny","handleMessage","data","JSON","parse","method","warn","handleWebViewLoadEnd","loadedUrl","backgroundColor","ref","source","uri","onPermissionRequest","geolocationEnabled","androidPermissions","camera","microphone","geolocation","onError","startInLoadingState","renderLoading","onLoadEnd","originWhitelist","javaScriptEnabled","domStorageEnabled","mediaPlaybackRequiresUserAction","allowsInlineMediaPlayback","onShouldStartLoadWithRequest","onNavigationStateChange","navState","decelerationRate","allowsBackForwardNavigationGestures","sharedCookiesEnabled","setSupportMultipleWindows","mixedContentMode","allowsLinkPreview","onMessage"],"sourceRoot":"../../../src","sources":["helpers/webview.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webview.d.ts","sourceRoot":"","sources":["../../../../src/helpers/webview.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webview.d.ts","sourceRoot":"","sources":["../../../../src/helpers/webview.tsx"],"names":[],"mappings":"AAgBA,OAAO,EACL,KAAK,YAAY,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AAcjC,UAAU,oBAAqB,SAAQ,YAAY;IACjD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3C,kBAAkB,CAAC,EAAE;QACnB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;CACH;AACD,UAAU,kBAAkB;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAKD,KAAK,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAc7C;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAoCtE;AAWD,eAAO,MAAM,OAAO,GAAI,0EAOrB,kBAAkB,4CA+YpB,CAAC"}
|
package/package.json
CHANGED
package/src/helpers/webview.tsx
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
WebView as RNWebView,
|
|
3
|
+
type WebViewMessageEvent,
|
|
4
|
+
} from 'react-native-webview';
|
|
2
5
|
import {
|
|
3
6
|
BackHandler,
|
|
4
7
|
Platform,
|
|
@@ -49,6 +52,9 @@ interface WebViewCustomProps {
|
|
|
49
52
|
onPageFinished?: () => void;
|
|
50
53
|
}
|
|
51
54
|
|
|
55
|
+
const [waitingForUserClosedRedirect, setWaitingForUserClosedRedirect] =
|
|
56
|
+
useState(false);
|
|
57
|
+
|
|
52
58
|
type MailApp = 'gmail' | 'outlook' | 'yahoo';
|
|
53
59
|
|
|
54
60
|
const PKG: Record<MailApp, string> = {
|
|
@@ -89,7 +95,7 @@ export async function openMailAppIntent(app: MailApp): Promise<boolean> {
|
|
|
89
95
|
return true;
|
|
90
96
|
}
|
|
91
97
|
} catch (err) {
|
|
92
|
-
console.log(`[mailIntent] openApp(${pkg}) failed:`, err);
|
|
98
|
+
console.log(`SDK:LOG: [mailIntent] openApp(${pkg}) failed:`, err);
|
|
93
99
|
}
|
|
94
100
|
|
|
95
101
|
// Step 2: Fallback to the custom scheme.
|
|
@@ -100,7 +106,10 @@ export async function openMailAppIntent(app: MailApp): Promise<boolean> {
|
|
|
100
106
|
return true;
|
|
101
107
|
}
|
|
102
108
|
} catch (err2) {
|
|
103
|
-
console.log(
|
|
109
|
+
console.log(
|
|
110
|
+
`SDK:LOG: [mailIntent] Linking fallback (${scheme}) failed:`,
|
|
111
|
+
err2
|
|
112
|
+
);
|
|
104
113
|
}
|
|
105
114
|
|
|
106
115
|
return false;
|
|
@@ -109,9 +118,9 @@ export async function openMailAppIntent(app: MailApp): Promise<boolean> {
|
|
|
109
118
|
const clearAllCookies = async () => {
|
|
110
119
|
try {
|
|
111
120
|
await CookieManager.clearAll(true);
|
|
112
|
-
console.log('clearing cookies');
|
|
121
|
+
console.log('SDK:LOG: clearing cookies');
|
|
113
122
|
} catch (e) {
|
|
114
|
-
console.error('Failed to clear cookies:', e);
|
|
123
|
+
console.error('SDK:LOG: Failed to clear cookies:', e);
|
|
115
124
|
}
|
|
116
125
|
};
|
|
117
126
|
|
|
@@ -143,7 +152,7 @@ export const WebView = ({
|
|
|
143
152
|
ToastAndroid.LONG
|
|
144
153
|
);
|
|
145
154
|
}
|
|
146
|
-
console.log('Application not found to open link');
|
|
155
|
+
console.log('SDK:LOG: Application not found to open link');
|
|
147
156
|
}
|
|
148
157
|
};
|
|
149
158
|
const showToast_with_code_message = (syntheticEvent: any) => {
|
|
@@ -184,7 +193,7 @@ export const WebView = ({
|
|
|
184
193
|
|
|
185
194
|
const downloadAndOpenFile = async (fileUrl: string) => {
|
|
186
195
|
try {
|
|
187
|
-
console.log('Starting file download...', fileUrl);
|
|
196
|
+
console.log('SDK:LOG: Starting file download...', fileUrl);
|
|
188
197
|
|
|
189
198
|
// Get cookies using CookieManager
|
|
190
199
|
let cookieString = '';
|
|
@@ -194,7 +203,7 @@ export const WebView = ({
|
|
|
194
203
|
.map((key) => `${key}=${cookies[key]?.value ?? ''}`)
|
|
195
204
|
.join('; ');
|
|
196
205
|
} catch (e) {
|
|
197
|
-
console.error('Failed to get cookies:', e);
|
|
206
|
+
console.error('SDK:LOG: Failed to get cookies:', e);
|
|
198
207
|
}
|
|
199
208
|
|
|
200
209
|
// Create a clean filename from the URL
|
|
@@ -214,7 +223,7 @@ export const WebView = ({
|
|
|
214
223
|
throw new Error('Could not determine download path');
|
|
215
224
|
}
|
|
216
225
|
|
|
217
|
-
console.log('Downloading to:', downloadPath);
|
|
226
|
+
console.log('SDK:LOG: Downloading to:', downloadPath);
|
|
218
227
|
|
|
219
228
|
const options = {
|
|
220
229
|
fromUrl: fileUrl,
|
|
@@ -226,14 +235,14 @@ export const WebView = ({
|
|
|
226
235
|
},
|
|
227
236
|
background: true,
|
|
228
237
|
begin: (res: any) => {
|
|
229
|
-
console.log('Download started with headers:', res);
|
|
238
|
+
console.log('SDK:LOG: Download started with headers:', res);
|
|
230
239
|
},
|
|
231
240
|
};
|
|
232
241
|
|
|
233
242
|
const response = await RNFS.downloadFile(options).promise;
|
|
234
243
|
|
|
235
244
|
if (response.statusCode === 200) {
|
|
236
|
-
console.log('File downloaded to:', downloadPath);
|
|
245
|
+
console.log('SDK:LOG: File downloaded to:', downloadPath);
|
|
237
246
|
|
|
238
247
|
if (Platform.OS === 'android') {
|
|
239
248
|
ToastAndroid.show('File downloaded successfully', ToastAndroid.SHORT);
|
|
@@ -251,20 +260,37 @@ export const WebView = ({
|
|
|
251
260
|
throw new Error(`Download failed with status ${response.statusCode}`);
|
|
252
261
|
}
|
|
253
262
|
} catch (error) {
|
|
254
|
-
console.error('File download/open error:', error);
|
|
263
|
+
console.error('SDK:LOG: File download/open error:', error);
|
|
255
264
|
}
|
|
256
265
|
};
|
|
257
266
|
|
|
258
267
|
const handleOnShouldStartLoadWithRequest = (event: WebViewNavigation) => {
|
|
259
268
|
const { url } = event;
|
|
260
|
-
console.log('URL:', url);
|
|
269
|
+
console.log('SDK:LOG: WEBVIEW URL:', url);
|
|
261
270
|
if (url === 'about:blank' || url === 'about:srcdoc') {
|
|
262
271
|
return true;
|
|
263
272
|
}
|
|
273
|
+
if (
|
|
274
|
+
waitingForUserClosedRedirect &&
|
|
275
|
+
(url?.includes('/session-expired?status=') ||
|
|
276
|
+
url?.includes('/redirect?status=') ||
|
|
277
|
+
url?.includes('/api/user/redirect'))
|
|
278
|
+
) {
|
|
279
|
+
console.log('SDK:LOG: waitingForUserClosedRedirect overriding url');
|
|
280
|
+
const status = getQueryParam(url, 'status');
|
|
281
|
+
|
|
282
|
+
setWaitingForUserClosedRedirect(false);
|
|
264
283
|
|
|
284
|
+
console.log('SDK:LOG: Status thrown from webview ', status);
|
|
285
|
+
|
|
286
|
+
StatusBar.setBackgroundColor('#7E7E7EFF');
|
|
287
|
+
clearAllCookies();
|
|
288
|
+
onCallback?.(WebViewCallback.redirect(status ?? 'USER_CLOSED'));
|
|
289
|
+
return false;
|
|
290
|
+
}
|
|
265
291
|
if (Platform.OS === 'android' && url) {
|
|
266
292
|
if (url.includes('ms-outlook://')) {
|
|
267
|
-
console.log('Intent to open Outlook detected');
|
|
293
|
+
console.log('SDK:LOG: Intent to open Outlook detected');
|
|
268
294
|
openMailAppIntent('outlook').then(
|
|
269
295
|
(ok) =>
|
|
270
296
|
!ok &&
|
|
@@ -273,7 +299,7 @@ export const WebView = ({
|
|
|
273
299
|
return false; // cancel WebView navigation
|
|
274
300
|
}
|
|
275
301
|
if (url.includes('googlegmail://')) {
|
|
276
|
-
console.log('Intent to open Gmail detected');
|
|
302
|
+
console.log('SDK:LOG: Intent to open Gmail detected');
|
|
277
303
|
openMailAppIntent('gmail').then(
|
|
278
304
|
(ok) =>
|
|
279
305
|
!ok && ToastAndroid.show('Gmail app not found', ToastAndroid.SHORT)
|
|
@@ -281,7 +307,7 @@ export const WebView = ({
|
|
|
281
307
|
return false;
|
|
282
308
|
}
|
|
283
309
|
if (url.includes('ymail://')) {
|
|
284
|
-
console.log('Intent to open Yahoo Mail detected');
|
|
310
|
+
console.log('SDK:LOG: Intent to open Yahoo Mail detected');
|
|
285
311
|
openMailAppIntent('yahoo').then(
|
|
286
312
|
(ok) =>
|
|
287
313
|
!ok &&
|
|
@@ -295,10 +321,10 @@ export const WebView = ({
|
|
|
295
321
|
url?.includes('/session-expired?status=') ||
|
|
296
322
|
url?.includes('/redirect?status=')
|
|
297
323
|
) {
|
|
298
|
-
console.log('overriding url');
|
|
324
|
+
console.log('SDK:LOG: overriding url');
|
|
299
325
|
const status = getQueryParam(url, 'status');
|
|
300
326
|
|
|
301
|
-
console.log('Status thrown from webview ', status);
|
|
327
|
+
console.log('SDK:LOG: Status thrown from webview ', status);
|
|
302
328
|
|
|
303
329
|
StatusBar.setBackgroundColor('#7E7E7EFF');
|
|
304
330
|
clearAllCookies();
|
|
@@ -306,7 +332,7 @@ export const WebView = ({
|
|
|
306
332
|
return false;
|
|
307
333
|
}
|
|
308
334
|
if (url?.includes('/api/user/redirect')) {
|
|
309
|
-
console.log('overriding redirect url');
|
|
335
|
+
console.log('SDK:LOG: overriding redirect url');
|
|
310
336
|
|
|
311
337
|
StatusBar.setBackgroundColor('#7E7E7EFF');
|
|
312
338
|
clearAllCookies();
|
|
@@ -325,7 +351,7 @@ export const WebView = ({
|
|
|
325
351
|
url !== 'about:blank' &&
|
|
326
352
|
url !== 'about:srcdoc'
|
|
327
353
|
) {
|
|
328
|
-
console.log('External URL detected:', url);
|
|
354
|
+
console.log('SDK:LOG: External URL detected:', url);
|
|
329
355
|
handleExternalUrl(url);
|
|
330
356
|
return false;
|
|
331
357
|
}
|
|
@@ -334,7 +360,7 @@ export const WebView = ({
|
|
|
334
360
|
url.includes('/statements/') ||
|
|
335
361
|
url.includes('/download_statements')
|
|
336
362
|
) {
|
|
337
|
-
console.log('File download URL detected:', url);
|
|
363
|
+
console.log('SDK:LOG: File download URL detected:', url);
|
|
338
364
|
downloadAndOpenFile(url);
|
|
339
365
|
return false;
|
|
340
366
|
}
|
|
@@ -390,14 +416,14 @@ export const WebView = ({
|
|
|
390
416
|
|
|
391
417
|
return result === RESULTS.GRANTED;
|
|
392
418
|
} catch (error) {
|
|
393
|
-
console.error('Permission request failed:', error);
|
|
419
|
+
console.error('SDK:LOG: Permission request failed:', error);
|
|
394
420
|
return false;
|
|
395
421
|
}
|
|
396
422
|
};
|
|
397
423
|
|
|
398
424
|
const handlePermissionRequest = async (event: any) => {
|
|
399
425
|
const { resources } = event.nativeEvent;
|
|
400
|
-
console.log('Permission requested:', resources);
|
|
426
|
+
console.log('SDK:LOG: Permission requested:', resources);
|
|
401
427
|
|
|
402
428
|
const permissionsToRequest: Permission[] = [];
|
|
403
429
|
|
|
@@ -437,12 +463,25 @@ export const WebView = ({
|
|
|
437
463
|
event.nativeEvent.deny();
|
|
438
464
|
}
|
|
439
465
|
} catch (error) {
|
|
440
|
-
console.error('Permission handling failed:', error);
|
|
466
|
+
console.error('SDK:LOG: Permission handling failed:', error);
|
|
441
467
|
// @ts-ignore - deny exists on the event
|
|
442
468
|
event.nativeEvent.deny();
|
|
443
469
|
}
|
|
444
470
|
};
|
|
445
471
|
|
|
472
|
+
const handleMessage = (event: WebViewMessageEvent) => {
|
|
473
|
+
try {
|
|
474
|
+
const data = JSON.parse(event.nativeEvent.data);
|
|
475
|
+
|
|
476
|
+
if (data?.method === 'CLOSE_CLICKED') {
|
|
477
|
+
console.log('SDK:LOG: Received CLOSE_CLICKED from web');
|
|
478
|
+
|
|
479
|
+
setWaitingForUserClosedRedirect(true);
|
|
480
|
+
}
|
|
481
|
+
} catch (e) {
|
|
482
|
+
console.warn('SDK:LOG: Error parsing WebView message', e);
|
|
483
|
+
}
|
|
484
|
+
};
|
|
446
485
|
const handleWebViewLoadEnd = (syntheticEvent: any) => {
|
|
447
486
|
const loadedUrl = syntheticEvent?.nativeEvent?.url || url;
|
|
448
487
|
|
|
@@ -487,6 +526,7 @@ export const WebView = ({
|
|
|
487
526
|
setSupportMultipleWindows={false}
|
|
488
527
|
mixedContentMode="always"
|
|
489
528
|
allowsLinkPreview={true}
|
|
529
|
+
onMessage={handleMessage}
|
|
490
530
|
/>
|
|
491
531
|
</SafeAreaView>
|
|
492
532
|
);
|