Android Filechooser没有';不能在webview中工作
当我打开我使用网络视图的应用程序时,我单击文件选择器,然后什么都没发生。当我尝试在网站上的浏览器,它的工作Android Filechooser没有';不能在webview中工作,android,webview,filechooser,Android,Webview,Filechooser,当我打开我使用网络视图的应用程序时,我单击文件选择器,然后什么都没发生。当我尝试在网站上的浏览器,它的工作 为什么不在Android Webview中使用filechooser?当Webview打开时,使用以下代码从设备获取文件: web.setWebChromeClient(new WebChromeClient() { //The undocumented magic method override //Eclipse will
为什么不在Android Webview中使用filechooser?当Webview打开时,使用以下代码从设备获取文件:
web.setWebChromeClient(new WebChromeClient()
{
//The undocumented magic method override
//Eclipse will swear at you if you try to put @Override here
// For Android 3.0+
public void openFileChooser(ValueCallback<Uri> uploadMsg) {
mUploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("image/*");
MyWb.this.startActivityForResult(Intent.createChooser(i,"File Chooser"), FILECHOOSER_RESULTCODE);
}
// For Android 3.0+
public void openFileChooser( ValueCallback uploadMsg, String acceptType ) {
mUploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("*/*");
MyWb.this.startActivityForResult(
Intent.createChooser(i, "File Browser"),
FILECHOOSER_RESULTCODE);
}
//For Android 4.1
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture){
mUploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("image/*");
MyWb.this.startActivityForResult( Intent.createChooser( i, "File Chooser" ), MyWb.FILECHOOSER_RESULTCODE );
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent intent) {
if(requestCode==FILECHOOSER_RESULTCODE)
{
if (null == mUploadMessage) return;
Uri result = intent == null || resultCode != RESULT_OK ? null
: intent.getData();
mUploadMessage.onReceiveValue(result);
mUploadMessage = null;
}
}
web.setWebChromeClient(新WebChromeClient()
{
//未记录的magic方法重写
//如果您试图在此处放置@Override,Eclipse将对您发牢骚
//适用于Android 3.0+
public void openFileChooser(ValueCallback uploadMsg){
mUploadMessage=上传消息;
意向i=新意向(意向.行动\u获取\u内容);
i、 addCategory(意图。类别可打开);
i、 setType(“image/*”);
MyWb.this.startActivityForResult(Intent.createChooser(i,“文件选择器”),FILECHOOSER\u RESULTCODE);
}
//适用于Android 3.0+
public void openFileChooser(ValueCallback uploadMsg,String acceptType){
mUploadMessage=上传消息;
意向i=新意向(意向.行动\u获取\u内容);
i、 addCategory(意图。类别可打开);
i、 集合类型(“*/*”);
MyWb.this.startActivityForResult(
Intent.createChooser(i,“文件浏览器”),
文件选择器\u结果代码);
}
//适用于Android 4.1
public void openFileChooser(ValueCallback uploadMsg、字符串接受类型、字符串捕获){
mUploadMessage=上传消息;
意向i=新意向(意向.行动\u获取\u内容);
i、 addCategory(意图。类别可打开);
i、 setType(“image/*”);
MyWb.this.startActivityForResult(Intent.createChooser(i,“文件选择器”),MyWb.FILECHOOSER\u RESULTCODE);
}
});
@凌驾
ActivityResult上受保护的void(int请求代码、int结果代码、,
意图{
if(requestCode==FILECHOOSER\u RESULTCODE)
{
if(null==mUploadMessage)返回;
Uri result=intent==null | | resultCode!=结果_确定?null
:intent.getData();
mUploadMessage.onReceiveValue(结果);
mUploadMessage=null;
}
}
您必须在代码中实现javascript接口。基本上,您必须与javascript和您的活动进行通信。
考虑这个样品并根据您的需要进行更改。< / P>
我如何才能为更多的图像制作此示例。我还想上传其他文件。