android webView webchromeclient 本地图片资源

解决android webView openFileChooser 不能调用本地文件

其实主要问题是出现在webChromeClient 的身上,通过查看webChromeClient的源代码我我们知道里面有个openFileChooser函数,不过很可惜,这个函数是不公开的,即使我们使用继承也不能使用这个函数。哈哈,那怎么办呢?

我们还是来看看这个函数具体长成啥样吧。

其实它是这样的

/**

* Tell the client to open a file chooser.

* @param uploadFile A ValueCallback to set the URI of the file to upload.

* onReceiveValue must be called to wake up the thread.a

* @param acceptType The value of the ‘accept‘ attribute of the input tag

* associated with this file picker.

* @param capture The value of the ‘capture‘ attribute of the input tag

* associated with this file picker.

* @hide

*/

public void openFileChooser(ValueCallback<Uri> uploadFile, String acceptType, String capture) {

uploadFile.onReceiveValue(null);

},是的它就是这样的。于是,那么问题来了,我们要怎么才能使用这个函数呢?哈哈,是不是已经猜到了?对哦,我们只要写个一样的函数,然后公开就可以了。于是,我们继承的类是这样的。

public class WebChromeClientEx extends WebChromeClient {

    // 用来实现webview js 调用本地图库的接口
    public void openFileChooser(ValueCallback<Uri> uploadFile) {

    }

    public void openFileChooser(ValueCallback<Uri> uploadFile, String acceptType) {

    }

    public void openFileChooser(ValueCallback<Uri> uploadFile,
            String acceptType, String capture) {

    }

}

好了,现在你会发现居然多出了两个函数,那么这是为什么呢?具体的源代码大家就自己去了解吧,我也不多费口舌了。

这样我们就可以这样调用了

@Override

public void openFileChooser(ValueCallback<Uri> uploadFile,

String acceptType, String capture) {

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);

intent.addCategory(Intent.CATEGORY_OPENABLE);

intent.setType("image/*");

this.startActivityForResult(

Intent.createChooser(intent, "完成操作需要使用"),

FILECHOOSER_RESULTCODE);

}

好了,大家去试试吧。至于不同的版本,大家可以在不同的函数里面去实现哦。

谢谢大家!

时间: 2024-10-10 13:26:55

android webView webchromeclient 本地图片资源的相关文章

Android中使用WebView, WebChromeClient和WebViewClient加载网页 (能够执行js)

Android中使用WebView, WebChromeClient和WebViewClient加载网页 在android应用中,有时要加载一个网页,如果能配上一个进度条就更好了,而android 中提供了其很好的支持,下面是一个例子程序,先帖: 1 2 3 4 <?xml version="1.0" encoding="utf-8"?> <WebView xmlns:android="http://schemas.android.com

Android WebView 开发教程

1.WebView的使用 (a). 创建WebView的实例加入到Activity中 WebView webview = new WebView(this); setContentView(webview); 或者在xml中配置WebView <Webview android:layout_width="match_parent" android:layout_height="match_parent" > </Webview> (b). 访

android WebView详解,常见漏洞详解和安全源码

这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析. 由于博客内容长度,这次将分为上下两篇,上篇详解 WebView 的使用,下篇讲述 WebView 的漏洞和坑,以及修复源码的解析. 下篇:android WebView详解,常见漏洞详解和安全源码(下) 转载请注明出处:http://blog.csdn.net/self_study/article/details/54928371. 对技术感兴趣的同鞋加群 54

Android WebView使用详解包括js互调

目前很多android app都内置了可以显示web页面的界面,会发现这个界面一般都是由一个叫做WebView的组件渲染出来的,学习该组件可以为你的app开发提升扩展性. 先说下WebView的一些优点: 可以直接显示和渲染web页面,直接显示网页 webview可以直接用html文件(网络上或本地assets中)作布局 和JavaScript交互调用 一.基本使用 首先layout中即为一个基本的简单控件: <WebView android:id="@+id/webView1"

Android WebView与JavaScript交互操作(Demo)

应用场景: 为了使Android移动项目能够在较短的时间内完成开发,同时降低技术人员开发的成本投入,往往会采用Hybrid APP的开发模式.相关Hybrid APP(混合型应用)参看:http://blog.csdn.net/mahoking/article/details/30235243 采用这种模式,为了解决更好的用户体验,可访问本地资源的能力.势必需要了解与掌握Android(java)与JavaScript之间的交互.相互调用操作的方法与技术. [转载使用,请注明出处:http://

Android WebView 开发详解(一)

转载请注明出处  http://blog.csdn.net/typename/article/details/39030091 powered by meichal zhao 概览: Android WebView在Android平台上是一个特殊的View, 他能用来显示网页,这个类可以被用来在你的app中仅仅显示一张在线的网页,还可以用来开发浏览器.WebView内部实现是采用渲染引擎来展示view的内容,提供网页前进后退,网页放大,缩小,搜索,前端开发者可以使用web inspector(A

Android WebView学习

Android WebView学习 权限: <uses-permission android:name=“android.permission.INTERNET” /> 在WebView中使用JavaScript WebView myWebView = (WebView) findViewById(R.id.webview);WebSettings webSettings = myWebView.getSettings();webSettings.setJavaScriptEnabled(tr

Android WebView开发常见问题

1.添加权限:AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误. 2.在要Activity中生成一个WebView组件:WebView webView = new WebView(this); 3.设置WebView基本信息: 如果访问的页面中有Javascript,则webview必须设置支持Javascript. webview.getSettings().set

Android WebView与JS的交互方式 最全面汇总

前言 现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝.京东.聚划算等等,如下图 上述功能是由Android的WebView实现的,其中涉及到Android客户端与Web网页交互的实现 今天我将全面介绍Android通过WebView与JS交互的全面方式 阅读本文前请先阅读:Android开发:最全面.最易懂的Webview详解 目录 1. 交互方式总结 Android与JS通过WebView互相调用方法,实际上是: Android去调用JS的代码 JS去调用