Android WebViewのページDOMを修正する必要があります(idやclassnameを使用していくつかの要素を隠し、関数やCSSスタイルのデフォルトimplsを置き換えてください)。私はWebViewClient.onPageLoaded
ではJavaScriptを注入しようとしました:Android WebViewでDOMを変更するには?
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
getSupportActionBar().setTitle("Finishing ");
getSupportActionBar().setSubtitle(url);
view.loadUrl("javascript:alert('hello world 2');");
getSupportActionBar().setTitle("Finished");
}
});
(実際には隠れてするのではなく、ここにJSで警告を示します)。これは、ロードされていないすべてのページが表示されるため、実際には望んでいないことです。 onPageStarted
で何らかの理由jsのロードについては
は動作しません - それは、元のURLをロードすることを防止する:
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
getSupportActionBar().setTitle("Started ");
getSupportActionBar().setSubtitle(url);
webView.evaluateJavascript("alert('hello world 1');", null);
// view.loadUrl("javascript:alert('hello world 1');") prevents too
}
は前にロードするページの開始をJS を注入することが可能ですか? WebView
にDOMイベントのコールバックを持つためのどんなトリックですか?
これは解決策ですが、元のページのスクリプトのために時々動作しない可能性があります。それを適切にするために私はhtmlを解析し、スクリプトチェーンを実行してスクリプトを実行させ、元のページのスクリプトを実行する必要があり、かなり難しいです。 BTW。実際の目的は要素を隠すことではなく、ラッパーを作成することまたは要素を不可視にするためにCSSを変更することでした。 – 4ntoine