前言

前段时间我发布了一个只针对Android的版本更新框架flutter_xupdate,发布以来收到了大家许多的建议.当时我也只是为了自己方便才写的这么一个插件,并没有考虑很多.

建议有很多,大致可以分为如下几类:

  • 能否支持ios版本更新?
  • 能否支持自定义api?
  • 能否支持自定义版本更新弹窗?
  • 能否开发apk安装能力?

看到最后,居然还有人问:能不能给我提供检查版本、弹窗显示、apk下载、apk安装的能力,这样我就可以自己写更新逻辑了…

看来真的是不同的人对版本更新是有不同的需求,我想了一下,与其我提供这么一个较重的原生插件,倒不如直接提供一个使用纯dart编写的版本更新弹窗,然后再提供一个使用dart插件组合编写的版本更新功能使用案例,这样大家就可以参照着案例,根据自己的需求来自己写版本更新逻辑了.

下面话不多说,我给出版本更新弹窗flutter_update_dialog的插件地址:

https://github.com/xuexiangjys/flutter_update_dialog

以及使用它实现的版本更新案例flutter_app_update_example:

https://github.com/xuexiangjys/flutter_app_update_example


演示

flutter_update_dialog 一个漂亮的Flutter版本更新弹窗_flutter

  • 默认样式flutter_update_dialog 一个漂亮的Flutter版本更新弹窗_版本更新_02
  • 自定义样式flutter_update_dialog 一个漂亮的Flutter版本更新弹窗_github_03

快速集成指南

添加引用依赖

在你的flutter项目中的pubspec.yaml​文件中添加flutter_update_dialog依赖.

  • 方法一: pub集成
dependencies:
flutter_update_dialog: ^0.0.1
  • 方法二: github集成
dependencies:
flutter_update_dialog:
git:
url: git://github.com/xuexiangjys/flutter_update_dialog.git
ref: master

如何使用

默认样式

void defaultStyle() {
if (dialog != null && dialog.isShowing()) {
return;
}
dialog = UpdateDialog.showUpdate(context,
title: "是否升级到4.1.4版本?",
updateContent: "新版本大小:2.0M\n1.xxxxxxx\n2.xxxxxxx\n3.xxxxxxx",
onUpdate: onUpdate);
}

自定义样式

void customStyle() {
if (dialog != null && dialog.isShowing()) {
return;
}
dialog = UpdateDialog.showUpdate(context,
width: 250,
title: "是否升级到4.1.4版本?",
updateContent: "新版本大小:2.0M\n1.xxxxxxx\n2.xxxxxxx\n3.xxxxxxx",
titleTextSize: 14,
contentTextSize: 12,
buttonTextSize: 12,
topImage: Image.asset('assets/bg_update_top.png'),
extraHeight: 5,
radius: 8,
themeColor: Color(0xFFFFAC5D),
progressBackgroundColor: Color(0x5AFFAC5D),
isForce: true,
updateButtonTxt: '升级',
ignoreButtonTxt: '忽略此版本',
enableIgnore: true, onIgnore: () {
ToastUtils.waring("忽略");
dialog.dismiss();
},
onUpdate: onUpdate);
}

属性表

Name

Type

Default

Description

width

double

0.618 * screenWidth

弹窗的宽度

title

String

/

更新标题

updateContent

String

/

更新内容

onUpdate

VoidCallback

/

点击更新按钮的回调

titleTextSize

double

16.0

标题文字大小

contentTextSize

double

14.0

更新内容文字的大小

buttonTextSize

double

14.0

按钮文字的大小

themeColor

Color

Colors.red

主题颜色(按钮、进度条的颜色)

progressBackgroundColor

Color

0xFFFFCDD2

进度条背景的颜色

topImage

Image

/

更新弹窗顶部的图片

extraHeight

double

5.0

距离顶部图片的拓展高度

radius

double

4.0

弹窗圆角大小

enableIgnore

bool

false

是否开启忽略版本的按钮

updateButtonText

String

‘更新’

更新按钮的文字

ignoreButtonText

String

‘忽略此版本’

忽略按钮的文字

isForce

bool

false

是否强制更新(是否有关闭的按钮)

onIgnore

VoidCallback

/

点击忽略按钮的回调


关联链接

  • XUpdate 的Flutter插件
  • XUpdate 一个轻量级、高可用性的Android版本更新框架
  • XUpdate 使用说明文档
  • XUpdate 后台管理服务
  • XUpdate 后台管理系统

微信公众号

flutter_update_dialog 一个漂亮的Flutter版本更新弹窗_github_04