Android报”WebViewFileUploadException”如何解决?

  • Post category:Android

针对Android报”WebViewFileUploadException”异常的原因和解决办法,我进行如下讲解:

1. 异常原因

1.1 安卓引用的WebView版本问题

“WebViewFileUploadException”异常通常是因为Android系统引用的WebView的版本过低,导致不支持文件上传的功能。在Android 4.4以下版本,WebView默认是不支持文件上传的。

1.2 WebView设置问题

另外,如果WebView没有正确设置可见性、透明度等问题,也可能会导致”WebViewFileUploadException”异常。

2. 解决办法及示例

2.1 更新WebView版本

解决”WebViewFileUploadException”异常的最好方式是升级WebView到最新版本,因为新版本WebView支持多种文件上传类型。你可以通过以下步骤来更新WebView版本:

Step 1. 在build.gradle文件中添加依赖
dependencies{
    implementation 'com.android.support:webkit:28.0.0'
}

Step 2. 在xml中添加WebView控件
<WebView
    android:id="@+id/webview_example"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

Step 3. 在Java类中设置WebView属性及WebViewClient

WebView webView = (WebView) findViewById(R.id.webview_example);
webView.getSettings().setLoadsImagesAutomatically(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("https://www.example.com");

2.2 设置WebView的可见性和透明度

针对上面所给的WebView设置属性,我们需要设置WebView的可见性和透明度,以保证正确的webview渲染。如下示例:

<WebView
    android:id="@+id/webview_example"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:visibility="visible"
    android:background="#ffffff"
    android:layerType="software"/>

webView.setVisibility(View.VISIBLE);
webView.setBackgroundColor(Color.WHITE);
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

以上就是”WebViewFileUploadException”异常的原因及解决办法,希望可以对你有所帮助。