banking_dcb_sdk_react_native 1.0.773 → 1.0.775

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.
@@ -92,7 +92,8 @@ export const WebView = ({
92
92
  const webviewRef = useRef(null);
93
93
  const [canGoBack, setCanGoBack] = useState(false);
94
94
  const waitingForUserClosedRedirectRef = useRef(false);
95
- const [, setWaitingForUserClosedRedirect] = useState(false); // just if you want UI, otherwise skip
95
+ const hasUserClosedRef = useRef(false);
96
+ const canGoBackRef = useRef(false);
96
97
 
97
98
  // const [hasRedirected, setHasRedirected] = useState(false);
98
99
  const [, setToast] = useState(null);
@@ -295,69 +296,94 @@ export const WebView = ({
295
296
 
296
297
  const injectedJavaScript = `
297
298
  (function() {
298
- function isUserClosedRedirect(url) {
299
- if (!url) return false;
299
+ function safePost(msg) {
300
300
  try {
301
- var u = new URL(url, window.location.origin);
302
- if (u.pathname.indexOf('/api/user/redirect') === -1) return false;
303
- return u.searchParams.get('status') === 'USER_CLOSED';
304
- } catch (e) {
305
- return url.indexOf('/api/user/redirect?status=USER_CLOSED') !== -1;
306
- }
307
- }
308
-
309
- // Keep your RATE_LIMIT_USER error handler behavior
310
- var previousOnError = window.onerror || null;
311
- window.onerror = function(message, source, lineno, colno, error) {
312
- try {
313
- if (String(message || '').indexOf('RATE_LIMIT_USER') !== -1 &&
314
- window.ReactNativeWebView) {
315
- window.ReactNativeWebView.postMessage(JSON.stringify({
316
- type: 'RATE_LIMIT_ERROR'
317
- }));
301
+ if (window.ReactNativeWebView) {
302
+ window.ReactNativeWebView.postMessage(JSON.stringify(msg));
318
303
  }
319
304
  } catch (e) {}
320
- if (typeof previousOnError === 'function') {
321
- try { return previousOnError.apply(this, arguments); } catch (e) {}
322
- }
323
- };
305
+ }
324
306
 
325
- // Patch fetch only USER_CLOSED
326
- if (window.fetch) {
327
- var originalFetch = window.fetch;
328
- window.fetch = function() {
329
- try {
330
- var input = arguments[0];
331
- var url = typeof input === 'string'
332
- ? input
333
- : (input && input.url) || '';
334
- if (isUserClosedRedirect(url) && window.ReactNativeWebView) {
335
- window.ReactNativeWebView.postMessage(JSON.stringify({
336
- type: 'API_USER_CLOSED',
337
- via: 'fetch',
338
- url: url
339
- }));
340
- }
341
- } catch (e) {}
342
- return originalFetch.apply(this, arguments);
307
+ // Let RN know injection actually ran
308
+ safePost({
309
+ type: 'INJECT_READY',
310
+ href: window.location.href
311
+ });
312
+
313
+ // Spy on history.back()
314
+ if (window.history && typeof window.history.back === 'function') {
315
+ var originalBack = window.history.back;
316
+ window.history.back = function() {
317
+ safePost({
318
+ type: 'HISTORY_BACK_CALLED',
319
+ href: window.location.href
320
+ });
321
+ return originalBack.apply(this, arguments);
343
322
  };
344
323
  }
345
324
 
346
- // Patch XHR only USER_CLOSED
347
- if (window.XMLHttpRequest) {
348
- var originalOpen = XMLHttpRequest.prototype.open;
349
- XMLHttpRequest.prototype.open = function(method, url) {
350
- try {
351
- if (isUserClosedRedirect(url) && window.ReactNativeWebView) {
352
- window.ReactNativeWebView.postMessage(JSON.stringify({
353
- type: 'API_USER_CLOSED',
354
- via: 'xhr',
355
- url: url
356
- }));
325
+ // Spy on location.assign / replace
326
+ try {
327
+ var originalAssign = window.location.assign
328
+ ? window.location.assign.bind(window.location)
329
+ : null;
330
+ var originalReplace = window.location.replace
331
+ ? window.location.replace.bind(window.location)
332
+ : null;
333
+
334
+ if (originalAssign) {
335
+ window.location.assign = function(url) {
336
+ safePost({
337
+ type: 'LOCATION_ASSIGN',
338
+ url: url,
339
+ from: window.location.href
340
+ });
341
+ return originalAssign(url);
342
+ };
343
+ }
344
+
345
+ if (originalReplace) {
346
+ window.location.replace = function(url) {
347
+ safePost({
348
+ type: 'LOCATION_REPLACE',
349
+ url: url,
350
+ from: window.location.href
351
+ });
352
+ return originalReplace(url);
353
+ };
354
+ }
355
+
356
+ // Spy on direct href writes (best-effort)
357
+ try {
358
+ var currentHref = window.location.href;
359
+ Object.defineProperty(window.location, 'href', {
360
+ get: function() {
361
+ return currentHref;
362
+ },
363
+ set: function(val) {
364
+ safePost({
365
+ type: 'LOCATION_HREF_SET',
366
+ url: val,
367
+ from: currentHref
368
+ });
369
+ currentHref = val;
370
+ if (originalAssign) {
371
+ return originalAssign(val);
372
+ }
357
373
  }
358
- } catch (e) {}
359
- return originalOpen.apply(this, arguments);
360
- };
374
+ });
375
+ } catch (e) {
376
+ // Some browsers/WebViews don't allow redefining href; ignore
377
+ safePost({
378
+ type: 'LOCATION_HREF_PATCH_FAILED',
379
+ error: String(e)
380
+ });
381
+ }
382
+ } catch (e) {
383
+ safePost({
384
+ type: 'LOCATION_SPY_ERROR',
385
+ error: String(e)
386
+ });
361
387
  }
362
388
  })();
363
389
  true;
@@ -406,31 +432,30 @@ export const WebView = ({
406
432
  event.nativeEvent.deny();
407
433
  }
408
434
  };
409
- const setWaitingFlag = value => {
410
- waitingForUserClosedRedirectRef.current = value;
411
- setWaitingForUserClosedRedirect(value);
412
- };
413
435
  const handleMessage = event => {
414
436
  try {
415
437
  const data = JSON.parse(event.nativeEvent.data);
416
- if (data?.method === 'CLOSE_CLICKED') {
417
- console.log('SDK:LOG: Received CLOSE_CLICKED from web');
418
- // optional: just log, or set a flag, up to you
419
- return;
420
- }
421
- if (data?.type === 'API_USER_CLOSED') {
422
- console.log('SDK:LOG: USER_CLOSED intercepted via', data.via, 'url =', data.url);
423
- StatusBar.setBackgroundColor('#7E7E7EFF');
424
- clearAllCookies();
425
- onCallback?.(WebViewCallback.redirect('USER_CLOSED'));
438
+ console.log('SDK:LOG: onMessage data =', data);
439
+ if (data?.type === 'HISTORY_BACK_CALLED') {
440
+ console.log('SDK:LOG: HISTORY_BACK_CALLED at', data.href);
426
441
 
427
- // close the screen here if your host expects that
428
- // e.g. options?.onClose?.();
442
+ // If WebView has no back history, treat this as "user closed"
443
+ if (!canGoBackRef.current && !hasUserClosedRef.current) {
444
+ hasUserClosedRef.current = true;
445
+ console.log('SDK:LOG: No WebView history. Treating HISTORY_BACK as USER_CLOSED');
446
+ StatusBar.setBackgroundColor('#7E7E7EFF');
447
+ clearAllCookies();
448
+ onCallback?.(WebViewCallback.redirect('USER_CLOSED'));
449
+
450
+ // Now ask the host to close this WebView screen
451
+ // e.g. if this component is wrapped in a modal/screen, call:
452
+ // options?.onClose?.();
453
+ }
429
454
  return;
430
455
  }
431
- if (data?.type === 'RATE_LIMIT_ERROR') {
432
- // your existing RATE_LIMIT handling if any
433
- }
456
+
457
+ // keep other existing handlers if you need them
458
+ // e.g. CLOSE_CLICKED, API_USER_CLOSED from fetch/xhr, RATE_LIMIT_ERROR, etc.
434
459
  } catch (e) {
435
460
  console.warn('SDK:LOG: Error parsing WebView message', e);
436
461
  }
@@ -473,6 +498,7 @@ export const WebView = ({
473
498
  onNavigationStateChange: navState => {
474
499
  console.log('SDK:LOG: NAV STATE URL:', navState.url);
475
500
  setCanGoBack(navState.canGoBack);
501
+ canGoBackRef.current = navState.canGoBack;
476
502
  },
477
503
  injectedJavaScript: injectedJavaScript,
478
504
  decelerationRate: Platform.OS === 'ios' ? 'normal' : 0.9,
@@ -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","SendIntentAndroid","jsx","_jsx","PKG","gmail","outlook","yahoo","SCHEME","openMailAppIntent","app","OS","pkg","scheme","wasOpened","openApp","err","console","log","canOpen","canOpenURL","openURL","err2","isUserClosedRedirect","url","u","URL","pathname","includes","searchParams","get","clearAllCookies","clearAll","e","error","options","onCallback","hostName","whitelistedUrls","onPageFinished","webviewRef","canGoBack","setCanGoBack","waitingForUserClosedRedirectRef","setWaitingForUserClosedRedirect","setToast","handleExternalUrl","Promise","resolve","setTimeout","show","LONG","showToast_with_code_message","syntheticEvent","nativeEvent","errorCodesToHandle","code","message","description","visible","redirect","getQueryParam","param","match","RegExp","decodeURIComponent","downloadAndOpenFile","fileUrl","cookieString","cookies","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","setBackgroundColor","then","ok","status","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","setWaitingFlag","handleMessage","data","JSON","parse","method","type","via","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
+ {"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","isUserClosedRedirect","url","u","URL","pathname","includes","searchParams","get","clearAllCookies","clearAll","e","error","options","onCallback","hostName","whitelistedUrls","onPageFinished","webviewRef","canGoBack","setCanGoBack","waitingForUserClosedRedirectRef","hasUserClosedRef","canGoBackRef","setToast","handleExternalUrl","Promise","resolve","setTimeout","show","LONG","showToast_with_code_message","syntheticEvent","nativeEvent","errorCodesToHandle","code","message","description","visible","redirect","getQueryParam","param","match","RegExp","decodeURIComponent","downloadAndOpenFile","fileUrl","cookieString","cookies","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","setBackgroundColor","then","ok","status","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","type","href","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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G,CAACI,QAAQ,CAAC,sBAAsB,CAAC,EACpC;MACAX,OAAO,CAACC,GAAG,CAAC,sCAAsC,EAAEM,GAAG,CAAC;MACxD2C,mBAAmB,CAAC3C,GAAG,CAAC;MACxB,OAAO,KAAK;IACd;IAEA,OAAO,IAAI;EACb,CAAC;EAED,MAAMgG,gBAAgB,GAAGA,CAAA,KAAM;IAC7B,IAAI/E,SAAS,IAAID,UAAU,CAACiF,OAAO,EAAE;MACnCjF,UAAU,CAACiF,OAAO,CAACC,MAAM,CAAC,CAAC;MAC3B,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd,CAAC;EAEDpI,SAAS,CAAC,MAAM;IACd,MAAMqI,WAAW,GAAG7I,WAAW,CAAC8I,gBAAgB,CAC9C,mBAAmB,EACnBJ,gBACF,CAAC;IACD,OAAO,MAAM;MACXG,WAAW,CAACE,MAAM,CAAC,CAAC;IACtB,CAAC;EACH,CAAC,EAAE,CAACpF,SAAS,CAAC,CAAC;EAEf,MAAMqF,OAAO,GAAGA,CAAA,kBACd3H,IAAA,CAAChB,IAAI;IAAC4I,KAAK,EAAE;MAAEC,IAAI,EAAE,CAAC;MAAEC,cAAc,EAAE,QAAQ;MAAEC,UAAU,EAAE;IAAS,CAAE;IAAAC,QAAA,eACvEhI,IAAA,CAACjB,iBAAiB;MAACkJ,IAAI,EAAC;IAAO,CAAE;EAAC,CAC9B,CACP;;EAED;;EAEA,MAAMC,kBAAkB,GAAG;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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","ignoreList":[]}
@@ -1 +1 @@
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;AAuBD,eAAO,MAAM,OAAO,GAAI,0EAOrB,kBAAkB,4CAsepB,CAAC"}
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;AAuBD,eAAO,MAAM,OAAO,GAAI,0EAOrB,kBAAkB,4CA6fpB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "banking_dcb_sdk_react_native",
3
- "version": "1.0.773",
3
+ "version": "1.0.775",
4
4
  "description": "React Native package for partner integrating with DCB",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/module/index.js",
@@ -144,7 +144,9 @@ export const WebView = ({
144
144
  const webviewRef = useRef<RNWebView | null>(null);
145
145
  const [canGoBack, setCanGoBack] = useState(false);
146
146
  const waitingForUserClosedRedirectRef = useRef(false);
147
- const [, setWaitingForUserClosedRedirect] = useState(false); // just if you want UI, otherwise skip
147
+ const hasUserClosedRef = useRef(false);
148
+
149
+ const canGoBackRef = useRef(false);
148
150
 
149
151
  // const [hasRedirected, setHasRedirected] = useState(false);
150
152
  const [, setToast] = useState<{ visible: boolean; message: string } | null>(
@@ -405,69 +407,94 @@ export const WebView = ({
405
407
 
406
408
  const injectedJavaScript = `
407
409
  (function() {
408
- function isUserClosedRedirect(url) {
409
- if (!url) return false;
410
- try {
411
- var u = new URL(url, window.location.origin);
412
- if (u.pathname.indexOf('/api/user/redirect') === -1) return false;
413
- return u.searchParams.get('status') === 'USER_CLOSED';
414
- } catch (e) {
415
- return url.indexOf('/api/user/redirect?status=USER_CLOSED') !== -1;
416
- }
417
- }
418
-
419
- // Keep your RATE_LIMIT_USER error handler behavior
420
- var previousOnError = window.onerror || null;
421
- window.onerror = function(message, source, lineno, colno, error) {
410
+ function safePost(msg) {
422
411
  try {
423
- if (String(message || '').indexOf('RATE_LIMIT_USER') !== -1 &&
424
- window.ReactNativeWebView) {
425
- window.ReactNativeWebView.postMessage(JSON.stringify({
426
- type: 'RATE_LIMIT_ERROR'
427
- }));
412
+ if (window.ReactNativeWebView) {
413
+ window.ReactNativeWebView.postMessage(JSON.stringify(msg));
428
414
  }
429
415
  } catch (e) {}
430
- if (typeof previousOnError === 'function') {
431
- try { return previousOnError.apply(this, arguments); } catch (e) {}
432
- }
433
- };
416
+ }
434
417
 
435
- // Patch fetch only USER_CLOSED
436
- if (window.fetch) {
437
- var originalFetch = window.fetch;
438
- window.fetch = function() {
439
- try {
440
- var input = arguments[0];
441
- var url = typeof input === 'string'
442
- ? input
443
- : (input && input.url) || '';
444
- if (isUserClosedRedirect(url) && window.ReactNativeWebView) {
445
- window.ReactNativeWebView.postMessage(JSON.stringify({
446
- type: 'API_USER_CLOSED',
447
- via: 'fetch',
448
- url: url
449
- }));
450
- }
451
- } catch (e) {}
452
- return originalFetch.apply(this, arguments);
418
+ // Let RN know injection actually ran
419
+ safePost({
420
+ type: 'INJECT_READY',
421
+ href: window.location.href
422
+ });
423
+
424
+ // Spy on history.back()
425
+ if (window.history && typeof window.history.back === 'function') {
426
+ var originalBack = window.history.back;
427
+ window.history.back = function() {
428
+ safePost({
429
+ type: 'HISTORY_BACK_CALLED',
430
+ href: window.location.href
431
+ });
432
+ return originalBack.apply(this, arguments);
453
433
  };
454
434
  }
455
435
 
456
- // Patch XHR only USER_CLOSED
457
- if (window.XMLHttpRequest) {
458
- var originalOpen = XMLHttpRequest.prototype.open;
459
- XMLHttpRequest.prototype.open = function(method, url) {
460
- try {
461
- if (isUserClosedRedirect(url) && window.ReactNativeWebView) {
462
- window.ReactNativeWebView.postMessage(JSON.stringify({
463
- type: 'API_USER_CLOSED',
464
- via: 'xhr',
465
- url: url
466
- }));
436
+ // Spy on location.assign / replace
437
+ try {
438
+ var originalAssign = window.location.assign
439
+ ? window.location.assign.bind(window.location)
440
+ : null;
441
+ var originalReplace = window.location.replace
442
+ ? window.location.replace.bind(window.location)
443
+ : null;
444
+
445
+ if (originalAssign) {
446
+ window.location.assign = function(url) {
447
+ safePost({
448
+ type: 'LOCATION_ASSIGN',
449
+ url: url,
450
+ from: window.location.href
451
+ });
452
+ return originalAssign(url);
453
+ };
454
+ }
455
+
456
+ if (originalReplace) {
457
+ window.location.replace = function(url) {
458
+ safePost({
459
+ type: 'LOCATION_REPLACE',
460
+ url: url,
461
+ from: window.location.href
462
+ });
463
+ return originalReplace(url);
464
+ };
465
+ }
466
+
467
+ // Spy on direct href writes (best-effort)
468
+ try {
469
+ var currentHref = window.location.href;
470
+ Object.defineProperty(window.location, 'href', {
471
+ get: function() {
472
+ return currentHref;
473
+ },
474
+ set: function(val) {
475
+ safePost({
476
+ type: 'LOCATION_HREF_SET',
477
+ url: val,
478
+ from: currentHref
479
+ });
480
+ currentHref = val;
481
+ if (originalAssign) {
482
+ return originalAssign(val);
483
+ }
467
484
  }
468
- } catch (e) {}
469
- return originalOpen.apply(this, arguments);
470
- };
485
+ });
486
+ } catch (e) {
487
+ // Some browsers/WebViews don't allow redefining href; ignore
488
+ safePost({
489
+ type: 'LOCATION_HREF_PATCH_FAILED',
490
+ error: String(e)
491
+ });
492
+ }
493
+ } catch (e) {
494
+ safePost({
495
+ type: 'LOCATION_SPY_ERROR',
496
+ error: String(e)
497
+ });
471
498
  }
472
499
  })();
473
500
  true;
@@ -537,41 +564,36 @@ export const WebView = ({
537
564
  }
538
565
  };
539
566
 
540
- const setWaitingFlag = (value: boolean) => {
541
- waitingForUserClosedRedirectRef.current = value;
542
- setWaitingForUserClosedRedirect(value);
543
- };
544
-
545
567
  const handleMessage = (event: WebViewMessageEvent) => {
546
568
  try {
547
569
  const data = JSON.parse(event.nativeEvent.data);
570
+ console.log('SDK:LOG: onMessage data =', data);
548
571
 
549
- if (data?.method === 'CLOSE_CLICKED') {
550
- console.log('SDK:LOG: Received CLOSE_CLICKED from web');
551
- // optional: just log, or set a flag, up to you
552
- return;
553
- }
572
+ if (data?.type === 'HISTORY_BACK_CALLED') {
573
+ console.log('SDK:LOG: HISTORY_BACK_CALLED at', data.href);
554
574
 
555
- if (data?.type === 'API_USER_CLOSED') {
556
- console.log(
557
- 'SDK:LOG: USER_CLOSED intercepted via',
558
- data.via,
559
- 'url =',
560
- data.url
561
- );
575
+ // If WebView has no back history, treat this as "user closed"
576
+ if (!canGoBackRef.current && !hasUserClosedRef.current) {
577
+ hasUserClosedRef.current = true;
562
578
 
563
- StatusBar.setBackgroundColor('#7E7E7EFF');
564
- clearAllCookies();
565
- onCallback?.(WebViewCallback.redirect('USER_CLOSED'));
579
+ console.log(
580
+ 'SDK:LOG: No WebView history. Treating HISTORY_BACK as USER_CLOSED'
581
+ );
582
+
583
+ StatusBar.setBackgroundColor('#7E7E7EFF');
584
+ clearAllCookies();
585
+ onCallback?.(WebViewCallback.redirect('USER_CLOSED'));
586
+
587
+ // Now ask the host to close this WebView screen
588
+ // e.g. if this component is wrapped in a modal/screen, call:
589
+ // options?.onClose?.();
590
+ }
566
591
 
567
- // close the screen here if your host expects that
568
- // e.g. options?.onClose?.();
569
592
  return;
570
593
  }
571
594
 
572
- if (data?.type === 'RATE_LIMIT_ERROR') {
573
- // your existing RATE_LIMIT handling if any
574
- }
595
+ // keep other existing handlers if you need them
596
+ // e.g. CLOSE_CLICKED, API_USER_CLOSED from fetch/xhr, RATE_LIMIT_ERROR, etc.
575
597
  } catch (e) {
576
598
  console.warn('SDK:LOG: Error parsing WebView message', e);
577
599
  }
@@ -614,6 +636,7 @@ export const WebView = ({
614
636
  onNavigationStateChange={(navState) => {
615
637
  console.log('SDK:LOG: NAV STATE URL:', navState.url);
616
638
  setCanGoBack(navState.canGoBack);
639
+ canGoBackRef.current = navState.canGoBack;
617
640
  }}
618
641
  injectedJavaScript={injectedJavaScript}
619
642
  decelerationRate={Platform.OS === 'ios' ? 'normal' : 0.9}