2017-12-19 4 views
0

WebView의 웹 페이지 (Android 또는 iOS 앱)가 사용자 클라이언트 측의 흰색 화면인지 확인할 수있는 모니터링 시스템을 구현하려고합니다. 따라서 Google은 웹 페이지 오류 로그를 수집하고 개선을 위해 개발 팀에보고 할 수 있습니다. 우리의 in-app-webpages '안정성. 당신은 웹보기에로드 된 HTML 페이지의 배경색을 얻고 싶은 경우에WebView가 흰색 화면인지 확인하는 방법은 무엇입니까?

+1

웹 페이지의 내용을 표시하는 웹보기의 스냅 샷을 찍어야합니다. 그러나 이것은 [XY 문제] (https://meta.stackexchange.com/q/66377/364493)처럼 들리며 흰색 화면을 감지하는 대신 서버 응답을 처리해야 할 가능성이 큽니다. – the4kman

+0

Thanks @ the4kman. 하지만 XY 문제는 아니라고 생각합니다. 서버 측에서 안정적인 응답을 보낼 수 있는지 여부를 확인할 수도 있기 때문에 WebView에서 올바르게 렌더링 할 수 있는지 확인할 수는 없습니다. 가장 큰 상황 중 하나는 네트워크가 안정적이지 않았거나 중간자 공격이 일어 났을 가능성이 있다는 것입니다 (특히 중국에서는 ISP가 https가없는 페이지에 일부 광고를 삽입합니다). 그래서 우리는이 화이트 스크린 모니터링 시스템이 필요합니다 ~ –

+0

예, 스냅 샷을 시작하는 것이 좋습니다. 그러나 스냅 샷이 흰색 화면인지 어떻게 알 수 있습니까? –

답변

0

당신이 다음에 무엇을해야 :

private static final String SHOW_COLOR_SCRIPT = "var color = 
window.getComputedStyle(document.body, null). 
getPropertyValue('background-color');Android.showToast(color);"; 
  • 자바 스크립트 인터페이스를 만들기 자바 스크립트 함수

    1. 선언을

      public class WebAppInterface { 
      Context mContext; 
      
      /** Instantiate the interface and set the context */ 
      WebAppInterface(Context c) { 
          mContext = c; 
      } 
      
      /** Show a toast from the web page */ 
      @JavascriptInterface 
      public void showToast(String toast) { 
          Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show(); 
      } 
      } 
      
    2. 자바 스크립트 사용 설정 webview 및 se 실행이 방법

      private void runScript(String script) { 
      if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) { 
          mWebView.evaluateJavascript(script, null); 
      } else { 
          mWebView.loadUrl("javascript:" + script); 
      } 
      } 
      

    를 사용하여 HTML 본문 배경 색상으로 토스트를 표시 SHOW_COLOR_SCRIPT을 선언하지만, 웹보기 오류를 처리하는 것이 나쁜 결정은 자바 스크립트 인터페이스

    mWebView.getSettings().setJavaScriptEnabled(true); 
    mWebView.addJavascriptInterface(new WebAppInterface(this), "Android"); 
    
  • t. 여기를보십시오 Detecting Webview Error and Show Message

  • 관련 문제