0

AndroidアプリがJSViewをWebViewに挿入します。それはAndroid 3.1の対象ですが、WebViewがクロムの内側にあるため、Android 6と7の問題が発生しています。古いWebViewではありません。ターゲットがAndroid 3.1の場合、Android Chromium WebViewでJavaScriptインジェクションが動作しません

それでも問題はので、私はAndroidの6にそれがあるためquirksmodeの私のアプリの力ではないと思います非常に奇妙で、7

私のアプリは、バインディングを作成するJSインタフェースをロードするためにすべての有用な呼び出しを使用していますJavaコードとJSコードの間にあり、以前のバージョンでも動作します。これらの命令(addJavascriptInterface()メソッド)後 がJSインタフェースがロードされていることを確認するための「偽」ローディング実行:

webView.loadData("", "text/html", null); 

および「ページ」がロードされるとき、それは、実際のURLの読み込みを行いますこれはローカルファイル(file:/// ...)です。これもロードされると、スクリプトが注入されて実行されます。

私は何を体験することは、私は継続的にログの猫に次のエラーを取得することです:

Cannot call determinedVisibility() - never saw a connection for the pid: 

と私はSO、この程度で見られる様々な提案を試みたが、ない成功:

それは "ですdata:text/html "urlは何度も何度も読み込まれ続けます。空のURLをロードするだけですが、JSインターフェイスが失われてしまいます。

JSインターフェースを保持し、無限ロードループをブロックするにはどうすればよいですか?

答えて

0

この種の問題は、WebインターフェイスにJSインターフェイスを効果的に追加するための最初の「偽の」呼び出しを変更することで修正されました。

この指示に上述の方法であって、

webView.loadData("", "text/html", null); 

それは4.4および5.x、上にも失敗することができるように(これは、デバイスに依存することができるアンドロイドの6.xより古いバージョンでのみ働い私のアプリは両方で働いていた)。

だからすべてのバージョンに取り組んで右の方法は、(最初​​の1が完了したときに新しいロードを実行する)、二回

をターゲットファイルをロードすることですか、単純なHTMLのように(別のファイルをロードすることも可能です最初に読み込みが完了したら、ターゲットファイルを読み込みます。

関連する問題