在 Android Webview 中,我可以修改网页的 DOM 吗?

新手上路,请多包涵

假设我通过 webview 加载了一个第三方 URL。

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        webview = (WebView) findViewById(R.id.webview);
        webview.setWebViewClient(new HelloWebViewClient());
        webview.getSettings().setJavaScriptEnabled(true);
        webview.setWebChromeClient(new MyWebChromeClient());
        webview.loadUrl("http://ebay.com");
    }

我是否可以 在这个 WebView 中注入一些东西 来用我自己的替换 ebay 徽标?

原文由 TIMEX 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 455
1 个回答

扩展 CommonsWare 的正确答案:

 WebView webview = new WebView();
webview.setWebViewClient(new WebClient());
webView.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("stackoverflow.com");

然后在 WebClient 中:

 public class WebClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }

    @Override
    public void onPageFinished(WebView view, String url)
    {
        // Obvious next step is: document.forms[0].submit()
        view.loadUrl("javascript:document.forms[0].q.value='[android]'");
    }
}

简而言之,您等待页面加载。然后你加载Url(“javascript:[你的javascript在这里]”)。

原文由 Carlos Rendon 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题