Как проверить, есть ли у пользователя доступ к сети, и показать всплывающее предупреждение, когда его нет - PullRequest
0 голосов
/ 11 сентября 2018

Меня зовут Пабло, и сейчас я создаю приложение Flutter. Итак, мое приложение получает несколько изображений и аудио из Firebase Storage, и, очевидно, без подключения к Интернету приложение не отображает изображения и не воспроизводит аудио. Я хочу, чтобы приложение выскакивало предупреждение пользователю, когда нет ни WIFI, ни данных; как я могу это сделать?

Спасибо:)

Ответы [ 3 ]

0 голосов
/ 11 сентября 2018

Вы можете использовать пакет подключения https://pub.dartlang.org/packages/connectivity Вот простое руководство с приложенным файлом дротика https://medium.com/@aseemwangoo/internet-connectivity-in-flutter-a6b6aedf2964

Возможный дубликат - Проверьте, доступно ли подключение к Интернету во Flutterприложение

0 голосов
/ 20 декабря 2018

Для отображения части оповещения вы можете использовать библиотеку RFlutter Alert.Это легко настраиваемая и простая в использовании библиотека оповещений / всплывающих диалогов для Flutter.

Пример кода:

Alert(context: context, title: "RFLUTTER", desc: "Flutter is awesome.").show();

* Я один из разработчиков RFlutter Alert.

0 голосов
/ 11 сентября 2018

Вы можете просто использовать функцию, чтобы проверить, есть ли у вас сетевое соединение, пингуя серверы Google:

/system/bin/ping -c 1 8.8.8.8

В Android эта функция выглядит следующим образом:

public boolean isNetworkAvailable() {
    Runtime runtime = Runtime.getRuntime();
    try {
        Process process = runtime.exec("/system/bin/ping -c 1 8.8.8.8");
        int exitValue = process.waitFor();
        return (exitValue == 0);
    } catch (IOException | InterruptedException e) {
        e.printStackTrace();
    }
    return false;
}

В Firestore автономное сохранение включено по умолчанию. Таким образом, вы можете проверить, читает ли пользователь данные из кэша или с серверов Firebase. Более элегантный способ - использовать функцию isFromCache(). Это код для Android:

yourDocRef.addSnapshotListener(new DocumentListenOptions().includeMetadataChanges(), new EventListener<DocumentSnapshot>() {
    @Override
    public void onEvent(DocumentSnapshot documentSnapshot, FirebaseFirestoreException e) {
        Log.d("listener.isFromCache: " + documentSnapshot.getMetadata().isFromCache());
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...