问题描述
通过参照本的WebView 教程,特别是这种方法
With reference to this WebView tutorial, in particular this method
private void setupWebView(){
String MAP_URL = "http://gmaps-samples.googlecode.com/svn/trunk/articles-android-webmap/simple-android-map.html";
String centerURL = "javascript:centerAt(" + mostRecentLocation.getLatitude() + ","+ mostRecentLocation.getLongitude()+ ")";
webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
//Wait for the page to load then send the location information
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url){
webView.loadUrl(centerURL);
}
});
webView.loadUrl(MAP_URL);
}
我发现,如果我把 webView.loadUrl(centerURL);
后直接 webView.loadUrl(MAP_URL);
像这样
private void setupWebView(){
String MAP_URL = "http://gmaps-samples.googlecode.com/svn/trunk/articles-android-webmap/simple-android-map.html";
String centerURL = "javascript:centerAt(" + mostRecentLocation.getLatitude() + "," + mostRecentLocation.getLongitude()+ ")";
webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
//Wait for the page to load then send the location information
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url){
//DO NOTHING
}
});
webView.loadUrl(MAP_URL);
webView.loadUrl(centerURL);
}
它不再起作用。因此, centreAt(..)
JavaScript方法包含的int MAP_URL
。
it no longer works. So the centreAt(..)
javascript method is contained int the MAP_URL
.
我不知道是否实际上已被加载的网址在 webView.loadUrl(..)
方法返回。它看起来是这样,因为上面的方法等待其运行的JavaScript之前完全加载
I'm wondering if the webView.loadUrl(..)
method returns before the url has actually been loaded.It looks that way since the top method waits for it to load fully before running the javascript
推荐答案
是 webView.loadUrl()
是异步的:它会立即返回,并不断的WebView在它自己的工作主题。
Yes, webView.loadUrl()
is asynchronous: it returns immediately and WebView keeps working in it's own thread.
要监视的WebView页面加载使用<$c$c>WebViewClient.onPageFinished(..)$c$c>:
To monitor WebView page loading use WebViewClient.onPageFinished(..)
:
webview.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
// do something here
}
});
这篇关于机器人的WebView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!