0

나는 http://username:[email protected]:port//test/test.mjepd.cgi과 같은 URL을 가지고 있습니다. 사실 앱 브라우저에서 카메라를 스트리밍합니다.InApp 브라우저 기본 인증이 작동하지 않습니다.

그러나 모바일 웹보기가 아닌 노트북과 컴퓨터에서 작동합니다. 간단하지 않습니다.

일부 포럼을 통해 나는 기본 인증 자격 증명을 전달하는 것이 모바일 브라우저의 앱 브라우저에서 지원되지 않는다는 것을 알게되었습니다.

이 문제에 대한 도움을 주시면 매우 감사하겠습니다.

답변

0

옵션 1 :

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 : 요청에 Authorization 헤더를 추가 또한

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가 활성화되어 있지 않으므로 헤더와 함께 호출 할 수 없습니다. 또한 하이브리드 프레임 워크 인 ionic을 사용하고 있습니다. 사용 가능한 플러그인으로 onReceivedHttpAuthRequest를 지원하지 않습니다. – Naju

+0

사과, hybrid-mobile-app 태그를 알지 못했습니다. Ionic, Cordova 또는 Angular.js로 개발 한 적이 없습니다. 나는 많은 문서들을 살펴 보았고, 커스텀 플러그인이나 커스텀 앵귤러 모듈을 통해이 작업을 수행 할 방법이 있다고 확신한다. 희망적으로 이오니아 경험을 가진 누군가가 대답 할 수 있습니다. 내가 가진 또 다른 아이디어는 URL의 쿼리 매개 변수에 대한 자격 증명을 전달하고 서버/방화벽에서 자격 증명을 올바른 위치로 이동하도록 URL을 다시 작성하게하는 것입니다. Apache mod_write는 인증 전에 URL을 다시 작성하므로 작동해야합니다. –