PRDownloader — библиотека для скачивания файлов openHarmony
Пример
Рис. PRDownloader в действии
Обзор библиотеки PRDownloader
Библиотека PRDownloader может использоваться для загрузки любых типов файлов, таких как изображения, видео, PDF, APK и другие.
Основные возможности:
Интеграция
Существует несколько способов интеграции библиотеки PRDownloader:
Вариант 1
Добавьте HAR-пакет в папку libs:
Добавление har пакета в lib файл
В entry gradle добавьте следующий код:
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
Вариант 2
Реализуйте проект как библиотеку:
implementation project(':library')
Вариант 3
Используйте зависимость от библиотеки:
implementation 'io.openharmony.tpc.thirdlib:PRDownloader:1.0.2'
Не забудьте добавить разрешение на доступ к интернету в манифест, если оно ещё не присутствует:
"reqPermissions": [
{
"name": "ohos.permission.INTERNET"
}
]
Затем инициализируйте библиотеку в методе onCreate() класса приложения:
PRDownloader.initialize(getApplicationContext());
Для дополнительной настройки можно использовать следующие методы:
// Включение базы данных для поддержки возобновления работы даже после завершения приложения:
PRDownloaderConfig config = PRDownloaderConfig.newBuilder()
.setDatabaseEnabled(true)
.build();
PRDownloader.initialize(getApplicationContext(), config);
// Установка глобального таймаута для сетевых запросов на скачивание:
PRDownloaderConfig config = PRDownloaderConfig.newBuilder()
.setReadTimeout(30_000)
.setConnectTimeout(30_000)
.build();
PRDownloader.initialize(getApplicationContext(), config);
Отправка запроса на скачивание
Отправьте запрос на скачивание файла, указав URL, путь к директории и имя файла:
int downloadId = PRDownloader.download(url, dirPath, fileName)
.build()
.setOnStartOrResumeListener(new OnStartOrResumeListener() {
@Override
public void onStartOrResume() {
}
})
.setOnPauseListener(new OnPauseListener() {
@Override
public void onPause() {
}
})
.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel() {
}
})
.setOnProgressListener(new OnProgressListener() {
@Override
public void onProgress(Progress progress) {
}
})
.start(new OnDownloadListener() {
@Override
public void onDownloadComplete() {
}
@Override
public void onError(Error error) {
}
});
Приостановка загрузки
Приостановите загрузку, используя идентификатор запроса:
PRDownloader.pause(downloadId);
Возобновление загрузки
Возобновите приостановленную загрузку:
PRDownloader.resume(downloadId);
Отмена загрузки
Отмените загрузку, используя идентификатор или тег запроса:
// Отмена по идентификатору
PRDownloader.cancel(downloadId);
// Тег может быть установлен для любого запроса и затем использован для его отмены
PRDownloader.cancel(TAG);
// Отменить все запросы
PRDownloader.cancelAll();
Состояние загрузки
Проверьте статус загрузки по идентификатору:
Status status = PRDownloader.getStatus(downloadId);
Очистка восстановленных файлов
Если включена база данных, очистите восстановленные файлы старше указанного количества дней:
// Метод для очистки временных восстановленных файлов старше заданного дня
PRDownloader.cleanUp(days);
TODO
Планируется интеграция с другими библиотеками, такими как OkHttp и RxJava, а также тестирование и дальнейшее развитие функциональности.
Лицензия
Copyright (C) 2017 MINDORKS NEXTGEN PRIVATE LIMITED
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language
``` Определяющие разрешения и ограничения в рамках лицензии.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )