如何避免重定向Url?

时间:2011-08-05 12:26:43

标签: android url

我必须在我的手机上打开Facebook,Facebook的浏览器版本。但在我的手机上我只能打开它的手机版。 如何避免重定向Url。

现在使用此代码。

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;

public class WebViewExample extends Activity {

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

其HelloWebViewClient类如下。

import android.webkit.WebView;
import android.webkit.WebViewClient;

public class HelloWebViewClient extends WebViewClient {

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

    @Override
    public void onLoadResource(WebView view, String url)
    {
        if (url.equals("http://www.facebook.com"))
        {
            //do your own thing here
            view.scrollTo(300, 0);
        }
        else
        {
            super.onLoadResource(view, url);
        }           
    }

M使用Android 2.3.4,我的设备是google Nexus one。 请建议我在哪里出错,以及我采取了哪些措施来避免这种类型的URL重定向。

2 个答案:

答案 0 :(得分:6)

User-Agent

之前设置loadUrl()标头
String yourUserAgent
   = "User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)";
yourWebView.getSettings().setUserAgentString(yourUserAgent);

我将检查最常用的用户代理是什么,但我认为这将完美地运作

经过测试和工作

Tested and working

答案 1 :(得分:2)

使用WebView.setUserAgentString(String ua)将用户代理字符串更改为桌面浏览器。这样,Facebook就不会知道用户是在手机上了。

More info

所有用户代理字符串的列表: http://www.useragentstring.com/pages/useragentstring.php