强大的Flutter App升级功能
老孟程序员 人气:0
![](https://img2020.cnblogs.com/other/467322/202003/467322-20200318203845025-796697708.png)
> 注意:无特殊说明,Flutter版本及Dart版本如下:
> - Flutter版本: 1.12.13+hotfix.5
> - Dart版本: 2.7.0
应用程序升级功能是App的基础功能之一,如果没有此功能会造成用户无法升级,应用程序的bug或者新功能老用户无法触达,甚至损失这部分用户。
对于应用程序升级功能的重要性就无需赘言了,下面介绍下应用程序升级功能的几种方式,从平台方面来说:
- IOS平台,应用程序升级功能只能通过跳转到app store进行升级。
- Android平台,既可以通过跳转到应用市场进行升级,也可以下载apk包升级。
从强制性来说可以分别强制升级和非强制升级:
- 强制升级:就是用户必须升级才能继续使用App,如果不是非常必要不建议使用如此强硬的方式,会造成用户的反感。
- 非强制升级就是允许用户点击“取消”,继续使用App。
下面分别介绍IOS和Android升级流程。
## IOS升级流程
IOS升级流程如下:
![](https://img2020.cnblogs.com/other/467322/202003/467322-20200318203845277-2086942916.png)
流程说明:
1. 通常我们会访问后台接口获取是否有新的版本,如果有新的版本则弹出提示框,判断当前版本是否为“强制升级”,如果是则只提供用户一个“升级”的按钮,否则提供用户“升级”和“取消”按钮。
2. 弹出提示框后用户选择是否升级,如果选择“取消”,提示框消失,如果选择“升级”,跳转到app store进行升级。
## Android 升级流程
相比ios的升级过程,Android就稍显复杂了,流程图如下:
![](https://img2020.cnblogs.com/other/467322/202003/467322-20200318203845414-1885365158.png)
流程说明:
1. 访问后台接口获取是否有新的版本,这里和IOS是一样的,有则弹出升级提示框,判断当前版本是否为“强制升级”,如果是则只提供用户一个“升级”的按钮,否则提供用户“升级”和“取消”按钮。
2. 弹出提示框后有用户选择是否升级,如果选择“取消”,提示框消失,如果选择“升级”,判断是跳转到应用市场进行升级还是通过下载apk升级。
3. 如果下载apk升级,则开始下载apk,下载完成后跳转到apk安装引导界面。
4. 如果跳转到应用市场升级,判断是否指定了应用市场,比如只在华为应用市场上架了,那么此时需要指定跳转到华为应用市场,即使你在很多应用市场都上架了,也应该根据用户手机安装的应用市场指定一个应用市场,让用户选择应用市场不是一个好的体验,而且用户也不知道应该去哪个市场更新,如果用户选择了一个你没有上架的应用市场,那就更尴尬了。
5. 指定应用市场后直接跳转到指定的应用市场的更新界面。
介绍完了升级流程,主角终于出场了。
## App升级功能使用介绍
只需在主页的`initState`方法中调用升级检测方法:
```dart
@override
void initState() {
AppUpgrade.appUpgrade(
context,
_checkAppInfo(),
iosAppId: 'id88888888',
);
super.initState();
}
```
`_checkAppInfo`方法访问后台接口获取是否有新的版本的信息,返回`Future
加载全部内容