Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/29: Рейтинг темы: голосов - 29, средняя оценка - 4.55
 Аватар для ArtLext
5 / 2 / 0
Регистрация: 14.05.2013
Сообщений: 109

Скачивание файлов на телефоне из webview

26.01.2019, 18:17. Показов 5763. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть простое приложение состоящее из webview, в открывающейся странице сайта есть файлы которые можно скачать при нажатии в обычном браузере, но при нажатии на них в webview на телефоне не чего не происходит. Что нужно сделать чтобы приложение могло их скачивать???
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.01.2019, 18:17
Ответы с готовыми решениями:

Скачивание файлов WebView
Есть элемент WebView, как научить его скачивать файлы?

Поиск mp3 файлов на телефоне/ карте памяти
вообщем проблема такая, пишу mp3 плеер под android , как мне выполнить поиск всех mp3 файлов на телефоне/sd карте и запихнуть их в...

Создать ListView с именами текстовых файлов лежащих на телефоне
Создать ListView, содержащий список обычных текстовых или pdf файлов, которые есть на телефоне. То есть приложение ищет все файлы с такими...

8
111 / 89 / 29
Регистрация: 07.01.2017
Сообщений: 456
26.01.2019, 18:48
https://stackoverflow.com/ques... de-webview
0
 Аватар для ArtLext
5 / 2 / 0
Регистрация: 14.05.2013
Сообщений: 109
18.02.2019, 03:44  [ТС]
Попробовал этот код, работает, но не так как хотелось бы, для скачивания файла открывается браузер и качает через него.

Java
1
2
3
4
5
6
7
8
9
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);
    }
});
Добавлено через 1 минуту
jaman_smk, пробовал этот код, приложение вылетает..

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Попробуйте это. Пройдя много постов и форумов, я нашел это.
 
mWebView.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.allowScanningByMediaScanner();
            request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); //Notify client once download is completed!
            request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "Name of your downloadble file goes here, example: Mathematics II ");
            DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
            dm.enqueue(request);
            Toast.makeText(getApplicationContext(), "Downloading File", //To notify the Client that the file is being downloaded
                    Toast.LENGTH_LONG).show();
 
        }
    });
0
111 / 89 / 29
Регистрация: 07.01.2017
Сообщений: 456
18.02.2019, 06:48
ArtLext, с какой ошибкой вылетает?
0
 Аватар для ArtLext
5 / 2 / 0
Регистрация: 14.05.2013
Сообщений: 109
18.02.2019, 14:49  [ТС]
jaman_smk, При первом нажатии по ссылке на скачивание файла приложение просто сворачивается, при повторном открытии и нажатии выпадает окошко:
---
НазваниеПриложения keeps stopping
• App info
• Close app
---
0
111 / 89 / 29
Регистрация: 07.01.2017
Сообщений: 456
18.02.2019, 14:55
ArtLext, в логах смотри.
0
 Аватар для ArtLext
5 / 2 / 0
Регистрация: 14.05.2013
Сообщений: 109
18.02.2019, 15:36  [ТС]
jaman_smk, скачать пытаюсь файл - Разъяснения.docx
105 строка это: dm.enqueue(request);

Логи:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2019-02-18 15:11:30.104 3565-5486/android.process.media E/DatabaseUtils: Writing exception to parcel
    java.lang.SecurityException: No permission to write to /storage/emulated/0/Download/Разъяснения.docx: Neither user 10085 nor current process has android.permission.WRITE_EXTERNAL_STORAGE.
        at android.app.ContextImpl.enforce(ContextImpl.java:1812)
        at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:1840)
        at android.content.ContextWrapper.enforceCallingOrSelfPermission(ContextWrapper.java:776)
        at com.android.providers.downloads.DownloadProvider.checkFileUriDestination(DownloadProvider.java:784)
        at com.android.providers.downloads.DownloadProvider.insert(DownloadProvider.java:592)
        at android.content.ContentProvider$Transport.insert(ContentProvider.java:265)
        at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:152)
        at android.os.Binder.execTransact(Binder.java:731)
2019-02-18 15:11:30.105 8284-8284/v1.v1 D/AndroidRuntime: Shutting down VM
    
    
    --------- beginning of crash
2019-02-18 15:11:30.106 8284-8284/v1.v1 E/AndroidRuntime: FATAL EXCEPTION: main
    Process: v1.v1, PID: 8284
    java.lang.SecurityException: No permission to write to /storage/emulated/0/Download/Разъяснения.docx: Neither user 10085 nor current process has android.permission.WRITE_EXTERNAL_STORAGE.
        at android.os.Parcel.createException(Parcel.java:1942)
        at android.os.Parcel.readException(Parcel.java:1910)
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
        at android.content.ContentProviderProxy.insert(ContentProviderNative.java:476)
        at android.content.ContentResolver.insert(ContentResolver.java:1587)
        at android.app.DownloadManager.enqueue(DownloadManager.java:1022)
        at v1.v1.MainActivity$2.onDownloadStart(MainActivity.java:105)
        at com.android.webview.chromium.Ap.onDownloadStart(WebViewContentsClientAdapter.java:492)
        at org.chromium.android_webview.AwContentsClientCallbackHelper$MyHandler.handleMessage(AwContentsClientCallbackHelper.java:25)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Добавлено через 10 минут
В манифесте разрешение есть.
Java
1
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Добавлено через 10 минут
Может ли это быть из-за того что небезопасные разрешения нужно запрашивать при версии больше API 22 ???

Добавлено через 15 секунд
Может ли это быть из-за того что небезопасные разрешения нужно запрашивать при версии больше API 22 ???
0
0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 17
18.02.2019, 15:38
ArtLext, Привет, не на json случаем делаешь?
Аналогичная ситуация у меня сейчас происходит ))
Можешь написать мне в аську или вк?

Помощь небольшая нужна, ещё зелёный в этой теме ))

ICQ: 746547808
ВК: vk.com/shanoweb
0
111 / 89 / 29
Регистрация: 07.01.2017
Сообщений: 456
18.02.2019, 15:51
ArtLext, https://developer.android.com/... requesting
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.02.2019, 15:51
Помогаю со студенческими работами здесь

Скачивание файлов
Привет! Вот никогда не сталкивался - а сейчас понадобилось! Как реализовать скачивание на сайте. Чтобы по ссылке открывалось &quot;Открыть-...

Скачивание файлов
Хочу написать программку которая бы скачивала файлы. Проблема в том что я никак не могу сделать определения типов файлов... DownloadFile...

Скачивание файлов
Как сделать что б файл скачивался, а не откривались всякие крякозябри?? Силка виглядит так &lt;a...

Скачивание файлов
Здравствуйте. В недавном времени,мои домашние подцепили баннер, я его убрала, но с этих пор у меня перестали браузеры открывать сохраненные...

скачивание файлов
Доброго врмени суток) подскажите,пожалуйста,возможно ли такая ситуация,что при нажатии на кнопку в соседнем вкладке открывался пдф...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru