Android webview 在 API 21 及以上版本中加载失败

2024-01-09

我有一个使用 WebView 并加载页面的 Android 应用程序。该应用程序适用于运行 API 16 或更高版本的 Android 设备.

Android WebView 代码:

String URL = "https://sandbox.napas.com.vn/gateway/message";

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

    webview = (WebView) findViewById(R.id.webview);

    webview.getSettings().setJavaScriptEnabled(true);
    webview.getSettings().setAllowFileAccess(true);
    webview.getSettings().setPluginState(PluginState.ON);
    webview.getSettings().setDomStorageEnabled(true);
    webview.getSettings().setAllowContentAccess(true);
    webview.getSettings().setAllowFileAccessFromFileURLs(true);
    webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

    webview.setWebChromeClient(new MyWebChromeClient());
    webview.loadUrl(URL);

    webview.setWebViewClient(new WebViewClient() {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {

            view.loadUrl(url);
            return true;
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
        }
    });
}

但 webview 加载页面为空并有日志:

E/libEGL(25467): validate_display:255 error 3008 (EGL_BAD_DISPLAY)
W/AudioCapabilities(25467): Unsupported mime audio/evrc
W/AudioCapabilities(25467): Unsupported mime audio/qcelp
W/VideoCapabilities(25467): Unrecognized profile 2130706433 for video/avc
W/AudioCapabilities(25467): Unsupported mime audio/amr-wb-plus
W/AudioCapabilities(25467): Unsupported mime audio/mpeg-L1
W/AudioCapabilities(25467): Unsupported mime audio/mpeg-L2
D/ConnectivityManager(25467): CallingUid : 10063, CallingPid : 25467
D/ConnectivityManager.CallbackHandler(25467): CM callback handler got msg 524290
W/AudioCapabilities(25467): Unsupported mime audio/x-ms-wma
W/AudioCapabilities(25467): Unsupported mime audio/x-ima
W/AudioCapabilities(25467): Unsupported mime audio/qcelp
W/AudioCapabilities(25467): Unsupported mime audio/evrc
W/VideoCapabilities(25467): Unsupported mime video/wvc1
W/VideoCapabilities(25467): Unsupported mime video/x-ms-wmv
W/VideoCapabilities(25467): Unrecognized profile/level 32768/2 for video/mp4v-es
W/VideoCapabilities(25467): Unsupported mime video/wvc1
W/VideoCapabilities(25467): Unsupported mime video/x-ms-wmv
W/VideoCapabilities(25467): Unsupported mime video/x-ms-wmv7
W/VideoCapabilities(25467): Unsupported mime video/x-ms-wmv8
W/VideoCapabilities(25467): Unsupported mime video/mp43
W/VideoCapabilities(25467): Unsupported mime video/sorenson
W/VideoCapabilities(25467): Unsupported mime video/mp4v-esdp

请帮我修复这个错误。谢谢


