0

У меня есть URL-адрес, как http://username:[email protected]:port//test/test.mjepd.cgi. На самом деле это поток камеры в браузере приложений.Inapp браузер базовая аутентификация не работает

Однако он работает в ноутбуке и компьютере, а не в мобильном веб-виде. Это простой не загружается.

Перейдя по некоторым форумам, я узнал, что прохождение базовых учетных данных для проверки подлинности не поддерживается в мобильных браузерах браузера приложений.

Любая помощь по этому поводу высоко ценится.

ответ

0

Вариант 1: Добавьте заголовок Authorization к запросу:

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); 

Вариант 2: Ручка аутентификации с помощью обратного вызова:

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(); 
      } 
     } 
    }); 

Кроме того: если вы должны использовать основную авторизацию, сделать самостоятельно пользу и использование https:; не отправляйте пароли в ясном тексте.

+0

Этот url вызывает камеру, которая, в свою очередь, начинает работать. У него нет OPTIONS, поэтому я не могу назвать это с заголовками. Также я использую ионную гибридную структуру. он не поддерживает onReceivedHttpAuthRequest с любым из доступных плагинов. – Naju

+0

Извините, не заметил тег hybrid-mobile-app. Я никогда не развивался с помощью Ionic, или Cordova, или Angular.js. Я просмотрел кучу документов, и я уверен, что есть способ сделать это либо через пользовательский плагин, либо с помощью специального модуля Angular. Надеюсь, кто-то с опытом Иона может ответить. Еще одна идея, которую я имел, заключается в передаче ваших учетных данных по параметрам запроса в URL-адресе, а сервер/брандмауэр переписывает URL-адрес, чтобы перевести учетные данные в нужное место. Apache mod_write переписывает URL-адреса до аутентификации, поэтому кажется, что он должен работать. –

 Смежные вопросы

  • Нет связанных вопросов^_^