1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/chinasoft5_ohos-Fetch

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Проект Fetch

Проект

  • Название проекта: Fetch.
  • Серия: openharmony, компонент для адаптации сторонних библиотек.
  • Функции: мощное и гибкое управление загрузками.
  • Состояние переноса проекта: основная функциональность реализована.
  • Вызовы: отсутствуют.
  • Версия разработки: SDK6, DevEco Studio 2.2 Beta1.
  • Базовая версия: Release 3.1.6.

Демонстрация эффекта

(Рисунок / скриншот: Fetch)

Инструкция по установке

  1. В файле build.gradle в корневом каталоге проекта:
allprojects {
   repositories {
       maven {
          url 'https://s01.oss.sonatype.org/content/repositories/release/'
       }
   }
}
  1. В файле build.gradle модуля entry:
dependencies {
   implementation 'com.gitee.chinasoft_ohos:Fetch:0.0.1-SNAPSHOT'  
   ......  
}

Проект можно запустить напрямую в SDK6 и DevEco Studio 2.2 Beta1. Если запуск не удался, удалите файлы .gradle, .idea, build, gradle и build.gradle и создайте новый проект с соответствующей версией. Скопируйте файлы из нового проекта в корневой каталог.

Использование

Как использовать Fetch
  1. Добавьте разрешения:
 "name": "ohos.permission.WRITE_USER_STORAGE",
  "name": "ohos.permission.READ_USER_STORAGE"
  1. Получите экземпляр Fetch и запросите загрузку:
 FetchConfiguration fetchConfiguration = new FetchConfiguration.Builder(this)
                .setDownloadConcurrentLimit(3)
                .build();

       Fetch fetch = Fetch.Impl.getInstance(fetchConfiguration);

        String url = "http:www.example.com/test.txt";
        String file = "/downloads/test.txt";
        
        final Request request = new Request(url, file);
        request.setPriority(Priority.HIGH);
        request.setNetworkType(NetworkType.ALL);
        request.addHeader("clientKey", "SD78DF93_3947&MVNGHE1WONG");
        
        fetch.enqueue(request, updatedRequest -> {
            //Запрос успешно поставлен в очередь на загрузку.
        }, error -> {
            //При постановке запроса в очередь произошла ошибка.
        });
  1. С помощью Fetch можно легко отслеживать ход загрузки и состояние. Просто добавьте FetchListener к вашему экземпляру Fetch, и он будет уведомлять вас об изменениях состояния или хода загрузки.
FetchListener fetchListener = new FetchListener() {
    @Override
    public void onQueued(@NotNull Download download, boolean waitingOnNetwork) {
        if (request.getId() == download.getId()) {
            showDownloadInList(download);
        }
    }

    @Override
    public void onCompleted(@NotNull Download download) {

    }

    @Override
    public void onError(@NotNull Download download) {
        Error error = download.getError();
    }

    @Override
    public void onProgress(@NotNull Download download, long etaInMilliSeconds, long downloadedBytesPerSecond) {
        if (request.getId() == download.getId()) {
            updateDownload(download, etaInMilliSeconds);
        }
        int progress = download.getProgress();
    }

    @Override
    public void onPaused(@NotNull Download download) {

    }

    @Override
    public void onResumed(@NotNull Download download) {

    }

    @Override
    public void onCancelled(@NotNull Download download) {

    }

    @Override
    public void onRemoved(@NotNull Download download) {

    }

    @Override
    public void onDeleted(@NotNull Download download) {

    }
};

fetch.addListener(fetchListener);

//Удалите слушателя после завершения работы.
fetch.removeListener(fetchListener);
  1. Fetch поддерживает приостановку и возобновление загрузки с использованием идентификатора запроса. Идентификатор запроса является уникальным идентификатором, который сопоставляется с запросом на получение загрузки. Fetch возвращает загрузку с идентификатором, соответствующим начальному запросу ID.
Request request1 = new Request(url, file);
Request request2 = new Request(url2, file2);

fetch.pause(request1.getId());

...

fetch.resume(request2.getId());
  1. Вы можете запрашивать информацию о загрузке различными способами.

//Запросите все загрузки
fetch.getDownloads(new Func<List<? extends Download>>() {
    @Override
        public void call(List<? extends Download> downloads) {
            //Доступ ко всем загрузкам здесь
        }
});

//Получите все загрузки со статусом
fetch.getDownloadsWithStatus(Status.DOWNLOADING, new Func<List<? extends Download>>() {
    @Override
        public void call(List<? extends Download> downloads) {
            //Доступ к загрузкам, которые загружаются
        }
});

//Вы также можете получить доступ к сгруппированным загрузкам
int groupId = 52687447745;
fetch.getDownloadsInGroup(groupId, new Func<List<? extends Download>>() {
    @Override
    public void call(List<? extends Download> downloads) {
            //Доступ к сгруппированным загрузкам
    }
});
  1. После завершения работы с экземпляром Fetch просто закройте его.
//Выполните работу

fetch.close();

//Сделайте ещё что-нибудь

Скачать

Установите OkHttp Downloader для использования с Fetch. ``` FetchMigrator.deleteFetchV1Database(getApplicationContext()); setMigrationDidRun(true); //Setup and Run Fetch2 after the migration } catch (SQLException e) { e.printStackTrace(); }

}).start();


Если миграция не была выполнена, то:

//Setup and Run Fetch2 normally


#### 测试信息

CodeCheck и CloudTest прошли без исключений.

Вирусная безопасность проверена, всё в порядке.

Текущая версия demo функционально не отличается от исходного компонента.

#### Версия
0.0.1-SNAPSHOT

#### Авторские права и лицензии

Copyright (C) 2017 Tonyo Francis.
Licensed under the Apache License, Version 2.0 («Лицензия»); вы не можете использовать этот файл иначе, чем в соответствии с Лицензией. Вы можете получить копию Лицензии по адресу:
http://www.apache.org/licenses/LICENSE-2.0

Если это не требуется применимым законодательством или не согласовано в письменной форме, программное обеспечение, распространяемое по Лицензии, распространяется на условиях «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ ЛЮБОГО РОДА, явных или подразумеваемых. См. Лицензию для конкретного языка, регулирующего разрешения и ограничения в рамках Лицензии.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Fetch — это простая, мощная и настраиваемая библиотека менеджера загрузок файлов. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/chinasoft5_ohos-Fetch.git
git@gitlife.ru:oschina-mirror/chinasoft5_ohos-Fetch.git
oschina-mirror
chinasoft5_ohos-Fetch
chinasoft5_ohos-Fetch
master