我通过处理 ssl Error 找到了类似问题的解决方案。基本上覆盖了该函数onReceivedSslError在对象中Webviewclient并设置handler.proceed(),删除了这个问题。

      WebViewClient webClient = new WebViewClient() {
            // Override page so it's load on my view only
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return false;
            }

            @Override
            public void onPageStarted(WebView view, String url, Bitmap facIcon) {

                mLayoutProgress.setVisibility(View.VISIBLE);

            }

            @Override
            public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
                    handler.proceed();
            }

            @Override
            public void onPageFinished(WebView view, String url) {

                mLayoutProgress.setVisibility(View.GONE);
            }
        };
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android webview 在 API 21 及以上版本中加载失败 的相关文章

  • Android - 如何使密封类扩展其他密封类?

    我的 UIState 有一个密封的界面 sealed interface UIState
  • Android Toast 消息不起作用

    我正在通过 Andengine 为 Android 开发游戏 我有 MainActivity 类和 GameScene 类 我在 GameActivity 中使用 Toast 消息 它正在发挥作用 Toast makeText this H
  • 如何使全屏覆盖在方向更改后保持全屏?

    我正在制作一个应用程序 它可以创建在屏幕上行走的微小精灵动画 我有一个主要活动 带有 启动服务 按钮 这会启动一个服务 该服务 在onCreate 创建一个全屏视图并将其附加到根窗口管理器 这部分工作完美 它充满了屏幕 您可以离开应用程序
  • 单击另一个项目/小部件时展开/打开微调器?

    当用户单击另一个按钮时 我试图展开微调器 例如 我有一个带有值的微调器和一个 确定 按钮 当用户单击 确定 按钮而不从微调器中选择任何值时 微调器会自行扩展 是否可以在无需用户与微调器交互的情况下获得扩展微调器的事件 只需致电Spinner
  • 简单 XML 框架:ElementMap 中的对象具有“类似内联”的行为

    我正在尝试在 Android 上序列化自定义对象的 Hashmap 以获得如下 xml
  • 如何优化 R 中的 sapply 来计算数据帧上的运行总计

    我在 R 中编写了一个函数来按月份计算累积总数 但随着数据集变大 我的方法的执行时间呈指数增长 我是一名 R 程序员新手 你能帮我提高效率吗 该函数以及我调用该函数的方式 accumulate lt function recordnum d
  • Android 位置 API:获取提供商状态

    在 Android 中获取位置提供商状态的最佳方式是什么 当注册 LocationListener 以进行位置更新时 onStatusChanged String provider int status Bundle extras 每当状态
  • 如何使用onDraw(Canvas)获取WebView的位图快照(Android)

    我曾经使用 capturePicture 方法来制作 WebView 的快照 此方法在 API 级别 19 中已弃用 该文档说 使用 onDraw Canvas 获取 WebView 的位图快照 但我真的不知道它是什么意思 你能教我如何解决
  • 如何检查 Android 设备是否在线

    我的服务器不断检查我的 Android 应用程序是否在线 请问我可以在我的android应用程序上执行哪些操作 创建一个名为 isNetworkAvailable 的帮助器方法 该方法将根据网络是否可用返回 true 或 false 它看起
  • 获取Android库中的上下文

    我正在编写一个 Android 应用程序 它的一些功能封装在内部库中 但是 要使此功能发挥作用 库需要一个应用程序上下文的实例 为图书馆提供这种上下文的最佳方式是什么 我看到了一些选择 但没有一个有吸引力 Have my library c
  • 使用全局变量从内部函数获取空字符串

    请帮助我解决一些小问题 我确信你能做到 D 我试图在 firestore 文档 user cases information 上设置一个字段 其中包含一个字段 case number 首先我声明这个全局变量 private String c
  • 改造将多个图像上传到单个密钥

    我正在使用 Retrofit 将图像上传到我的服务器 这里我需要为一个密钥上传多个图像 我已经尝试使用 Postman 网络客户端 它运行良好 这是一个屏幕截图 以下是请求的键值对 调查图像 文件1 文件2 文件3 属性图像 文件DRA j
  • RecyclerView 单击将数据传递到新活动

    我正在制作一个包含三个选项卡的应用程序 每个选项卡都有一个带有两个文本的 recyclerview 我希望用户能够单击任何 recyclerview 项目 并且该项目中的文本应传递到新活动 这是应用程序外观的图像 https i stack
  • 调整 Oracle 数据库以加快启动速度(闪回)

    我正在使用 Oracle 数据库 11 2 我有一个场景 我发出FLASHBACK DATABASE经常 似乎有一个FLASHBACK DATABASECycle 会重新启动数据库实例 大约需要 1 分钟 我的设置花了 7 秒 数据库很小
  • Android - 在图像/缩略图上覆盖播放按钮的最佳方式

    我有一个 Android 应用程序 可以播放音频 视频并显示图片 对于视频 我想在预览图像顶部以及列表视图中叠加一个播放按钮 现在我的做法是使用 xml 中的 ImageView 然后可绘制对象是一个图层图层列表 我以编程方式定义它 因为其
  • 如何在移动应用程序上连接到服务器?

    我是移动应用程序的新手 我基本上来自网络开发平台 我只是在玩 App Framework LungoJS Jquery Mobile kendo 等移动框架 以获得该垂直领域的一些知识 我正在开发的应用程序仍然处于 UI 级别 我所需要的只
  • 如何在 LazyColumn 底部添加空白区域?

    我想添加 LazyColumn 的空白底部 并且我想允许用户调出底部元素 我怎样才能实现这个 Example LazyColumn modifier Modifier fillMaxWidth height 300 dp border 2
  • 以编程方式创建 FloatingActionButton(无需 xml)

    我很欣赏 Android 的 FloatingActionButton fab 功能 并希望在我的项目中的许多不同地方使用它们 现在 我有这样的东西 我有几个 xml 规范 除了 id 图标和 onclick 之外 所有这些规范都是相同的
  • Android 中的 ODEX 文件是什么?

    经过一些android安装了应用程序 我发现它会变成odex文件 不是apk 在智 能手机中 这是怎么发生的 谁能教教我 我对此很感兴趣 博客文章 https stackoverflow com a 9593590 194894大部分是正确
  • Recyclerview项目点击涟漪效果[重复]

    这个问题在这里已经有答案了 我正在尝试添加Ripple影响到RecyclerView的项目 我在网上查了一下 但找不到我需要的东西 我努力了android background归因于RecyclerView本身并将其设置为 android

随机推荐