banking_dcb_sdk_react_native 1.0.75 → 1.0.77
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.
|
@@ -8,7 +8,6 @@ import { check, PERMISSIONS, request, RESULTS } from 'react-native-permissions';
|
|
|
8
8
|
import FileViewer from 'react-native-file-viewer';
|
|
9
9
|
import RNFS from 'react-native-fs';
|
|
10
10
|
import CookieManager from '@react-native-cookies/cookies';
|
|
11
|
-
import { AnalyticsLogger } from "./analytics/analytics_logger.js";
|
|
12
11
|
import SendIntentAndroid from 'react-native-send-intent';
|
|
13
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
13
|
const PKG = {
|
|
@@ -47,7 +46,7 @@ export async function openMailAppIntent(app) {
|
|
|
47
46
|
return true;
|
|
48
47
|
}
|
|
49
48
|
} catch (err) {
|
|
50
|
-
console.log(`[mailIntent] openApp(${pkg}) failed:`, err);
|
|
49
|
+
console.log(`SDK:LOG: [mailIntent] openApp(${pkg}) failed:`, err);
|
|
51
50
|
}
|
|
52
51
|
|
|
53
52
|
// Step 2: Fallback to the custom scheme.
|
|
@@ -58,16 +57,16 @@ export async function openMailAppIntent(app) {
|
|
|
58
57
|
return true;
|
|
59
58
|
}
|
|
60
59
|
} catch (err2) {
|
|
61
|
-
console.log(`[mailIntent] Linking fallback (${scheme}) failed:`, err2);
|
|
60
|
+
console.log(`SDK:LOG: [mailIntent] Linking fallback (${scheme}) failed:`, err2);
|
|
62
61
|
}
|
|
63
62
|
return false;
|
|
64
63
|
}
|
|
65
64
|
const clearAllCookies = async () => {
|
|
66
65
|
try {
|
|
67
66
|
await CookieManager.clearAll(true);
|
|
68
|
-
console.log('clearing cookies');
|
|
67
|
+
console.log('SDK:LOG: clearing cookies');
|
|
69
68
|
} catch (e) {
|
|
70
|
-
console.error('Failed to clear cookies:', e);
|
|
69
|
+
console.error('SDK:LOG: Failed to clear cookies:', e);
|
|
71
70
|
}
|
|
72
71
|
};
|
|
73
72
|
export const WebView = ({
|
|
@@ -80,7 +79,7 @@ export const WebView = ({
|
|
|
80
79
|
}) => {
|
|
81
80
|
const webviewRef = useRef(null);
|
|
82
81
|
const [canGoBack, setCanGoBack] = useState(false);
|
|
83
|
-
const
|
|
82
|
+
const [waitingForUserClosedRedirect, setWaitingForUserClosedRedirect] = useState(false);
|
|
84
83
|
// const [hasRedirected, setHasRedirected] = useState(false);
|
|
85
84
|
const [, setToast] = useState(null);
|
|
86
85
|
const handleExternalUrl = async url => {
|
|
@@ -93,7 +92,7 @@ export const WebView = ({
|
|
|
93
92
|
if (Platform.OS === 'android') {
|
|
94
93
|
ToastAndroid.show('Oops! Something went wrong. Please try again.', ToastAndroid.LONG);
|
|
95
94
|
}
|
|
96
|
-
console.log('Application not found to open link');
|
|
95
|
+
console.log('SDK:LOG: Application not found to open link');
|
|
97
96
|
}
|
|
98
97
|
};
|
|
99
98
|
const showToast_with_code_message = syntheticEvent => {
|
|
@@ -129,7 +128,7 @@ export const WebView = ({
|
|
|
129
128
|
};
|
|
130
129
|
const downloadAndOpenFile = async fileUrl => {
|
|
131
130
|
try {
|
|
132
|
-
console.log('Starting file download...', fileUrl);
|
|
131
|
+
console.log('SDK:LOG: Starting file download...', fileUrl);
|
|
133
132
|
|
|
134
133
|
// Get cookies using CookieManager
|
|
135
134
|
let cookieString = '';
|
|
@@ -137,7 +136,7 @@ export const WebView = ({
|
|
|
137
136
|
const cookies = await CookieManager.get(fileUrl);
|
|
138
137
|
cookieString = Object.keys(cookies).map(key => `${key}=${cookies[key]?.value ?? ''}`).join('; ');
|
|
139
138
|
} catch (e) {
|
|
140
|
-
console.error('Failed to get cookies:', e);
|
|
139
|
+
console.error('SDK:LOG: Failed to get cookies:', e);
|
|
141
140
|
}
|
|
142
141
|
|
|
143
142
|
// Create a clean filename from the URL
|
|
@@ -154,7 +153,7 @@ export const WebView = ({
|
|
|
154
153
|
if (!downloadPath) {
|
|
155
154
|
throw new Error('Could not determine download path');
|
|
156
155
|
}
|
|
157
|
-
console.log('Downloading to:', downloadPath);
|
|
156
|
+
console.log('SDK:LOG: Downloading to:', downloadPath);
|
|
158
157
|
const options = {
|
|
159
158
|
fromUrl: fileUrl,
|
|
160
159
|
toFile: downloadPath,
|
|
@@ -165,12 +164,12 @@ export const WebView = ({
|
|
|
165
164
|
},
|
|
166
165
|
background: true,
|
|
167
166
|
begin: res => {
|
|
168
|
-
console.log('Download started with headers:', res);
|
|
167
|
+
console.log('SDK:LOG: Download started with headers:', res);
|
|
169
168
|
}
|
|
170
169
|
};
|
|
171
170
|
const response = await RNFS.downloadFile(options).promise;
|
|
172
171
|
if (response.statusCode === 200) {
|
|
173
|
-
console.log('File downloaded to:', downloadPath);
|
|
172
|
+
console.log('SDK:LOG: File downloaded to:', downloadPath);
|
|
174
173
|
if (Platform.OS === 'android') {
|
|
175
174
|
ToastAndroid.show('File downloaded successfully', ToastAndroid.SHORT);
|
|
176
175
|
}
|
|
@@ -186,45 +185,55 @@ export const WebView = ({
|
|
|
186
185
|
throw new Error(`Download failed with status ${response.statusCode}`);
|
|
187
186
|
}
|
|
188
187
|
} catch (error) {
|
|
189
|
-
console.error('File download/open error:', error);
|
|
188
|
+
console.error('SDK:LOG: File download/open error:', error);
|
|
190
189
|
}
|
|
191
190
|
};
|
|
192
191
|
const handleOnShouldStartLoadWithRequest = event => {
|
|
193
192
|
const {
|
|
194
193
|
url
|
|
195
194
|
} = event;
|
|
196
|
-
console.log('URL:', url);
|
|
195
|
+
console.log('SDK:LOG: WEBVIEW URL:', url);
|
|
197
196
|
if (url === 'about:blank' || url === 'about:srcdoc') {
|
|
198
197
|
return true;
|
|
199
198
|
}
|
|
199
|
+
if (waitingForUserClosedRedirect && (url?.includes('/session-expired?status=') || url?.includes('/redirect?status=') || url?.includes('/api/user/redirect'))) {
|
|
200
|
+
console.log('SDK:LOG: waitingForUserClosedRedirect overriding url');
|
|
201
|
+
const status = getQueryParam(url, 'status');
|
|
202
|
+
setWaitingForUserClosedRedirect(false);
|
|
203
|
+
console.log('SDK:LOG: Status thrown from webview ', status);
|
|
204
|
+
StatusBar.setBackgroundColor('#7E7E7EFF');
|
|
205
|
+
clearAllCookies();
|
|
206
|
+
onCallback?.(WebViewCallback.redirect(status ?? 'USER_CLOSED'));
|
|
207
|
+
return false;
|
|
208
|
+
}
|
|
200
209
|
if (Platform.OS === 'android' && url) {
|
|
201
210
|
if (url.includes('ms-outlook://')) {
|
|
202
|
-
console.log('Intent to open Outlook detected');
|
|
211
|
+
console.log('SDK:LOG: Intent to open Outlook detected');
|
|
203
212
|
openMailAppIntent('outlook').then(ok => !ok && ToastAndroid.show('Outlook app not found', ToastAndroid.SHORT));
|
|
204
213
|
return false; // cancel WebView navigation
|
|
205
214
|
}
|
|
206
215
|
if (url.includes('googlegmail://')) {
|
|
207
|
-
console.log('Intent to open Gmail detected');
|
|
216
|
+
console.log('SDK:LOG: Intent to open Gmail detected');
|
|
208
217
|
openMailAppIntent('gmail').then(ok => !ok && ToastAndroid.show('Gmail app not found', ToastAndroid.SHORT));
|
|
209
218
|
return false;
|
|
210
219
|
}
|
|
211
220
|
if (url.includes('ymail://')) {
|
|
212
|
-
console.log('Intent to open Yahoo Mail detected');
|
|
221
|
+
console.log('SDK:LOG: Intent to open Yahoo Mail detected');
|
|
213
222
|
openMailAppIntent('yahoo').then(ok => !ok && ToastAndroid.show('Yahoo Mail app not found', ToastAndroid.SHORT));
|
|
214
223
|
return false;
|
|
215
224
|
}
|
|
216
225
|
}
|
|
217
226
|
if (url?.includes('/session-expired?status=') || url?.includes('/redirect?status=')) {
|
|
218
|
-
console.log('overriding url');
|
|
227
|
+
console.log('SDK:LOG: overriding url');
|
|
219
228
|
const status = getQueryParam(url, 'status');
|
|
220
|
-
console.log('Status thrown from webview ', status);
|
|
229
|
+
console.log('SDK:LOG: Status thrown from webview ', status);
|
|
221
230
|
StatusBar.setBackgroundColor('#7E7E7EFF');
|
|
222
231
|
clearAllCookies();
|
|
223
232
|
onCallback?.(WebViewCallback.redirect(status ?? undefined));
|
|
224
233
|
return false;
|
|
225
234
|
}
|
|
226
235
|
if (url?.includes('/api/user/redirect')) {
|
|
227
|
-
console.log('overriding redirect url');
|
|
236
|
+
console.log('SDK:LOG: overriding redirect url');
|
|
228
237
|
StatusBar.setBackgroundColor('#7E7E7EFF');
|
|
229
238
|
clearAllCookies();
|
|
230
239
|
onCallback?.(WebViewCallback.redirect('SESSION_EXPIRED'));
|
|
@@ -234,12 +243,12 @@ export const WebView = ({
|
|
|
234
243
|
// Handle whitelisted URLs
|
|
235
244
|
const isWhitelisted = whitelistedUrls.some(white => url.includes(white)) || hostName && url.includes(hostName);
|
|
236
245
|
if (!isWhitelisted && url && url !== 'about:blank' && url !== 'about:srcdoc') {
|
|
237
|
-
console.log('External URL detected:', url);
|
|
246
|
+
console.log('SDK:LOG: External URL detected:', url);
|
|
238
247
|
handleExternalUrl(url);
|
|
239
248
|
return false;
|
|
240
249
|
}
|
|
241
250
|
if (url.includes('.pdf') || url.includes('/statements/') || url.includes('/download_statements')) {
|
|
242
|
-
console.log('File download URL detected:', url);
|
|
251
|
+
console.log('SDK:LOG: File download URL detected:', url);
|
|
243
252
|
downloadAndOpenFile(url);
|
|
244
253
|
return false;
|
|
245
254
|
}
|
|
@@ -290,7 +299,7 @@ export const WebView = ({
|
|
|
290
299
|
}
|
|
291
300
|
return result === RESULTS.GRANTED;
|
|
292
301
|
} catch (error) {
|
|
293
|
-
console.error('Permission request failed:', error);
|
|
302
|
+
console.error('SDK:LOG: Permission request failed:', error);
|
|
294
303
|
return false;
|
|
295
304
|
}
|
|
296
305
|
};
|
|
@@ -298,7 +307,7 @@ export const WebView = ({
|
|
|
298
307
|
const {
|
|
299
308
|
resources
|
|
300
309
|
} = event.nativeEvent;
|
|
301
|
-
console.log('Permission requested:', resources);
|
|
310
|
+
console.log('SDK:LOG: Permission requested:', resources);
|
|
302
311
|
const permissionsToRequest = [];
|
|
303
312
|
if (resources.includes('video')) {
|
|
304
313
|
permissionsToRequest.push(Platform.OS === 'ios' ? PERMISSIONS.IOS.CAMERA : PERMISSIONS.ANDROID.CAMERA);
|
|
@@ -320,11 +329,22 @@ export const WebView = ({
|
|
|
320
329
|
event.nativeEvent.deny();
|
|
321
330
|
}
|
|
322
331
|
} catch (error) {
|
|
323
|
-
console.error('Permission handling failed:', error);
|
|
332
|
+
console.error('SDK:LOG: Permission handling failed:', error);
|
|
324
333
|
// @ts-ignore - deny exists on the event
|
|
325
334
|
event.nativeEvent.deny();
|
|
326
335
|
}
|
|
327
336
|
};
|
|
337
|
+
const handleMessage = event => {
|
|
338
|
+
try {
|
|
339
|
+
const data = JSON.parse(event.nativeEvent.data);
|
|
340
|
+
if (data?.method === 'CLOSE_CLICKED') {
|
|
341
|
+
console.log('SDK:LOG: Received CLOSE_CLICKED from web');
|
|
342
|
+
setWaitingForUserClosedRedirect(true);
|
|
343
|
+
}
|
|
344
|
+
} catch (e) {
|
|
345
|
+
console.warn('SDK:LOG: Error parsing WebView message', e);
|
|
346
|
+
}
|
|
347
|
+
};
|
|
328
348
|
const handleWebViewLoadEnd = syntheticEvent => {
|
|
329
349
|
const loadedUrl = syntheticEvent?.nativeEvent?.url || url;
|
|
330
350
|
onPageFinished?.();
|
|
@@ -369,7 +389,8 @@ export const WebView = ({
|
|
|
369
389
|
sharedCookiesEnabled: true,
|
|
370
390
|
setSupportMultipleWindows: false,
|
|
371
391
|
mixedContentMode: "always",
|
|
372
|
-
allowsLinkPreview: true
|
|
392
|
+
allowsLinkPreview: true,
|
|
393
|
+
onMessage: handleMessage
|
|
373
394
|
})
|
|
374
395
|
});
|
|
375
396
|
};
|
|
@@ -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","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","waitingForUserClosedRedirect","setWaitingForUserClosedRedirect","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;AAED,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,4CAgZpB,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,
|
|
@@ -89,7 +92,7 @@ export async function openMailAppIntent(app: MailApp): Promise<boolean> {
|
|
|
89
92
|
return true;
|
|
90
93
|
}
|
|
91
94
|
} catch (err) {
|
|
92
|
-
console.log(`[mailIntent] openApp(${pkg}) failed:`, err);
|
|
95
|
+
console.log(`SDK:LOG: [mailIntent] openApp(${pkg}) failed:`, err);
|
|
93
96
|
}
|
|
94
97
|
|
|
95
98
|
// Step 2: Fallback to the custom scheme.
|
|
@@ -100,7 +103,10 @@ export async function openMailAppIntent(app: MailApp): Promise<boolean> {
|
|
|
100
103
|
return true;
|
|
101
104
|
}
|
|
102
105
|
} catch (err2) {
|
|
103
|
-
console.log(
|
|
106
|
+
console.log(
|
|
107
|
+
`SDK:LOG: [mailIntent] Linking fallback (${scheme}) failed:`,
|
|
108
|
+
err2
|
|
109
|
+
);
|
|
104
110
|
}
|
|
105
111
|
|
|
106
112
|
return false;
|
|
@@ -109,9 +115,9 @@ export async function openMailAppIntent(app: MailApp): Promise<boolean> {
|
|
|
109
115
|
const clearAllCookies = async () => {
|
|
110
116
|
try {
|
|
111
117
|
await CookieManager.clearAll(true);
|
|
112
|
-
console.log('clearing cookies');
|
|
118
|
+
console.log('SDK:LOG: clearing cookies');
|
|
113
119
|
} catch (e) {
|
|
114
|
-
console.error('Failed to clear cookies:', e);
|
|
120
|
+
console.error('SDK:LOG: Failed to clear cookies:', e);
|
|
115
121
|
}
|
|
116
122
|
};
|
|
117
123
|
|
|
@@ -125,7 +131,8 @@ export const WebView = ({
|
|
|
125
131
|
}: WebViewCustomProps) => {
|
|
126
132
|
const webviewRef = useRef<RNWebView | null>(null);
|
|
127
133
|
const [canGoBack, setCanGoBack] = useState(false);
|
|
128
|
-
const
|
|
134
|
+
const [waitingForUserClosedRedirect, setWaitingForUserClosedRedirect] =
|
|
135
|
+
useState(false);
|
|
129
136
|
// const [hasRedirected, setHasRedirected] = useState(false);
|
|
130
137
|
const [, setToast] = useState<{ visible: boolean; message: string } | null>(
|
|
131
138
|
null
|
|
@@ -143,7 +150,7 @@ export const WebView = ({
|
|
|
143
150
|
ToastAndroid.LONG
|
|
144
151
|
);
|
|
145
152
|
}
|
|
146
|
-
console.log('Application not found to open link');
|
|
153
|
+
console.log('SDK:LOG: Application not found to open link');
|
|
147
154
|
}
|
|
148
155
|
};
|
|
149
156
|
const showToast_with_code_message = (syntheticEvent: any) => {
|
|
@@ -184,7 +191,7 @@ export const WebView = ({
|
|
|
184
191
|
|
|
185
192
|
const downloadAndOpenFile = async (fileUrl: string) => {
|
|
186
193
|
try {
|
|
187
|
-
console.log('Starting file download...', fileUrl);
|
|
194
|
+
console.log('SDK:LOG: Starting file download...', fileUrl);
|
|
188
195
|
|
|
189
196
|
// Get cookies using CookieManager
|
|
190
197
|
let cookieString = '';
|
|
@@ -194,7 +201,7 @@ export const WebView = ({
|
|
|
194
201
|
.map((key) => `${key}=${cookies[key]?.value ?? ''}`)
|
|
195
202
|
.join('; ');
|
|
196
203
|
} catch (e) {
|
|
197
|
-
console.error('Failed to get cookies:', e);
|
|
204
|
+
console.error('SDK:LOG: Failed to get cookies:', e);
|
|
198
205
|
}
|
|
199
206
|
|
|
200
207
|
// Create a clean filename from the URL
|
|
@@ -214,7 +221,7 @@ export const WebView = ({
|
|
|
214
221
|
throw new Error('Could not determine download path');
|
|
215
222
|
}
|
|
216
223
|
|
|
217
|
-
console.log('Downloading to:', downloadPath);
|
|
224
|
+
console.log('SDK:LOG: Downloading to:', downloadPath);
|
|
218
225
|
|
|
219
226
|
const options = {
|
|
220
227
|
fromUrl: fileUrl,
|
|
@@ -226,14 +233,14 @@ export const WebView = ({
|
|
|
226
233
|
},
|
|
227
234
|
background: true,
|
|
228
235
|
begin: (res: any) => {
|
|
229
|
-
console.log('Download started with headers:', res);
|
|
236
|
+
console.log('SDK:LOG: Download started with headers:', res);
|
|
230
237
|
},
|
|
231
238
|
};
|
|
232
239
|
|
|
233
240
|
const response = await RNFS.downloadFile(options).promise;
|
|
234
241
|
|
|
235
242
|
if (response.statusCode === 200) {
|
|
236
|
-
console.log('File downloaded to:', downloadPath);
|
|
243
|
+
console.log('SDK:LOG: File downloaded to:', downloadPath);
|
|
237
244
|
|
|
238
245
|
if (Platform.OS === 'android') {
|
|
239
246
|
ToastAndroid.show('File downloaded successfully', ToastAndroid.SHORT);
|
|
@@ -251,20 +258,37 @@ export const WebView = ({
|
|
|
251
258
|
throw new Error(`Download failed with status ${response.statusCode}`);
|
|
252
259
|
}
|
|
253
260
|
} catch (error) {
|
|
254
|
-
console.error('File download/open error:', error);
|
|
261
|
+
console.error('SDK:LOG: File download/open error:', error);
|
|
255
262
|
}
|
|
256
263
|
};
|
|
257
264
|
|
|
258
265
|
const handleOnShouldStartLoadWithRequest = (event: WebViewNavigation) => {
|
|
259
266
|
const { url } = event;
|
|
260
|
-
console.log('URL:', url);
|
|
267
|
+
console.log('SDK:LOG: WEBVIEW URL:', url);
|
|
261
268
|
if (url === 'about:blank' || url === 'about:srcdoc') {
|
|
262
269
|
return true;
|
|
263
270
|
}
|
|
271
|
+
if (
|
|
272
|
+
waitingForUserClosedRedirect &&
|
|
273
|
+
(url?.includes('/session-expired?status=') ||
|
|
274
|
+
url?.includes('/redirect?status=') ||
|
|
275
|
+
url?.includes('/api/user/redirect'))
|
|
276
|
+
) {
|
|
277
|
+
console.log('SDK:LOG: waitingForUserClosedRedirect overriding url');
|
|
278
|
+
const status = getQueryParam(url, 'status');
|
|
279
|
+
|
|
280
|
+
setWaitingForUserClosedRedirect(false);
|
|
264
281
|
|
|
282
|
+
console.log('SDK:LOG: Status thrown from webview ', status);
|
|
283
|
+
|
|
284
|
+
StatusBar.setBackgroundColor('#7E7E7EFF');
|
|
285
|
+
clearAllCookies();
|
|
286
|
+
onCallback?.(WebViewCallback.redirect(status ?? 'USER_CLOSED'));
|
|
287
|
+
return false;
|
|
288
|
+
}
|
|
265
289
|
if (Platform.OS === 'android' && url) {
|
|
266
290
|
if (url.includes('ms-outlook://')) {
|
|
267
|
-
console.log('Intent to open Outlook detected');
|
|
291
|
+
console.log('SDK:LOG: Intent to open Outlook detected');
|
|
268
292
|
openMailAppIntent('outlook').then(
|
|
269
293
|
(ok) =>
|
|
270
294
|
!ok &&
|
|
@@ -273,7 +297,7 @@ export const WebView = ({
|
|
|
273
297
|
return false; // cancel WebView navigation
|
|
274
298
|
}
|
|
275
299
|
if (url.includes('googlegmail://')) {
|
|
276
|
-
console.log('Intent to open Gmail detected');
|
|
300
|
+
console.log('SDK:LOG: Intent to open Gmail detected');
|
|
277
301
|
openMailAppIntent('gmail').then(
|
|
278
302
|
(ok) =>
|
|
279
303
|
!ok && ToastAndroid.show('Gmail app not found', ToastAndroid.SHORT)
|
|
@@ -281,7 +305,7 @@ export const WebView = ({
|
|
|
281
305
|
return false;
|
|
282
306
|
}
|
|
283
307
|
if (url.includes('ymail://')) {
|
|
284
|
-
console.log('Intent to open Yahoo Mail detected');
|
|
308
|
+
console.log('SDK:LOG: Intent to open Yahoo Mail detected');
|
|
285
309
|
openMailAppIntent('yahoo').then(
|
|
286
310
|
(ok) =>
|
|
287
311
|
!ok &&
|
|
@@ -295,10 +319,10 @@ export const WebView = ({
|
|
|
295
319
|
url?.includes('/session-expired?status=') ||
|
|
296
320
|
url?.includes('/redirect?status=')
|
|
297
321
|
) {
|
|
298
|
-
console.log('overriding url');
|
|
322
|
+
console.log('SDK:LOG: overriding url');
|
|
299
323
|
const status = getQueryParam(url, 'status');
|
|
300
324
|
|
|
301
|
-
console.log('Status thrown from webview ', status);
|
|
325
|
+
console.log('SDK:LOG: Status thrown from webview ', status);
|
|
302
326
|
|
|
303
327
|
StatusBar.setBackgroundColor('#7E7E7EFF');
|
|
304
328
|
clearAllCookies();
|
|
@@ -306,7 +330,7 @@ export const WebView = ({
|
|
|
306
330
|
return false;
|
|
307
331
|
}
|
|
308
332
|
if (url?.includes('/api/user/redirect')) {
|
|
309
|
-
console.log('overriding redirect url');
|
|
333
|
+
console.log('SDK:LOG: overriding redirect url');
|
|
310
334
|
|
|
311
335
|
StatusBar.setBackgroundColor('#7E7E7EFF');
|
|
312
336
|
clearAllCookies();
|
|
@@ -325,7 +349,7 @@ export const WebView = ({
|
|
|
325
349
|
url !== 'about:blank' &&
|
|
326
350
|
url !== 'about:srcdoc'
|
|
327
351
|
) {
|
|
328
|
-
console.log('External URL detected:', url);
|
|
352
|
+
console.log('SDK:LOG: External URL detected:', url);
|
|
329
353
|
handleExternalUrl(url);
|
|
330
354
|
return false;
|
|
331
355
|
}
|
|
@@ -334,7 +358,7 @@ export const WebView = ({
|
|
|
334
358
|
url.includes('/statements/') ||
|
|
335
359
|
url.includes('/download_statements')
|
|
336
360
|
) {
|
|
337
|
-
console.log('File download URL detected:', url);
|
|
361
|
+
console.log('SDK:LOG: File download URL detected:', url);
|
|
338
362
|
downloadAndOpenFile(url);
|
|
339
363
|
return false;
|
|
340
364
|
}
|
|
@@ -390,14 +414,14 @@ export const WebView = ({
|
|
|
390
414
|
|
|
391
415
|
return result === RESULTS.GRANTED;
|
|
392
416
|
} catch (error) {
|
|
393
|
-
console.error('Permission request failed:', error);
|
|
417
|
+
console.error('SDK:LOG: Permission request failed:', error);
|
|
394
418
|
return false;
|
|
395
419
|
}
|
|
396
420
|
};
|
|
397
421
|
|
|
398
422
|
const handlePermissionRequest = async (event: any) => {
|
|
399
423
|
const { resources } = event.nativeEvent;
|
|
400
|
-
console.log('Permission requested:', resources);
|
|
424
|
+
console.log('SDK:LOG: Permission requested:', resources);
|
|
401
425
|
|
|
402
426
|
const permissionsToRequest: Permission[] = [];
|
|
403
427
|
|
|
@@ -437,12 +461,25 @@ export const WebView = ({
|
|
|
437
461
|
event.nativeEvent.deny();
|
|
438
462
|
}
|
|
439
463
|
} catch (error) {
|
|
440
|
-
console.error('Permission handling failed:', error);
|
|
464
|
+
console.error('SDK:LOG: Permission handling failed:', error);
|
|
441
465
|
// @ts-ignore - deny exists on the event
|
|
442
466
|
event.nativeEvent.deny();
|
|
443
467
|
}
|
|
444
468
|
};
|
|
445
469
|
|
|
470
|
+
const handleMessage = (event: WebViewMessageEvent) => {
|
|
471
|
+
try {
|
|
472
|
+
const data = JSON.parse(event.nativeEvent.data);
|
|
473
|
+
|
|
474
|
+
if (data?.method === 'CLOSE_CLICKED') {
|
|
475
|
+
console.log('SDK:LOG: Received CLOSE_CLICKED from web');
|
|
476
|
+
|
|
477
|
+
setWaitingForUserClosedRedirect(true);
|
|
478
|
+
}
|
|
479
|
+
} catch (e) {
|
|
480
|
+
console.warn('SDK:LOG: Error parsing WebView message', e);
|
|
481
|
+
}
|
|
482
|
+
};
|
|
446
483
|
const handleWebViewLoadEnd = (syntheticEvent: any) => {
|
|
447
484
|
const loadedUrl = syntheticEvent?.nativeEvent?.url || url;
|
|
448
485
|
|
|
@@ -487,6 +524,7 @@ export const WebView = ({
|
|
|
487
524
|
setSupportMultipleWindows={false}
|
|
488
525
|
mixedContentMode="always"
|
|
489
526
|
allowsLinkPreview={true}
|
|
527
|
+
onMessage={handleMessage}
|
|
490
528
|
/>
|
|
491
529
|
</SafeAreaView>
|
|
492
530
|
);
|