2012-03-07 2 views
2

내 활동에는 특정 URL을 선택하여 WebView 컨트롤에서 열어 사용자에게 인증 페이지 (사용자 이름/암호)를 제공하는 인 텐트 필터가 있습니다. 인증이 끝나면 사용자는 바이너리 스트림 응답 (파일)을 받게됩니다. 해당 응답을 처리하고 스트림에서 데이터를 읽는 방법이 있습니까?WebView에서 이진 데이터 응답을 처리하는 방법

오버 라이드 된 shouldOverrideUrlLoading 메서드를 사용하여 사용자 지정 WebViewClient를 설치하려고했지만 앱이 거기에 가지 않습니다.

@Override 
mMyWebView.setWebViewClient(new CustomWebClient()); 
mMyWebView.loadUrl("http://xxx.xx.x.xx:xxxx/getCert"); 

... 
private class CustomWebClient extends WebViewClient 
{ 
    @Override 
    public boolean shouldOverrideUrlLoading (WebView view, String urlConection) 
    { 
     // break point here doesn't stop debugger 
     return true; 
    } 
} 

mMyWebView.setWebViewClient(new WebViewClient(){ 

    @Override 
    public boolean shouldOverrideUrlLoading (WebView view, String urlConection) 
    .... 
}); 

서버가 모두 내 응용 프로그램에서 같은 방법으로 요청에 반응하고 구축 된 브라우저 작동합니다. 빌드 - 인 브라우저가 응답으로받은 파일을 다운로드하기 시작하지만, 내 애플 리케이션은 아무 것도하지 않고 CustomWebClient 내에서 중단 점에 도달하지 않습니다. 이 부분을 테스트하기위한 별도의 앱으로 다른 부분은이 부분을 간섭하지 않습니다. 인터넷 & WRITE_EXTERNAL_STORAGE 사용 권한이 추가되었습니다.

편집 : 3 월 8 일 양육하십시오. httpClient와 함께 갈 것입니다.

+0

좋은 질문입니다. 가능한지 알고 싶습니다. 불행히도 WebView가 렌더링 한 웹 페이지를 제어 할 수는 없습니다. 이 작업을 수행하는 방법을 알고있는 유일한 방법은 PhoneGap을 구현하여 웹 코드를 앱과 통합하는 것입니다. – bbedward

+0

그것이 사실이라면 그것은 짜증이납니다. 아직 WebView의 구현을 재 작성하거나 (사소한 일은 아님) WebServices로 가서 HttpClient를 통해 통신을 구현하는 옵션이 있습니다. – Maxim

+0

코드가 괜찮은 것처럼 보이고 중단 점에 도달해야합니다 ... 다른 곳에서 문제가 발생했을 수 있습니다. – Caner

답변

1

이 WebView 메서드를 구현 했습니까?

void setDownloadListener (DownloadListener listener) 렌더링 엔진에서 콘텐츠를 처리 할 수 ​​없을 때 사용할 인터페이스를 등록하고 대신 다운로드해야합니다.

+0

좋은 지적, 고마워. 내 앱은 렌더링 된 대신 콘텐츠를 다운로드해야한다는 사실을 실제로 알립니다. 하지만 여전히 질문 ... 어떻게 다운로드를 처리 할 수 ​​있습니까? – Maxim

관련 문제