gpt4 book ai didi

android - 不工作桌面模式 android WebView,为什么?

转载 作者:行者123 更新时间:2023-11-29 22:38:22 31 4
gpt4 key购买 nike

我正在使用 WebView,我需要访问移动桌面模式网站。但它没有按预期工作。

我正在使用 Android Studio 3.5 版。我附上了下面的代码。请解决我的问题。

        @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String newUA= "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1";

webView = (WebView) findViewById(R.id.webview);
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);
webSettings = webView.getSettings();
webSettings.setUserAgentString(WebSettings.getDefaultUserAgent(this));
webView.getSettings().setUserAgentString(newUA);

webSettings.setAllowFileAccess(true);
webView.setWebViewClient(new Client());
webView.setWebChromeClient(new ChromeClient());

if (Build.VERSION.SDK_INT >= 19) {
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
}
else if(Build.VERSION.SDK_INT >=11 && Build.VERSION.SDK_INT < 19) {
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
// webView.loadUrl("http://35.154.11.144"); //CMS URL
webView.loadUrl("https://erp.vvsugars.com/web/login");// VMS URL
}

最佳答案

你还没有设置用户代理..如果需要,您可以设置自定义用户代理。

但是如果您想设置从设备本身获取的正确用户代理,请使用以下代码。

WebSettings webSettings = webView.getSettings();
String userAgent = String.format("%s [%s/%s]", webSettings.getUserAgentString(), "App Android", BuildConfig.VERSION_NAME);
webSettings.setUserAgentString(userAgent);

编辑:

从 API 级别 17 开始,WebSettings 中有一个静态方法,它返回 WebView 使用的默认 User-Agent 字符串:

WebSettings.getDefaultUserAgent(上下文)

由于该方法是静态的,因此您不需要 WebView 实例来运行它。

所以代码应该是,

webSettings.setUserAgentString(WebSettings.getDefaultUserAgent(context));

对于上下文,如果您正在参加 Activity ,请尝试这样,

webSettings.setUserAgentString(WebSettings.getDefaultUserAgent(this));

并记得在实例化 webSettings 之后放置该行..

如果您想在 api 级别以下使用自定义用户代理字符串。下面是一个示例。

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

将上面的字符串放在 setUserAgentString 方法中..

或者,如果您想要使用下面的简单修复方法。

webSettings.setUserAgentString("Android");

Use a user agent string from official chrome website here. Go to the android webview part

**祝你好运**

更新....好吧,我以为你想要安卓模式。但是你想要桌面模式..使用下面的核心。它会起作用。

String newUA= "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1";

mWebView.getSettings().setUserAgentString(newUA);

编辑.. 我更新了上面的用户字符串。请使用它并重试..它仍然不起作用然后使用下面的代码而不设置用户代理字符串..

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

关于android - 不工作桌面模式 android WebView,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59299534/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com