Force mobile version of website for WebView

不问归期 提交于 2019-12-18 05:08:29

问题


I'm loading an URL into a webview to display it into my app. The problem I'm encountering is, that not always the site recognizes that I'm a phone (why so ever?). How exactly do I force the webview to send to the site that I'm a mobile phone? Currently I'm doing it like that

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");

But that doesn't work? Won't it work because I'm not using an iPhone? I don't think that this is the reason since it's just setting the user Agent...

This is the relevant code (the irelevant code just contains data such as getting an url from an intent and formatting a string )

//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
}

I also tried out this string for the user agent

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


回答1:


try to put these following lines :-

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"); 


来源:https://stackoverflow.com/questions/19680979/force-mobile-version-of-website-for-webview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!