Настройка на WebView за преглед на настолен сайт, а не на мобилен сайт

Направих доста проучвания за Stack Overflow и много изследвания в Google, но нищо, което намирам, всъщност не работи за мен. Искам сайтът да преглежда настолния сайт вместо мобилния сайт. Как да направя това? Искам директно да отиде на сайта за работния плот.

WebView myWebView = (WebView) findViewById(R.id.webview); 
    myWebView.loadUrl("http://www.apotter96.webs.com/");
}

person user2039764    schedule 04.02.2013    source източник
comment
Не си мислете, че това наистина е възможно, тъй като зависи от вас какво прави сайтът им, когато забележи, че сте мобилен. Може би, ако разберете как го разпознават и запазват, можете да го манипулирате с някакъв javascript или каквото и да е   -  person Stefan de Bruijn    schedule 04.02.2013
comment
Как трябва да използвам javascript, за да направя това?   -  person user2039764    schedule 04.02.2013
comment
Звучи сякаш търсите някакъв метод за промяна на агентния низ на потребителя? Търсили ли сте, че изглежда има доста ресурси, когато го потърся в Google.   -  person Grambot    schedule 04.02.2013
comment
Можете да използвате setDesktopMode(true) от тази библиотека или да прочетете как е реализиран.   -  person caw    schedule 30.03.2016
comment
настройка myWebView.setInitialScale(100); работи за мен, но преди myWebView.loadUrl() add webView.setWebViewClient(new WebViewClient());   -  person Kifayat Ullah    schedule 16.06.2019


Отговори (10)


Променете потребителския агент на webview

 String newUA="Foo/"; // Change this to desired UA

като

 String newUA= "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.4) Gecko/20100101 Firefox/4.0";
 mWebView.getSettings().setUserAgentString(newUA);
person baboo    schedule 04.02.2013
comment
Как да активирам Flash Player? - person user2039764; 04.02.2013
comment
опитайте това stackoverflow .com/questions/6596243/ - person baboo; 04.02.2013
comment
Това работи добре, но получих страничен ефект поради използването на тази настройка. Уеб изгледът не се унищожава в onDestroy() на дейността. Използвам mWebView.destroy(); във функцията onDestroy на дейността - person user2041902; 05.07.2013
comment
@BhanuSharma Публикувах отговора си, можете да проверите това и да ме уведомите - person Vignesh; 13.06.2019
comment
следете за низ на потребителски агент, сега е леко променен и също така включва chrome версия. това може да повлияе на крайния резултат ... вижте официалния сайт на разработчика: developer.android.com/ guide/webapps/migrating#UserAgent - person Muahmmad Tayyib; 25.11.2020

Можете да използвате WebView, за да покажете изглед като сайт за настолен компютър, който да се побере в мобилен дисплей.

        webView = (WebView)findViewById(R.id.webView1);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setLoadWithOverviewMode(true);
        webView.getSettings().setUseWideViewPort(true);

        webView.getSettings().setSupportZoom(true);
        webView.getSettings().setBuiltInZoomControls(true);
        webView.getSettings().setDisplayZoomControls(false);

        webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
        webView.setScrollbarFadingEnabled(false);
person Abhijeet Sharma    schedule 16.09.2015
comment
тази настройка работи като чар. - person bastami82; 30.10.2016

Този метод ви помага да зададете DesktopMode на webview

public void setDesktopMode(WebView webView,boolean enabled) {
    String newUserAgent = webView.getSettings().getUserAgentString();
    if (enabled) {
        try {
            String ua = webView.getSettings().getUserAgentString();
            String androidOSString = webView.getSettings().getUserAgentString().substring(ua.indexOf("("), ua.indexOf(")") + 1);
            newUserAgent = webView.getSettings().getUserAgentString().replace(androidOSString, "(X11; Linux x86_64)");
        } catch (Exception e) {
            e.printStackTrace();
        }
    } else {
        newUserAgent = null;
    }

    webView.getSettings().setUserAgentString(newUserAgent);
    webView.getSettings().setUseWideViewPort(enabled);
    webView.getSettings().setLoadWithOverviewMode(enabled);
    webView.reload();
}

