마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

WebView파일 다운로드설정 하는법

0 추천

웹뷰를 이용해서 제로보드 홈페이지랑 연결하려고 하는데 다른부분은 다 되는데

 
파일업로드 다운로드가 안되요.. 몰 설정해야되는거 같은데.... 제발좀 알려주세요 
 
코드는
 
package inja.blog;
 
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings.PluginState;
import android.webkit.WebView;
import android.webkit.WebViewClient;
 
public class Blog extends Activity {
 
WebView mWebView;
 
private ValueCallback<Uri> mUploadMessage;
private final static int FILECHOOSER_RESULTCODE = 1;
 
@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();
 
    }
    
    
    private class BlogWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
            }
    }
    
}
 
 
이렇게 되요. 필요하시면 다른코드도 알려드릴께요 !!! 
 
도와주세요ㅜㅜ
눈큰영좌 (120 포인트) 님이 2013년 3월 18일 질문

2개의 답변

0 추천
mWebView.setDownloadListener(new CustomDownloadListener);

  

class CustomDownloadListener implements DownloadListener {
  public void onDownloadStart(final String url, final String userAgent, final String contentDisposition, final String mimetype, final long contentLength) {

      //httpclient를 이용해서 다운로드 받음.
}
}


웹뷰에서 다운로드 이벤트를 위와 같이 콜벡 받을 수 있습니다. 파일의 헤드 정보를 활용해서 url, 파일 크기, 파일 이름, 마임 타입을 받아... 다운을 받으시면 됩니다. 만약 다운 받기 위해 웹뷰의 쿠키가 필요하시면,    CookieSyncManager 를 통해서 httpclient에 쿠키를 세팅 해주시면 됩니다.

업로드는 ...

 

private class BlogWebViewClient extends WebViewClient {
 public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
  

// Intent i = new Intent(Intent.ACTION_GET_CONTENT);  를
// 활용 데이터를 리턴 받는 앱들을 이용해서 구현, 위에 작성한 소스 중 
//onActivityResult 부분이 이 인텐트로 호출한 결과를 받는 부분 같군요.
 

        }
}



위는 웹뷰로 제작된 파일첨부 기능의 콜백 함수 입니다.
아마도 지금 제가 올린 콜백 함수 만으로 원하시는 기능을 완성하시진 못할 겁니다.
하지만, 콜백 함수들로 구글링하시고 모르는 단어들로 구글링하시면, 원하시는 정보를 얻으실 수 있을 겁니다.

헤브리아 (360 포인트) 님이 2013년 3월 19일 답변
–2 추천
httpdownload검색해보세요

 

http://www.google.com/search?q=httpdownload

 

나와있습니다

그리고 업로드는 multipart post로 하시면 됩니다
수상한i (8,050 포인트) 님이 2013년 3월 18일 답변
...