2017-12-19 20 views
0

WebViewのWebページ(AndroidまたはiOSアプリ)がユーザークライアント側で白い画面になっているかどうかを確認できる監視システムを実装しようとしているため、Webページのエラーログを収集し、 Googleのアプリ内ウェブページの安定性WebViewが白い画面であるかどうかをチェックする方法は?

+1

ウェブページのコンテンツを表示しているウェブビューのスナップショットを撮る必要があります。しかし、これは[XY問題](https://meta.stackexchange.com/q/66377/364493)のように聞こえ、白い画面を検出するのではなく、サーバーの応答を処理する必要があります。 – the4kman

+0

ありがとう@ the4kman。しかし、私たちがXYの問題ではないと思うのは、サーバ側が安定したレスポンスを送ることができても、WebViewで正しくレンダリングできるかどうかを確かめることができないからです。大きな状況の1つは、ネットワークが安定していないか、何人かのMan-in-the-middle攻撃が起こったということです(特に中国では、ISPはhttpsのないページに一部のADを注入します)。だから私たちはこの白い画面の監視システム〜 –

+0

が必要です。はい、スナップショットを撮るのが良いスタートです。しかし、スナップショットが白い画面であるかどうかをどのように知ることができますか? –

答えて

0

あなたは次をしなければならないのWebViewにロードされたHTMLページの背景色を取得したい場合:

  1. javascript関数を宣言

  2. javascriptのインタフェース

    を作成します。
    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(); 
    } 
    } 
    
  3. あなたのwebviewとseでjavascriptを有効にするトンのJavaScriptインターフェース

    mWebView.getSettings().setJavaScriptEnabled(true); 
    mWebView.addJavascriptInterface(new WebAppInterface(this), "Android"); 
    
  4. ランは方法

    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を宣言した。しかしWebViewのエラーを処理するためにそれは悪い決断です。ここをクリックしてくださいDetecting Webview Error and Show Message

関連する問題