0

我写了这个应用程序来访问一个网页。我已经实现了一个设置来选择是访问网站的移动版本还是桌面版本(我知道设置用户代理是一个肮脏的黑客)。

它在我的 Galaxy Tab 2 上运行良好,但在我的 Xperia S 上却不行。而且我不知道为什么..

link = getIntent().getExtras().getString("link");
    webView = (WebView) findViewById(R.id.webView1);


    webView.getSettings().setBuiltInZoomControls(true);
    webView.getSettings().setJavaScriptEnabled(true);

    webView.setWebChromeClient(new WebChromeClient() {
        public void onProgressChanged(WebView view, int progress) {
            activity.setProgress(progress * 100);
        }
    });

    webView.setWebViewClient(new Callback());

    SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);  
    if(settings.getString("user_agent", "Mobil").equals("Mobil")){
        link = link.substring(24);
        link = "http://mobilsiden.mobi"+link;
        webView.getSettings().setUserAgentString("Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19");
    }else{
        webView.getSettings().setUserAgentString("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120427 Firefox/15.0a1");
    }

    webView.loadUrl(link);

有没有比更改用户代理更好的解决方案(我想不出任何)?谁能明白为什么它可以在一台设备上运行,而在另一台设备上却不行?

提前致谢!

4

0 回答 0