Flutter应用更新管理插件bemeli_update的使用

Flutter应用更新管理插件bemeli_update的使用

概述

BemeliUpdate 是一个用于 Flutter 应用的更新管理库,它能够为用户提供弹窗提示,以更新到应用商店中的新版本。此库支持 Google Play Store 和 App Store 的更新提示。


使用步骤

以下是一个完整的示例,展示如何在 Flutter 应用中集成 bemeli_update 插件并实现自动检查更新的功能。


示例代码

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 bemeli_update 依赖:

dependencies:
  bemeli_update: ^1.0.0

然后运行 flutter pub get 来安装依赖。


2. 初始化插件

在应用的主入口文件中初始化 BemeliUpdate,并设置版本号和上下文环境。

import 'package:bemeli_update/controller/bemeli_update_controller.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return const MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Initial(),
    );
  }
}

class Initial extends StatefulWidget {
  const Initial({Key? key}) : super(key: key);

  [@override](/user/override)
  State<Initial> createState() => _InitialState();
}

class _InitialState extends State<Initial> {
  [@override](/user/override)
  void initState() {
    super.initState();
    // 初始化 BemeliUpdate,并设置版本号和上下文
    BemeliUpdate.init(
      version: '1.0.19', // 当前应用版本号
      context: context,   // 当前上下文
      baseURL: '',        // 基础URL(可选)
    );
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('bemeliUpdate'),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          // 手动触发检查更新逻辑
          BemeliUpdate.checkForUpdate();
        },
        child: const Icon(Icons.update),
      ),
    );
  }
}
1 回复

更多关于Flutter应用更新管理插件bemeli_update的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


bemeli_update 是一个用于 Flutter 应用的更新管理插件,它可以帮助开发者轻松地检查应用更新、下载新版本并引导用户安装。使用这个插件,你可以确保用户始终使用最新版本的应用,从而提供更好的用户体验和安全性。

安装 bemeli_update 插件

首先,你需要在 pubspec.yaml 文件中添加 bemeli_update 插件的依赖:

dependencies:
  bemeli_update: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来安装插件。

基本用法

1. 检查更新

你可以使用 BemeliUpdate.checkForUpdate() 方法来检查是否有新版本可用。这个方法会返回一个 UpdateInfo 对象,其中包含更新信息。

import 'package:bemeli_update/bemeli_update.dart';

void checkUpdate() async {
  try {
    UpdateInfo updateInfo = await BemeliUpdate.checkForUpdate();
    if (updateInfo.updateAvailable) {
      // 有新版本可用
      print("New version available: ${updateInfo.newVersion}");
    } else {
      // 当前版本是最新的
      print("You are using the latest version.");
    }
  } catch (e) {
    print("Failed to check for update: $e");
  }
}

2. 下载更新

如果发现有新版本可用,你可以使用 BemeliUpdate.downloadUpdate() 方法来下载更新包。

void downloadUpdate() async {
  try {
    await BemeliUpdate.downloadUpdate();
    print("Update downloaded successfully.");
  } catch (e) {
    print("Failed to download update: $e");
  }
}

3. 安装更新

下载完成后,你可以使用 BemeliUpdate.installUpdate() 方法来引导用户安装更新。

void installUpdate() async {
  try {
    await BemeliUpdate.installUpdate();
    print("Update installed successfully.");
  } catch (e) {
    print("Failed to install update: $e");
  }
}

完整示例

以下是一个完整的示例,展示了如何检查更新、下载并安装新版本:

import 'package:flutter/material.dart';
import 'package:bemeli_update/bemeli_update.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: UpdateChecker(),
    );
  }
}

class UpdateChecker extends StatefulWidget {
  [@override](/user/override)
  _UpdateCheckerState createState() => _UpdateCheckerState();
}

class _UpdateCheckerState extends State<UpdateChecker> {
  bool _updateAvailable = false;

  void checkForUpdate() async {
    try {
      UpdateInfo updateInfo = await BemeliUpdate.checkForUpdate();
      if (updateInfo.updateAvailable) {
        setState(() {
          _updateAvailable = true;
        });
      } else {
        ScaffoldMessenger.of(context).showSnackBar(
          SnackBar(content: Text("You are using the latest version.")),
        );
      }
    } catch (e) {
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(content: Text("Failed to check for update: $e")),
      );
    }
  }

  void downloadAndInstallUpdate() async {
    try {
      await BemeliUpdate.downloadUpdate();
      await BemeliUpdate.installUpdate();
    } catch (e) {
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(content: Text("Failed to download or install update: $e")),
      );
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("App Update Checker"),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: checkForUpdate,
              child: Text("Check for Update"),
            ),
            if (_updateAvailable)
              ElevatedButton(
                onPressed: downloadAndInstallUpdate,
                child: Text("Download and Install Update"),
              ),
          ],
        ),
      ),
    );
  }
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!