Android Studio WebView 在网页上加载某些元素时出现问题

Issue with Android Studio WebView loading certain elements on a webpage

我正在使用 Androids WebView class 创建一个模拟我网站的本机 android 应用程序的本机应用程序。

我们的网站在 javascript 和旧版本的 chrome 中使用了一些非常现代的方法,即使在桌面上也不会显示 Button 中的登录信息并抛出错误。这可以通过将 chrome 更新到 newer/newest 版本来缓解。

我的问题是,Chrome是Android的Webview使用的浏览器吗?如果是这样,有没有办法更新其中 chrome 的版本?

(edit) 我做了很多研究但无济于事。下面是我来自 Android Studio 的 MainActivity.java 的代码,如果有帮助的话:

package com.afi.helix;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.webkit.WebSettings;

import android.webkit.WebView;

import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {

private WebView WebView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    WebView = findViewById(R.id.webview);
    WebView.setWebViewClient(new WebViewClient());

    WebSettings webSettings = WebView.getSettings();
    WebView.getSettings().setJavaScriptEnabled(true);
    WebView.loadUrl("my localhost url");
}

@Override
public void onBackPressed() {
    if(WebView.canGoBack()) {
        WebView.goBack();
    } else {
        super.onBackPressed();
    }
}
}

############################################# #############################

请注意:在我正在测试的设备上,我可以通过 chrome 应用程序毫无问题地加载应用程序,问题是在我的 android 工作室的 WebView 中打开它申请

Chrome是Android的webview使用的浏览器吗?

  • Android是通过Google控制的,GoogleChrome是它的浏览器,WebView是一个轻量级的widget,没有基于浏览器在 SDK 但通过外部更新扩展 - 因此,NO 但相关。

旁注:

Android 4.4 KitKat first introduced a Chromium-based WebView component in 2013.


... 如果是这样,有没有办法更新其中 chrome 的版本?

  • 通过 Google Play 商店,具体取决于设备。

Although WebView has been based on Chromium since Android 4.4, the Chromium layer is now updatable from Google Play.

As new versions of Chromium become available, users can update from Google Play to ensure they get the latest enhancements and bug fixes for WebView, providing the latest web APIs and bug fixes for apps using WebView on Android 5.0 and higher.

我想引用 .

发表的另一个 SO-Post 的最后一句话

在代码中添加到 WebView:

我会在 MainActivity.java 中对您的 WebView 进行其他设置:

WebSettings webSettings = WebView.getSettings();
        webSettings.setSupportMultipleWindows(true);
        webSettings.setDomStorageEnabled(true);
        webSettings.setDatabaseEnabled(true);
        webSettings.setAllowFileAccess(true);
        webSettings.setAllowContentAccess(true);
        webSettings.setAllowFileAccess(true);
        webSettings.setUseWideViewPort(true);
        webSettings.setSupportZoom(true);
        webSettings.setLoadWithOverviewMode(true);
        webSettings.setJavaScriptEnabled(true);
        webSettings.setJavaScriptCanOpenWindowsAutomatically(false);
        webSettings.setUseWideViewPort(true);