Android Webview中的文件上传 - 没有选择文件

时间:2013-04-03 13:58:28

标签: android-webview

我正在使用Android WebView File Upload中的解决方案在Android Webview中进行文件上传:

private WebView webView;
private ValueCallback<Uri> mUploadMessage;
private final static int FILECHOOSER_RESULTCODE = 1;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    webView = (WebView) findViewById(R.id.webView);
    webView.getSettings().setJavaScriptEnabled(true);

    webView.setWebViewClient(new WebViewClient());

    webView.setWebChromeClient(new WebChromeClient(){  

        public void openFileChooser(ValueCallback<Uri> uploadMsg) { 
            mUploadMessage = uploadMsg;  
            Intent i = new Intent(Intent.ACTION_GET_CONTENT);  
            i.addCategory(Intent.CATEGORY_OPENABLE);  
            i.setType("image/*");  
            Main.this.startActivityForResult(Intent.createChooser(i,"File Chooser"), FILECHOOSER_RESULTCODE);  
        }

        public void openFileChooser( ValueCallback uploadMsg, String acceptType ) {
           mUploadMessage = uploadMsg;
           Intent i = new Intent(Intent.ACTION_GET_CONTENT);
           i.addCategory(Intent.CATEGORY_OPENABLE);
           i.setType("*/*");
           Main.this.startActivityForResult(
           Intent.createChooser(i, "File Browser"),
           FILECHOOSER_RESULTCODE);
        }

        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/*");  
               Main.this.startActivityForResult( Intent.createChooser( i, "File Chooser" ), Main.FILECHOOSER_RESULTCODE );

        }
    });  

    webView.loadUrl( WEBSITE_URL );
}

@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;  
    }
}

filechooser显示但在选择照片后,输入文件仍显示No File Chosen。我的代码中缺少什么?

感谢。

0 个答案:

没有答案