WebView,无法正确加载 html
WebView, cannot load html correctly
我试图通过 AsyncTask 使用 HttpUrlConnection 将网页加载到 WebView 中变得更聪明。
以前我使用 WebView 的 .loadurl()
我用 http://www.google.co.uk
测试过,似乎工作正常。
我从日志中得到下面的输出,不幸的是我无法确定加载这个特定页面的实际问题是什么。
我想不通的是为什么它谈论的是支持或不支持的音频/视频编解码器。网页与这些无关
将 HTML 加载到 webview 时,我使用:
view.loadData(result, "text/html; charset=UTF-8", null);
抱歉提出如此直率的问题。
08-17 15:59:00.610 26720-26720/com.admin.phonedivert D/INFO: <html>.....
08-17 15:59:00.616 26720-26720/com.admin.phonedivert I/cr_Ime: ImeThread is enabled.
08-17 15:59:00.652 26720-26920/com.admin.phonedivert E/libEGL: validate_display:255 error 3008 (EGL_BAD_DISPLAY)
08-17 15:59:00.664 26720-26920/com.admin.phonedivert W/AudioCapabilities: Unsupported mime audio/evrc
08-17 15:59:00.665 26720-26920/com.admin.phonedivert W/AudioCapabilities: Unsupported mime audio/qcelp
08-17 15:59:00.668 26720-26920/com.admin.phonedivert W/VideoCapabilities: Unrecognized profile 2130706433 for video/avc
08-17 15:59:00.674 26720-26920/com.admin.phonedivert W/Utils: could not parse long range '175-174'
08-17 15:59:00.675 26720-26920/com.admin.phonedivert W/AudioCapabilities: Unsupported mime audio/dsd
08-17 15:59:00.675 26720-26920/com.admin.phonedivert W/AudioCapabilities: Unsupported mime audio/alac
08-17 15:59:00.676 26720-26920/com.admin.phonedivert W/AudioCapabilities: Unsupported mime audio/qcelp
08-17 15:59:00.676 26720-26920/com.admin.phonedivert W/AudioCapabilities: Unsupported mime audio/evrc
08-17 15:59:00.686 26720-26920/com.admin.phonedivert W/VideoCapabilities: Unsupported mime video/divx
08-17 15:59:00.688 26720-26920/com.admin.phonedivert W/VideoCapabilities: Unsupported mime video/divx311
08-17 15:59:00.690 26720-26920/com.admin.phonedivert W/VideoCapabilities: Unsupported mime video/divx4
08-17 15:59:00.701 26720-26920/com.admin.phonedivert W/VideoCapabilities: Unsupported mime video/mp4v-esdp
08-17 15:59:00.720 26720-26920/com.admin.phonedivert I/VideoCapabilities: Unsupported profile 4 for video/mp4v-es
08-17 15:59:00.758 26720-26720/com.admin.phonedivert W/cr_BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 26720
08-17 15:59:00.771 26720-26720/com.admin.phonedivert I/chromium: [INFO:CONSOLE(1)] "Uncaught ReferenceError: content_change is not defined", source: data:text/html; charset=UTF-8,<html>....
08-17 15:59:00.801 26720-26720/com.admin.phonedivert I/chromium: [INFO:CONSOLE(1)] "Uncaught ReferenceError: $ is not defined", source: data:text/html; charset=UTF-8,<!DOCTYPE html><html lang="en"><head><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" /><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>Mobile App</title><link href="assets/css/bootstrap.min.css" rel="stylesheet"><link href="assets/css/style.css" rel="stylesheet"><link href="/css/font-awesome-4.7.0/css/font-awesome.min.css" rel="stylesheet"><style type='text/css'>.button-back { position: absolute; z-index: 100;font-size: 49px;width: 45px;color: gray;margin-top: 2px;}.logo{ margin-left: 1px !important; }.mobile-menu { display:none; height:30px; position: relative; top: -40px; right: -10px;}.mobile-menu div{ float:left; width:120px; height:40px; background:white;} (1)
08-17 15:59:00.802 26720-26720/com.admin.phonedivert E/chromium: [ERROR:interface_registry.cc(99)] Failed to locate a binder for interface: autofill::mojom::AutofillDriver
08-17 15:59:02.262 26720-26720/com.admin.phonedivert I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@7a4a838 time:33593818
这个问题归结为网页 HTML 不足。
包括 <!DOCTYPE HTML>
解决了这个问题。 Logcat 错误的相关性仍然未知
导致此问题的另一个问题是对样式和 javascript 资源使用相对路径。我有一个网页视图指向的 iframe。由于我将 HTML 直接加载到视图中,因此视图不知道到哪里寻找资源。我想虽然使用 loadDataWithBaseUrl()
会解决这个问题。然而,这并没有。
作为修复,我不得不将我的 HTML 页面上的所有相对路径更改为静态。
Please try to using this.
webView.loadDataWithBaseURL("",result,"text/html", "UTF-8","");
我试图通过 AsyncTask 使用 HttpUrlConnection 将网页加载到 WebView 中变得更聪明。
以前我使用 WebView 的 .loadurl()
我用 http://www.google.co.uk
测试过,似乎工作正常。
我从日志中得到下面的输出,不幸的是我无法确定加载这个特定页面的实际问题是什么。
我想不通的是为什么它谈论的是支持或不支持的音频/视频编解码器。网页与这些无关
将 HTML 加载到 webview 时,我使用:
view.loadData(result, "text/html; charset=UTF-8", null);
抱歉提出如此直率的问题。
08-17 15:59:00.610 26720-26720/com.admin.phonedivert D/INFO: <html>.....
08-17 15:59:00.616 26720-26720/com.admin.phonedivert I/cr_Ime: ImeThread is enabled.
08-17 15:59:00.652 26720-26920/com.admin.phonedivert E/libEGL: validate_display:255 error 3008 (EGL_BAD_DISPLAY)
08-17 15:59:00.664 26720-26920/com.admin.phonedivert W/AudioCapabilities: Unsupported mime audio/evrc
08-17 15:59:00.665 26720-26920/com.admin.phonedivert W/AudioCapabilities: Unsupported mime audio/qcelp
08-17 15:59:00.668 26720-26920/com.admin.phonedivert W/VideoCapabilities: Unrecognized profile 2130706433 for video/avc
08-17 15:59:00.674 26720-26920/com.admin.phonedivert W/Utils: could not parse long range '175-174'
08-17 15:59:00.675 26720-26920/com.admin.phonedivert W/AudioCapabilities: Unsupported mime audio/dsd
08-17 15:59:00.675 26720-26920/com.admin.phonedivert W/AudioCapabilities: Unsupported mime audio/alac
08-17 15:59:00.676 26720-26920/com.admin.phonedivert W/AudioCapabilities: Unsupported mime audio/qcelp
08-17 15:59:00.676 26720-26920/com.admin.phonedivert W/AudioCapabilities: Unsupported mime audio/evrc
08-17 15:59:00.686 26720-26920/com.admin.phonedivert W/VideoCapabilities: Unsupported mime video/divx
08-17 15:59:00.688 26720-26920/com.admin.phonedivert W/VideoCapabilities: Unsupported mime video/divx311
08-17 15:59:00.690 26720-26920/com.admin.phonedivert W/VideoCapabilities: Unsupported mime video/divx4
08-17 15:59:00.701 26720-26920/com.admin.phonedivert W/VideoCapabilities: Unsupported mime video/mp4v-esdp
08-17 15:59:00.720 26720-26920/com.admin.phonedivert I/VideoCapabilities: Unsupported profile 4 for video/mp4v-es
08-17 15:59:00.758 26720-26720/com.admin.phonedivert W/cr_BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 26720
08-17 15:59:00.771 26720-26720/com.admin.phonedivert I/chromium: [INFO:CONSOLE(1)] "Uncaught ReferenceError: content_change is not defined", source: data:text/html; charset=UTF-8,<html>....
08-17 15:59:00.801 26720-26720/com.admin.phonedivert I/chromium: [INFO:CONSOLE(1)] "Uncaught ReferenceError: $ is not defined", source: data:text/html; charset=UTF-8,<!DOCTYPE html><html lang="en"><head><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" /><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>Mobile App</title><link href="assets/css/bootstrap.min.css" rel="stylesheet"><link href="assets/css/style.css" rel="stylesheet"><link href="/css/font-awesome-4.7.0/css/font-awesome.min.css" rel="stylesheet"><style type='text/css'>.button-back { position: absolute; z-index: 100;font-size: 49px;width: 45px;color: gray;margin-top: 2px;}.logo{ margin-left: 1px !important; }.mobile-menu { display:none; height:30px; position: relative; top: -40px; right: -10px;}.mobile-menu div{ float:left; width:120px; height:40px; background:white;} (1)
08-17 15:59:00.802 26720-26720/com.admin.phonedivert E/chromium: [ERROR:interface_registry.cc(99)] Failed to locate a binder for interface: autofill::mojom::AutofillDriver
08-17 15:59:02.262 26720-26720/com.admin.phonedivert I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@7a4a838 time:33593818
这个问题归结为网页 HTML 不足。
包括 <!DOCTYPE HTML>
解决了这个问题。 Logcat 错误的相关性仍然未知
导致此问题的另一个问题是对样式和 javascript 资源使用相对路径。我有一个网页视图指向的 iframe。由于我将 HTML 直接加载到视图中,因此视图不知道到哪里寻找资源。我想虽然使用 loadDataWithBaseUrl()
会解决这个问题。然而,这并没有。
作为修复,我不得不将我的 HTML 页面上的所有相对路径更改为静态。
Please try to using this.
webView.loadDataWithBaseURL("",result,"text/html", "UTF-8","");