2016-07-26 3 views
-1

webview를 사용하는 곳에서 응용 프로그램을 열면 아무런 문제없이 filechooser를 클릭합니다. 시도하는 동안 그것은 브라우저에서 웹 사이트에 작동합니다.Fileviewer가 webview에서 작동하지 않습니다.

Android Webview에서 파일 선택기가 작동하지 않는 이유는 무엇입니까?

답변

2

당신은 당신이 자바 스크립트 및 활동과 통신 할 수있는 당신의 code.Basically에서 자바 스크립트 인터페이스를 구현해야합니다. 이 샘플을 고려하고 필요에 따라 변경하십시오.

https://www.opengeeks.me/2015/08/filechooser-and-android-webview/

+0

고마워요! 이 작품! 감독자! –

+0

이 예를 더 많은 이미지에만 적용하려면 어떻게해야합니까? 다른 파일도 업로드하고 싶습니다. –

0

사용 웹뷰를 열 때 장치에서 파일을 가져 오는 코드 :

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; 
    } 
    } 
관련 문제