WebView遇到的坑及优化,flutter小程序引擎

本文详细介绍了在Android中WebView遇到的各种问题及其解决方案,包括Android 4.4版本后openFileChooser()方法缺失的处理、长按保存图片的实现、硬件加速导致的问题、ViewPager中WebView点击事件不响应的修复,以及Android 8.0的新特性。同时提供了WebView加载进度条、延迟加载图片、自定义错误页面和检测滚动到底部的方法,是Android开发者优化WebView的实用指南。
摘要由CSDN通过智能技术生成

uploadMessage = valueCallback;

openImageChooserActivity();

}

// android 3.0以上,android4.0以下:用的这个方法

public void openFileChooser(ValueCallback valueCallback, String acceptType) {

uploadMessage = valueCallback;

openImageChooserActivity();

}

//android 4.0 - android 4.3 安卓4.4.4也用的这个方法

public void openFileChooser(ValueCallback valueCallback, String acceptType,

String capture) {

uploadMessage = valueCallback;

openImageChooserActivity();

}

//android4.4 无方法。。。

// Android 5.0及以上用的这个方法

@Override

public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]>

filePathCallback, WebChromeClient.FileChooserParams fileChooserParams) {

uploadMessageAboveL = filePathCallback;

openImageChooserActivity();

return true;

}

});

String targetUrl = “file:///android_asset/up.html”;

webview.loadUrl(targetUrl);

}

private void openImageChooserActivity() {

Intent i = new Int

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

ent(Intent.ACTION_GET_CONTENT);

i.addCategory(Intent.CATEGORY_OPENABLE);

i.setType(“image/*”);

startActivityForResult(Intent.createChooser(i, “Image Chooser”),

FILE_CHOOSER_RESULT_CODE);

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (requestCode == FILE_CHOOSER_RESULT_CODE) {

if (null == uploadMessage && null == uploadMessageAboveL) return;

Uri result = data == null || resultCode != RESULT_OK ? null : data.getData();

if (uploadMessageAboveL != null) {

onActivityResultAboveL(requestCode, resultCode, data);

} else if (uploadMessage != null) {

uploadMessage.onReceiveValue(result);

uploadMessage = null;

}

}

}

@TargetApi(Build.VERSION_CODES.LOLLIPOP)

private void onActivityResultAboveL(int requestCode, int resultCode, Intent intent) {

if (requestCode != FILE_CHOOSER_RESULT_CODE || uploadMessageAboveL == null)

return;

Uri[] results = null;

if (resultCode == Activity.RESULT_OK) {

if (intent != null) {

String dataString = intent.getDataString();

ClipData clipData = intent.getClipData();

if (clipData != null) {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值