2016-12-06 8 views
0

기본 Apps에서 Webview를로드하는 프로젝트에서 작업하고 있습니다.Android WebView - 오래된 기기에서만 페이지가로드 됨 (4.1.2)

응용 프로그램에는 이전 Android 장치 (4.1.2)에서만 올바르게로드되는 WebView가 포함되어 있습니다. 새 버전 (4.4 이상)에서는보기가 공백으로 유지됩니다.

나는 혼합 내용 설정 이미 시도 :

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); 
} 

을하지만 아무것도 변경 실 거예요. handler.proceed() 함수와 동일합니다.

@Override 
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { 
    handler.proceed(); // Ignore SSL certificate errors 
} 

웹 사이트는 자바 스크립트를 많이 포함하고, 그래서 내가 setDomStorageEnabled처럼도 다른 설정을 시도 등등 ... 가 실제로 환경 테스트 서버, 그래서 인증서가 우리 자신에 생성됩니다. 그래서 난 그냥 응용 프로그램을 테스트하고 게시 및 아마도 문제에 대해 생각하고 싶지 않아. 그러나 나는 logcat에서 오류를 얻지 못하므로, 정말로 모른다. 그 밖의 무엇이 잘못 될 수 있으며, 어떻게 더 조사 할 것인가.

답변

0

최신 장치를 디버깅 할 것을 권장합니다.
여기에 멋진 sample이 있습니다. 모든 요청과 응답을 디버깅 할 수 있으며 환상적인 JS 구성 요소를 모두 살펴볼 수 있습니다.

+0

감사합니다! 기술적으로 더 이상 사용되지 않는 메소드 (StringBufferInputStream) 때문에 오류가 발생했습니다. 디버거를 사용한 후에는 에뮬레이터에서만 메시지를보고 ByteArrayInputStream으로 변경했습니다. 이제 작동! – a2hur

+0

@ a2hur 흠, 귀하의 질문에 언급되지 않았습니다. 솔직히 내가 더 이상 사용되지 않는 메소드에 대한 그 진술을 잘 잡지 않았기 때문에 그 코드를 첨부 할 수 있습니까? –

+0

작동 코드를 사용하지 않음 : 'InputStream stream = new StringBufferInputStream (message); // [...]' 작업 코드 : 'ByteArrayInputStream stream = null; \t \t \t \t \t 시도 { \t \t \t \t \t \t 스트림 = 새이 InputStream (JsonFile.getBytes ("UTF-8")); \t \t \t \t \t} 캐치 (예외 : UnsupportedEncodingException 전자) { \t \t \t \t \t \t e.printStackTrace(); \t \t \t \t \t} \t \t \t \t \t 반환 새로운 WebResourceResponse ("텍스트/일반", "UTF-8", 스트림)' 나는이 문제에 대해 물었을 때, 나는 내가 웹보기가 올바른 처리 할 것을 thoght 및 나는 새로운 안드로이드 WebView를위한 약간의 추가가 필요하다. 크롬 디버거를 사용하여 스트림 변수에 대한 NullPointer를 받았습니다. – a2hur