我有一个简单的Andriod应用程序,它只有一个活动来使用Web视图加载网页.在构建该应用程序时,我使用的SDK最低版本为24,这意味着该应用程序应该可以在Android 7及更高版本上运行,但由于某些原因,当我在Android 7.1中启动我的应用程序时,我收到如下ERR_SSL_VERSION_OR_CIPHER_MISMATCH错误. enter image description here

令人惊讶的是,当我直接在浏览器中浏览相同的URL时,它确实起作用了.请帮我解决这个问题.

当前 chromium 合金版本:-90.0.4430.60 安卓版本:-7.1

我试过更新设备中的Chrome版本,如果我更新到Chrome版本110+,它就会开始工作,但我想判断这是不是解决问题的正确方法,或者我们有更好的解决方案.

enter image description here

它加载网页的服务器使用的是TLS v 1.3,我读到的Android 7默认使用的是TLS 1.2,这个问题可能是由于不同的TLS版本造成的,所以如果我们可以在不更新Android 7的浏览器版本的情况下处理这个问题,请帮助我.

我的WebView配置

  super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
        getSupportActionBar().hide();
        setContentView(R.layout.activity_main);
        webView = findViewById(R.id.test);
        ProgressBar spinner = (ProgressBar)findViewById(R.id.progressBar);
        WebSettings settings = webView.getSettings();
        settings.setJavaScriptEnabled(true);
        settings.setDomStorageEnabled(true);
        settings.setJavaScriptCanOpenWindowsAutomatically(true);
        webView.setWebViewClient(new CustomWebViewClient(spinner));
        webView.setWebChromeClient(new CustomWebChromeClient(this,webChromeClientArgs));
        webView.loadUrl("https://www.test.com/");
    ````

推荐答案

默认情况下,TLS1.3仅在Android 10+上启用,但这适用于使用Java API的应用程序.

但Chrome和Android WebView等网络浏览器都有自己的TLS实现,因此它们可以在较旧的Android版本上默认启用TLS 1.3.因此,请分别确保ChromeAndroid System WebView是最新的.

您可以在Android开发者选项条目WebView实现中查看是使用Chrome还是Android系统WebView向应用程序提供WebView.

至少你提到的Chrome版本已经过时了.Chrome 90版本发布于两年前.现在(2023年11月),最新的Chrome版本是118.

Android相关问答推荐

房间数据库迁移未正确处理:原因:java.lang. IllegalState异常:

懒惰列的滚动到项目不按预期工作'

原因平滑滚动的滞后懒惰列在android jetpack compose

如何在Android Jetpack Compose中找到我的手机屏幕一行有多少个单词

请求标头为空/无法通过拦截器获取

Android系统应用程序启用编程以太网网络共享

在Jetpack Compose中的隐藏状态栏后面绘制

如何将.txtassets资源 转换为ArrayList<;字符串>;kotlin格式?

安卓Azure通讯聊天UI库导入?

如何使用其他组件的位置来定位自定义弹出窗口

为什么我的 APK 中包含来自旧版 Android 支持库的类?

我怎样才能在多行 TextView 旁边有一个 ImageView 并且不超过父级的限制?

在 jetpack compose 中交替使用 View.INVISIBLE

Android Studio电鳗:javaHome好像无效

视觉转换后获取文本

将房间中的实体更新为 isCompleted 并使用 Flow 问题获取所有数据

如何在 TextButton 中分隔文本和图标

TextField 溢出和软包装不适用于 Compose 约束布局

如何在 MAUI 项目中包含每个平台的现有 C++ 库?

如何在 Kotlin 中使用反向绑定适配器将小写文本转换为大写?