Наречете го така

Мобилен режим: setDesktopMode(webView, false);

Режим на работния плот: setDesktopMode(webView, true);

person Amine Harbaoui    schedule 04.08.2017
comment
Това проработи при мен - person Anand; 26.02.2021

Единственото решение, което работи за мен (javascript ще се изпълнява много пъти, но това е единственото работещо решение за момента)

        @Override
        public void onLoadResource(WebView view, String url) {
           view.evaluateJavascript("document.querySelector('meta[name=\"viewport\"]').setAttribute('content', 'width=1024px, initial-scale=' + (document.documentElement.clientWidth / 1024));", null);
        }

Можете също да зададете UA низ за настолен компютър

webView.getSettings().setUserAgentString("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36");
person Sali Manaf    schedule 10.03.2020
comment
Всичко останало тук е просто за потребителския агент, който не е достатъчен за много уеб сайтове. Този работи и за мен, благодаря за споделянето. Това трябва да е приетият отговор, докато не се появи нещо по-добро. - person Slion; 14.06.2020
comment
Опитах няколко неща да открия, за да намаля първоначалния мащаб, за да пасне на екрана, но не бях доволен от нито едно. Изглежда, че ще го оставя на 1.0 и ще оставя потребителя да намали засега. - person Slion; 14.06.2020
comment
Намерих го: view.evaluateJavascript(document.querySelector('meta[name=\viewport\]').setAttribute('content', 'width=1024px, initial-scale=' + (window.screen.width / 1024)) ;, нула) - person Slion; 14.06.2020
comment
Трябва също така да се уверите, че широкият прозорец за изглед е активиран: webView.getSettings().setUseWideViewPort(true); - person Slion; 14.06.2020
comment
@Slion ми спаси нощта!! :P - person Muahmmad Tayyib; 25.11.2020

Малка актуализация на приетия отговор. Това е новият низ. Написах това, защото някой имаше проблем с „Актуализиране на браузъра“ в коментарите.

String newUA= "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1";
mWebView.getSettings().setUserAgentString(newUA);
person J.Doe    schedule 16.07.2018

Ако имате грешка при актуализиране на браузъра, можете да опитате това, за да зададете UA на apple safari или да замените UA с Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0 Това работи на 100% за мен.

webview =(WebView)findViewById(R.id.webView);
        webview.getSettings().setMinimumFontSize(12);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.getSettings().setLoadWithOverviewMode(true);
        webview.getSettings().setUseWideViewPort(true);
        webview.getSettings().setSupportZoom(true);
        webview.getSettings().setBuiltInZoomControls(true);
        webview.getSettings().setDisplayZoomControls(false);
        webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
        webview.setScrollbarFadingEnabled(false);
        String newUA= "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Safari/602.1.50";
        webview.getSettings().setUserAgentString(newUA);
        webview.loadUrl("https://solveforum.com");
person Android Master    schedule 15.10.2018

Някои сайтове не използват потребителски агент, за да определят дали след това трябва да показват мобилната или настолната версия на страницата. Някои страници използват размера на екрана, за да направят това.

Създавам приложение за използване на страница в десктоп режим, но то не работи правилно. Винаги показвайте мобилната версия, защото страницата използва размера на екрана, а не низа на потребителския агент.

person TunebaGamer    schedule 31.10.2019

Трябва да промените потребителския агент: http://developer.android.com/reference/android/webkit/WebSettings.html#setUserAgentString(java.lang.String)

Ето един пример:
Зареждане на html данни в WebView

person EvZ    schedule 04.02.2013

След дълго търсене това проработи за мен -

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

    webView.getSettings().setSupportZoom(true);
    webView.getSettings().setBuiltInZoomControls(true);
    webView.getSettings().setDisplayZoomControls(false);

    webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
    webView.setScrollbarFadingEnabled(false);
person Anirban    schedule 06.06.2018

Опитайте с това

String ua = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36";
person Vignesh    schedule 13.06.2019