Javascript |WebVIew |在何处实现上载脚本

Javascript |WebVIew |在何处实现上载脚本,javascript,java,android,html,webview,Javascript,Java,Android,Html,Webview,我正在WebView中制作一个Android应用程序,我需要为Android添加一个上传代码。我已经找到了这段代码(如下),我需要将它转换成JavaScript而不是java(如果可能的话),我需要将它绑定到这个上传按钮(如下),我希望它也能在网站上运行 截图: 代码: 公共类MyWb扩展活动{ /**在首次创建活动时调用*/ 网络视图; ProgressBar ProgressBar; private ValueCallback mUploadMessage; private final s

我正在WebView中制作一个Android应用程序,我需要为Android添加一个上传代码。我已经找到了这段代码(如下),我需要将它转换成JavaScript而不是java(如果可能的话),我需要将它绑定到这个上传按钮(如下),我希望它也能在网站上运行

截图:

代码:

公共类MyWb扩展活动{
/**在首次创建活动时调用*/
网络视图;
ProgressBar ProgressBar;
private ValueCallback mUploadMessage;
private final static int FILECHOOSER_RESULTCODE=1;
@凌驾
ActivityResult上受保护的void(int请求代码、int结果代码、,
意图{
if(requestCode==FILECHOOSER\u RESULTCODE)
{  
if(null==mUploadMessage)返回;
Uri result=intent==null | | resultCode!=结果_确定?null
:intent.getData();
mUploadMessage.onReceiveValue(结果);
mUploadMessage=null;
}
}  
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
web=(WebView)findviewbyd(R.id.webview01);
progressBar=(progressBar)findViewById(R.id.progressBar1);
web=新的WebView(此);
web.getSettings().setJavaScriptEnabled(true);
web.loadUrl(“http://www.script-tutorials.com/demos/199/index.html");
setWebViewClient(新的myWebClient());
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);
}
});  
setContentView(web);
}
公共类myWebClient扩展了WebViewClient
{
@凌驾
public void onPageStarted(WebView视图、字符串url、位图favicon){
//TODO自动生成的方法存根
super.onPageStarted(视图、url、favicon);
}
@凌驾
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
//TODO自动生成的方法存根
view.loadUrl(url);
返回true;
}
@凌驾
公共void onPageFinished(WebView视图,字符串url){
//TODO自动生成的方法存根
super.onPageFinished(视图、url);
progressBar.setVisibility(View.GONE);
}
}
//flipscreen无法再次加载
@凌驾
配置已更改(配置newConfig){
super.onConfigurationChanged(newConfig);
}
//要处理WebView返回上一屏幕的“返回”按键事件。
/*@凌驾
公共布尔onKeyDown(int-keyCode,KeyEvent事件)
{
if((keyCode==KeyEvent.keyCode_BACK)&&web.canGoBack()){
goBack();
返回true;
}
返回super.onKeyDown(keyCode,event);
}*/
}

检查我为您找到的类似主题

再见。 再见
Markus

只需使用jQuery文件上传

$(function () {
    'use strict';
    // Change this to the location of your server-side upload handler:
    var url = window.location.hostname === 'blueimp.github.io' ?
                '//jquery-file-upload.appspot.com/' : 'server/php/';
    $('#fileupload').fileupload({
        url: url,
        dataType: 'json',
        done: function (e, data) {
            $.each(data.result.files, function (index, file) {
                $('<p/>').text(file.name).appendTo('#files');
            });
        },
        progressall: function (e, data) {
            var progress = parseInt(data.loaded / data.total * 100, 10);
            $('#progress .progress-bar').css(
                'width',
                progress + '%'
            );
        }
    }).prop('disabled', !$.support.fileInput)
        .parent().addClass($.support.fileInput ? undefined : 'disabled');
});
$(函数(){
"严格使用",;
//将此更改为服务器端上载处理程序的位置:
var url=window.location.hostname=='blueimp.github.io'?
“//jquery文件upload.appspot.com/”:“server/php/”;
$('#fileupload')。fileupload({
url:url,
数据类型:“json”,
完成:功能(e,数据){
$.each(data.result.files,函数(索引,文件){
$('

').text(file.name).appendTo('#files'); }); }, progressall:功能(e、数据){ var progress=parseInt(data.loaded/data.total*100,10); $('#progress.progress bar').css( “宽度”, 进度+“%” ); } }).prop('disabled',!$.support.fileInput) .parent().addClass($.support.fileInput?未定义:“已禁用”); });


那么为什么要使用本机文件上载?就好像它是普通网页一样。不幸的是,当我用web视图转换它时,它不起作用,不。因此,您可能需要一个javascriptInterface来帮助您。当您在html中单击btn时,将事件传递给web视图。或者您是否在webview中启用了javascript?
$(function () {
    'use strict';
    // Change this to the location of your server-side upload handler:
    var url = window.location.hostname === 'blueimp.github.io' ?
                '//jquery-file-upload.appspot.com/' : 'server/php/';
    $('#fileupload').fileupload({
        url: url,
        dataType: 'json',
        done: function (e, data) {
            $.each(data.result.files, function (index, file) {
                $('<p/>').text(file.name).appendTo('#files');
            });
        },
        progressall: function (e, data) {
            var progress = parseInt(data.loaded / data.total * 100, 10);
            $('#progress .progress-bar').css(
                'width',
                progress + '%'
            );
        }
    }).prop('disabled', !$.support.fileInput)
        .parent().addClass($.support.fileInput ? undefined : 'disabled');
});