我在这里看到了几篇关于实现WebviewClient的文章,以便webview中的转换保留在webview中,而不是转到浏览器。当我尝试运行我的应用程序时,webview加载但它仍然无法解决页面转换问题。是否有可能我需要用“On Create”替换“shouldoveride”?
public class WebViewActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WebView wv = (WebView) findViewById(R.id.webview1);
WebSettings webSettings = wv.getSettings();
webSettings.setBuiltInZoomControls(true);
wv.loadUrl("http://www.yahoo.com");
}
private class Callback extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return(true);
}
}
}
答案 0 :(得分:1)
如果您只是想在WebView
内显示所有页面而不是在默认浏览器中打开,那么您只需要指定WebViewClient
。甚至不需要创建扩展WebViewClient
wv.setWebViewClient(new WebViewClient());
答案 1 :(得分:1)
您没有将WebViewClient
分配给WebView。这样做:
wv.setWebViewClient(new Callback());
答案 2 :(得分:0)
或者只需添加WebViewClient()
和WebChromeClient()
:
WebView wv = (WebView) findViewById(R.id.webview1);
wv.setWebViewClient(new WebViewClient());
wv.setWebChromeClient(new WebChromeClient());
使用WebChromeClient
可以处理Javascript对话框,图标,标题和进度