2012-06-08 31 views
6

Nó KHÔNG hoạt động.Tải lên tệp WebView Android 4.0

tôi đang làm điều này

webView.setWebChromeClient(new WebChromeClient() { 

     public void openFileChooser(ValueCallback<Uri> uploadFile) { 
      System.out.println("openFileChooser"); 
      mUploadMessage = uploadFile; 
      Intent i = new Intent(Intent.ACTION_GET_CONTENT); 
      i.addCategory(Intent.CATEGORY_OPENABLE); 
      i.setType("file/*"); 
      PresentationActivity.this.startActivityForResult(
        Intent.createChooser(i, "Image Browser"), 
        FILECHOOSER_RESULTCODE); 
     } 
    }); 

nhưng openFileChooser không bao giờ được gọi. Bất kỳ ý tưởng nào? openFileChooser được đánh dấu @hide trong mã nguồn Android. Tôi nghĩ nó bởi vì bạn KHÔNG nên sử dụng phương pháp này. Có khả năng khác để mở fileChooser không ??

+0

Đối với Android 3.0+, bạn cần phải triển khai một phương pháp khác: http://stackoverflow.com/questions/5907369/file-upload-in-webview –

Trả lời

12

Các thông số cho openFileChooser đã được cập nhật một vài lần.

Đối với Android 3,0-4,0, nó là

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

cho 4.1,

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

và cho 2.x

public void openFileChooser(ValueCallback<Uri> uploadMsg) 

Bạn sẽ cần phải thêm tất cả trong số họ để hỗ trợ mọi thiết bị giữa Android 2.0 và 4.1.

+1

Bạn tìm thấy những thứ này ở đâu? – MBillau