Oncreate에 아래 부분 처럼 코딩을 해서 webview 에서 다운로드를 잘 받고 있습니다.
그 다운로드 받자마자 해당 파일을 열수 있는 앱으로 연결 해 주려고 인텐트를 사용하여 해당 타입을 넣어 주었는데(테스트 하려고 엑셀 뷰만 열리게 하였습니다)
이런식으로 해답앱을 열었음에도 잘못된 파일이라는 오류 메세지가 뜨거든요. 경험이 있으신분들의 조언 부탁 드립니다.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webView = (WebView) findViewById(R.id.webview);
progressBar = (ProgressBar) findViewById(R.id.progressbar);
webView.setWebViewClient(new SmartWebViewClient());
//webView.setWebChromeClient(new SmartWebChromeClient());
});
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setDefaultFontSize(12);
webView.loadUrl("HOME_URL);
setListener();
//추가
//추가된 부분
webView.setDownloadListener(new DownloadListener() {
public void onDownloadStart(String url, String userAgent,
String contentDisposition, String mimeType,
long contentLength) {
urlToDownload = Uri.parse( Uri.decode( url ) );
request = new DownloadManager.Request( urlToDownload ); // 다운로드 매니저로 보낼 해당 다운로드에 대한 정보
request.setMimeType( DOWNLOAD_SERVICE );
System.out.println( request );
request.setDestinationInExternalPublicDir(
Environment.DIRECTORY_DOWNLOADS,
urlToDownload.getQueryParameter( "fileName" ) );
Environment.getExternalStoragePublicDirectory( // 저장할 경로를 생성
Environment.DIRECTORY_DOWNLOADS).mkdirs();
latestId = downloadManager.enqueue(request); // 순번 저장
//뷰
Intent i = new Intent(Intent.ACTION_VIEW);
i.addCategory(Intent.CATEGORY_DEFAULT);
i.setDataAndType(Uri.fromFile(new File("urlToDownload")), "application/vnd.ms-excel");
startActivity(i);
}
});
downloadManager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
}