티스토리 뷰
Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.
Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.
아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.
Download file inside WebView
WebView 에서 파일 다운로드
문제 내용
I have a webview in my Android Application. When user goes to webview and click a link to download a file nothing happens.
저는 안드로이드 어플리케이션에 웹뷰를 가지고 있습니다. 사용자가 웹뷰로 이동하여 파일을 다운로드할 링크를 클릭하면 아무 일도 일어나지 않습니다.
URL = "my url";
mWebView = (WebView) findViewById(R.id.webview);
mWebView.setWebViewClient(new HelloWebViewClient());
mWebView.getSettings().setDefaultZoom(ZoomDensity.FAR);
mWebView.loadUrl(URL);
Log.v("TheURL", URL);
How to enable download inside a webview? If I disable webview and enable the intent to load the URL on browser from application then download works seamlessly.
웹뷰 내에서 다운로드를 가능하게 하는 방법이 있을까요? 어플리케이션에서 브라우저에 URL을 로드하는 인텐트를 비활성화하고 웹뷰를 비활성화하면 다운로드가 원활하게 작동합니다.
String url = "my url";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
Can someone help me out here? The page loads without issue but the link to a image file in the HTML page is not working...
여기서 도와주세요. 페이지는 문제없이 로드되지만 HTML 페이지에서 이미지 파일로의 링크는 작동하지 않습니다...
높은 점수를 받은 Solution
Have you tried?
다음을 시도해 보셨나요?
mWebView.setDownloadListener(new DownloadListener() {
public void onDownloadStart(String url, String userAgent,
String contentDisposition, String mimetype,
long contentLength) {
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
}
});
Example Link: Webview File Download - Thanks @c49
예시 링크: Webview File Download - c49님 감사합니다.
가장 최근 달린 Solution
webView.setDownloadListener(new DownloadListener()
{
@Override
public void onDownloadStart(String url, String userAgent,
String contentDisposition, String mimeType,
long contentLength) {
DownloadManager.Request request = new DownloadManager.Request(
Uri.parse(url));
request.setMimeType(mimeType);
String cookies = CookieManager.getInstance().getCookie(url);
request.addRequestHeader("cookie", cookies);
request.addRequestHeader("User-Agent", userAgent);
request.setDescription("Downloading File...");
request.setTitle(URLUtil.guessFileName(url, contentDisposition, mimeType));
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationInExternalPublicDir(
Environment.DIRECTORY_DOWNLOADS, URLUtil.guessFileName(
url, contentDisposition, mimeType));
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
dm.enqueue(request);
Toast.makeText(getApplicationContext(), "Downloading File", Toast.LENGTH_LONG).show();
}});
출처 : https://stackoverflow.com/questions/10069050/download-file-inside-webview
'개발 > 안드로이드' 카테고리의 다른 글
안드로이드 WebView에서 기존 .html 파일을 로드하는 방법 (0) | 2023.02.26 |
---|---|
Android WebView가 때때로 세션 쿠키를 전송하지 않는 이유 (0) | 2023.02.25 |
액티비티 시작 시 키보드가 표시되지 않도록 하기 (0) | 2023.02.25 |
안드로이드에서 SMS 작성 화면을 보여주는 방법 (0) | 2023.02.25 |
안드로이드 RecyclerView에서 아이템 추가 및 삭제 (0) | 2023.02.24 |