为WebView强制移动版网站

时间:2013-10-30 11:29:09

标签: java android mobile webview

我正在将网址加载到网页视图中以将其显示在我的应用中。我遇到的问题是,并不总是网站认识到我是一部手机(为什么这么做?)。我如何强制webview发送到我是手机的网站?目前我正在这样做

webview.getSettings().setUserAgentString("Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3");

但这不起作用?它不会起作用,因为我没有使用iPhone吗?我不认为这是因为它只是设置用户代理......

这是相关代码(相关代码只包含数据,例如从意图中获取网址并格式化字符串)

//package

//imports

public class WebViewing extends Activity {

    private WebView webview;
    private ProgressDialog dialog;

    //init strings

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webviewer);

        ActionBar actionBar = getActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);

        //init variables

        //get intent data and format string


        this.webview = (WebView) findViewById(R.id.webView1);
        webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
        webview.getSettings().setUserAgentString("Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3"); 
        webview.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                if (dialog.isShowing()) {
                    dialog.dismiss();
                }
            }

            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });
        dialog.setMessage("Website wird geladen...\nDies ist abh\u00E4ngig von deiner Internet-Verbindung.");
        dialog.setCanceledOnTouchOutside(false);
        dialog.show();
        webview.loadUrl(sourceURL);
        setTitle("Platz: " + plusRank + " - " + realDate);

    }

    //onCreateOptionsMenu method

    //onOptionsItemSelected method
}

我还为用户代理

尝试了这个字符串

Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

2 个答案:

答案 0 :(得分:10)

尝试将以下几行放在: -

webview.getSettings().setJavaScriptEnabled(true);
 webview.getSettings().setUserAgentString("Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3"); 

答案 1 :(得分:0)

我知道我参加聚会已经太晚了。但是,希望它能帮助仍然面临同样问题的人,我会在这里写下我的解决方案。

接受的答案对我不起作用。以下是。

Java:

webView.getSettings().setJavaScriptEnabled(true)
webView.getSettings().setUseWideViewPort(true)

科特林:

webView.settings.javaScriptEnabled = true
webView.settings.useWideViewPort = true

祝你好运,编码愉快!