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のロゴを自分のものに置き換えることはできますか?
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]'");
}
}
簡単に言えば、ページがロードされるのを待ちます。次に、loadUrl( "javascript:[your javascript here]")を実行します。
直接ではありません。ブックマークレットと同じように、現在のWebページのコンテキストでloadUrl()
を介してJavaScriptコードを呼び出すことができます。ただし、JavaコードからDOMに直接アクセスすることはできません。