我在我的应用程序中使用webview并使用代码提供硬编码的URL。所有的东西都工作得非常好,但是当我在10.1英寸平板电脑上测试时,有一件事就出现了。我提供的网址与手机配合得很好,但在平板电脑上,它会将自身重定向到桌面版的网址。
知道如何防止这种情况发生。我正在使用此网址:http://search.yahoo.com/mobile/s?submit=oneSearch&.intl=us&.lang=en&.tsrc=yahoo&.sep=fp&x=0&y=0&p=bike
我在网址中特别提到了移动设备,但它仍然是重定向的。任何想法.. ??
答案 0 :(得分:0)
为了处理重定向,您需要使用WebViewClient
然后覆盖 shouldOverrideUrlLoading 方法。
“当一个新的url即将加载到当前的WebView中时,让主机应用程序有机会接管控件。如果没有提供WebViewClient,默认情况下WebView会要求Activity Manager选择正确的处理程序如果提供了WebViewClient,则返回true表示主机应用程序处理url,而return false表示当前WebView处理URL。“
答案 1 :(得分:0)
需要使用webview客户端
WebView web = (WebView) findViewById(R.id.webView1);
web.loadUrl(myurl.trim());
web.setWebViewClient(new HelloWebViewClient());
private class HelloWebViewClient extends WebViewClient
{
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
Log.i(General.TAG,Tag+"Page Loading is Started...");
web.setVisibility(View.GONE);
pbr.setVisibility(View.VISIBLE);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
Log.i(General.TAG,Tag+"Page Loading is Finished");
web.setVisibility(View.VISIBLE);
pbr.setVisibility(View.GONE);
web.requestFocus();
}
}
答案 2 :(得分:0)
mWebview.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
mWebview.setVisibility(View.GONE);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
mWebview.setVisibility(View.VISIBLE);
mWebview.requestFocus();
}
public void onLoadResource(WebView view, String url) {
mWebview.loadUrl("javascript:(function() { "
+ "document.getElementsByTagName('header')[0].style.display = 'none'; "
+ "})()");
mWebview.loadUrl("javascript:(function() { "
+ "document.getElementsByTagName('footer')[0].style.display = 'none'; "
+ "})()");
mWebview.loadUrl("javascript:(function() { "
+ "document.getElementsByTagName('section').search_again.style.display = 'none'; "
+ "})()");
}
});
mWebview.loadUrl("http://search.yahoo.com/mobile/s?submit=oneSearch&.intl=us&.lang=en&.tsrc=yahoo&.sep=fp&x=0&y=0&p=bike");
setContentView(mWebview);