0

Ich habe eine URL wie http://username:[email protected]:port//test/test.mjepd.cgi. Es streamt tatsächlich eine Kamera im App-Browser.Inapp-Browser-Basis-Authentifizierung funktioniert nicht

Allerdings funktioniert es in Laptop und Computer nicht in der mobilen Web-Ansicht. Es lädt einfach nicht.

Durch einige Foren kam ich zu wissen, dass die Weitergabe von grundlegenden Authentifizierungsdaten nicht in Mobile Web Browser Appview Browser unterstützt wird.

Jede Hilfe zu diesem wird sehr geschätzt.

Antwort

0

Option 1: die Authorization Header auf die Anfrage hinzufügen:

HashMap<String, String> headers = new HashMap<String, String>(); 
    String auth = "Basic " + Base64.encodeToString(password.getBytes("UTF-8"), Base64.NO_WRAP); 
    headers.put("Authorization", auth); 
    webview.loadUrl(url, headers); 

Option 2: Behandeln Sie die Authentifizierung über einen Rückruf:

webview.setWebViewClient(new WebViewClient() { 
     public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) { 
      if (realm.equals(expectedRealm) && host.equals(ipaddress)) { 
       handler.proceed(username, password); 
      } else { 
       handler.cancel(); 
      } 
     } 
    }); 

auch: wenn Sie grundlegende auth verwenden müssen, tun Sie sich selbst ein Gefallen und verwenden https:; Passwörter nicht im Klartext senden.

+0

Diese URL ruft eine Kamera auf, die wiederum zu streamen beginnt. Da OPTIONS nicht aktiviert ist, kann ich dies nicht mit Headern aufrufen. Auch ich verwende ionische, das hybride Rahmenwerk. Es unterstützt onReceivedHttpAuthRequest mit keinem der verfügbaren Plugins. – Naju

+0

Entschuldigung, habe das Hybrid-Mobile-App-Tag nicht bemerkt. Ich habe mich nie mit Ionic oder Cordova oder Angular.js entwickelt. Ich habe eine Reihe von Dokumenten durchgesehen, und ich bin mir sicher, dass es einen Weg gibt, dies entweder durch ein benutzerdefiniertes Plugin oder ein benutzerdefiniertes Angular-Modul zu tun. Hoffentlich kann jemand mit ionischen Erfahrungen antworten. Eine andere Idee, die ich hatte, war, Ihre Zugangsdaten an Abfrageparameter in der URL zu übergeben und den Server/Firewall die URL neu schreiben zu lassen, um die Zugangsdaten an den richtigen Ort zu verschieben. Apache mod_write schreibt die URLs vor der Authentifizierung neu, so scheint es, als ob es funktionieren sollte. –

Verwandte Themen