Last updated:
0 purchases
flutter app upgrader
flutter 应用升级插件
升级功能说明:
应用程序升级是 App 的基础功能之一,下面介绍应用程序升级的方式:
从平台方面来说:
IOS:跳转到 app store 升级。
Android:跳转到应用市场升级,或下载 apk 包升级。
从强制性来说:
强制升级:用户必须升级才能继续使用 App。
非强制升级:用户可以选择取消升级当前版本。
copied to clipboard
升级流程说明:
访问后台接口获取是否有新的版本,IOS 还可通过https://itunes.apple.com/cn/lookup?bundleId=*** 来获取。
有新版本则弹出升级提示框,根据当前版本是否是强制更新控制是否显示取消按钮。
用户如选择取消,提示框消失。
用户如选择升级,IOS 跳转 app store 完成更新,Android 下载 apk 完成后跳转到 apk 安装页面。
copied to clipboard
安装说明:
在pubspec.yaml中加入:
flutter_app_upgrader:
git:
url: https://github.com/flyaswind/flutter_app_upgrader.git
执行flutter命令获取包
flutter pub get
引入
import 'package:flutter_app_upgrader/flutter_app_upgrader.dart';
安卓平台需要的额外配置:
安卓清单文件./android/app/src/main/AndroidManifest.xml 需要含有以下配置
权限配置:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
application 结点内添加
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="{包名}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
./android/app/src/main/res/xml/file_paths 配置里面需包含 external-path 示例如下
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="external_download" path=""/>
...
</paths>
copied to clipboard
使用说明:
1.提供简单的 UI 弹窗
//传入约定的json参考Version对应的json
//remark 更新内容
//currentLastFlag 是否有新版本 0有新版本 1没有新版本
//redirectUrl 更新连接
//forceFlag 是否强制更新 0非强制更新 1强制
var upgradeJson={
"forceFlag": 1,
"currentLastFlag": 0,
"remark": "我是一个版本更新,此版本是强制更新,我是更新内容",
"redirectUrl": "https://*******.apk"
};
FlutterAppUpgrader.showUpgradeDialog(context, upgradeJson);
2.提供直接更新的方法
//传入更新地址,安卓完成下载安装,iOS跳转到AppStore
//含下载进度/失败回调
//url 更新的连接 iOS是跳转app store地址 android是apk下载地址
//downLoadCallBack 下载过程中的回调
//error 异常信息的回调
FlutterAppUpgrader.upgradeApp(
"https://*****.apk",
downLoadCallBack: (current, total) {
print("共$total,已下载$current");
},
error: (err) {
print("更新异常:$err");
},
);
3.提供检查IOS AppStore里是否有不同版本的方法
bool hasNewVersion = await FlutterAppUpgrader.hasNewVersionInAppStore();
copied to clipboard
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.