Die Cordova-Brücke wird nach dem Fallback des biometrischen Passcodes unter iOS nicht ausgelöst (deviceready/document.reIOS

Programmierung für iOS
Anonymous
 Die Cordova-Brücke wird nach dem Fallback des biometrischen Passcodes unter iOS nicht ausgelöst (deviceready/document.re

Post by Anonymous »

Wir haben ein Problem in unserer iOS-Cordova-Hybrid-App (WKWebView) während der biometrischen → Passcode-Fallback-Authentifizierung.
Umgebung:
Cordova iOS 7.x (WKWebView)
Natives Plugin verarbeitet Face ID/Touch ID und Passcode-Fallback
Webebene ( ServletController) lädt Seiten über serverseitige Weiterleitung (keine vollständige Navigation)
Problembeschreibung:
  • Wenn die biometrische Authentifizierung erfolgreich ist → funktioniert alles normal.
  • Wenn die Passcode-Anmeldung direkt verwendet wird → funktioniert auch.
Aber Wenn die biometrische Messung fehlschlägt und auf den Passcode zurückgegriffen wird, passiert Folgendes:
Das native Plugin sendet zwei Rückrufe (biometrischer Fehler → Passcode erfolgreich). Der Passcode-Erfolgsrückruf lädt die Homepage in dasselbe WKWebView. Der HTML-Code wird angezeigt, aber document.ready und deviceready werden nie ausgelöst. Jeder Cordova-Aufruf (z. B. showHomeScreeninApp("success")) löst ReferenceError: Can't find variable: cordova aus. Wenn der Benutzer die App minimiert und erneut öffnet, funktioniert plötzlich alles.
Was wir vermuten:
Der native UIViewController, der den Passcode-Bildschirm verwaltet, reißt die Cordova-Brücke herunter oder trennt sie, wenn sie geschlossen wird, sodass der WebView-Kontext erhalten bleibt, die Brücke jedoch nicht mehr vorhanden ist. Der Webinhalt wird per Servlet-Weiterleitung neu geladen, aber es werden keine neuen Lebenszyklusereignisse ausgelöst.
Bisher versucht:
  • JS-Problemumgehung, die cordova.js erneut injiziert und deviceready erneut auslöst → funktioniert vorübergehend.
  • Überprüft, dass cordova.js vorhanden und geladen ist.
  • Das Problem tritt nur unter iOS auf, nicht unter Android.
Erwartetes Verhalten:
Nach erfolgreichem Passcode (auch wenn die Biometrie zuerst fehlgeschlagen ist) sollte WKWebView seine Cordova-Brücke behalten und den normalen Deviceready-/JS-Lebenszyklus auslösen, damit die Startseite ordnungsgemäß ausgeführt wird.
Frage:
Welche Änderungen sind auf der nativen iOS-Seite (Plugin oder WKWebView-Lebenszyklus) erforderlich, um die Cordova-Brücke aktiv zu halten oder sie nach dem Übergang von Biometrie zu Passcode wieder ordnungsgemäß anzuschließen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post