Аватар для ArtLext
5 / 2 / 0
Регистрация: 14.05.2013
Сообщений: 109

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

26.01.2019, 18:17. Показов 5848. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru