私の Android アプリは、JS コードを WebView に挿入します。Android 3.1 を対象としていますが、WebView が内部でクロムになっているため、Android 6 および 7 で問題が発生しているため、古い WebView ではありません。
それにもかかわらず、問題は非常に奇妙であるため、アプリが Android 6 および 7 に強制する quirksmode が原因ではないと思います。
私のアプリは、すべての便利な呼び出しを使用して、Java コードと JS コードの間のバインディングを作成する JS インターフェースをロードし、以前のバージョンで動作します。これらの指示 (addJavascriptInterface() メソッド) の後、「偽の」読み込みを実行して、JS インターフェースが確実に読み込まれるようにします。
webView.loadData("", "text/html", null);
「ページ」が読み込まれると、実際の URL、つまりローカル ファイル (file:///...) の読み込みが実行されます。これも読み込まれると、スクリプトが挿入されて実行されます。
私が経験したことは、ログ cat で次のエラーが継続的に発生することです。
Cannot call determinedVisibility() - never saw a connection for the pid:
私はこれについてSOで見つかったさまざまな提案を試みましたが、成功しませんでした:
何度も何度もロードされ続けるのは「data:text/html」URLであり、空のURLのロードのみを停止できますが、JSインターフェイスが失われます。
JS インターフェイスを維持し、無限の読み込みループをブロックするにはどうすればよいですか?