zupdate 0.3.0 zupdate: ^0.3.0 copied to clipboard
Flutter plugin implementing version update.
zupdate #
Flutter plugin implementing version update.
On Android it downloads the file (with progress reporting) and triggers app installation intent.
On iOS it opens safari with specified ipa url.
You can refer to the following project:
https://github.com/hacjy/zupdate/tree/master/example
Important changes #
- A beautiful set of updated UI has been provided.
- A flutter plugin 【install_plugin】 for install apk for android; and using url to go to app store for iOS.
- use get: ^4.6.5 and flutter_screenutil: ^5.5.3+2:
1、in the pubspec.yaml file, add get: ^4.6.5 and flutter_screenutil: ^5.5.3+2 as a dependency.
2、in the main.dart file, the root node needs to use the following code
//根结点要要使用ScreenUtilInit和getx的GetMaterialApp
return ScreenUtilInit(
designSize: const Size(1920, 1080),
minTextAdapt: true,
splitScreenMode: true,
builder: (context, Widget? widget) {
return GetMaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('VersionUpdate Plugin App'),
),
body: GestureDetector(
onTap: (){
UpdateVersion.appUpdate(context);
},
child: const Center(child: SizedBox(
width: 100,
height: 100,
child: Text('Check Update'),
),)
)
),
);});
}
3、 in the pubspec.yaml file, use the following code
assets:
- assets/
- assets/img/
then add update_bg_app_top.png and update_ic_close.png to assets/img. These two images are copied from assets/img in example.
Usage #
To use this plugin, add zupdate
as a dependency in your pubspec.yaml
file.
//pub 集成
dependencies:
zupdate: ^0.3.0
//github 集成
dependencies:
zupdate:
git:
url: git://github.com/hacjy/zupdate.git
ref: master
Preview #
Example #
// IMPORT PACKAGE
import 'package:zupdate/version_xupdate/update/entity/update_entity.dart';
import 'package:zupdate/version_xupdate/update/flutter_update.dart';
//版本更新
static Future<void> update(
BuildContext context, Map<String, dynamic> appInfo) async {
try {
final url = appInfo['update_url'];
UpdateEntity entity = UpdateEntity(
isForce: appInfo['update_type'] == 1,
hasUpdate: true,
isIgnorable: false,
versionCode: appInfo['version_code'],
versionName: appInfo['version_name'],
updateContent: appInfo['update_content'],
apkMd5: appInfo['app_md5'] ?? '',
// apkSize: appInfo['package_size'],
downloadUrl: appInfo['update_url']);
UpdateManager.checkUpdate(context, entity,
//支持自定义头部图片,按钮主题色,进度条颜色,标题,标题距离头部图片的高度,apk文件名,是否显示中文文本
// config: UpdateConfig(
// apkName: 'test.apk',
// title: 'test update version',
// themeColor: Colors.blueAccent,
// progressBackgroundColor: Colors.blue.withOpacity(0.3),
// extraHeight: 10,
// chLanguage: true)
);
} catch (e) {
print(e);
}
}
install_plugin Example #
// IMPORT PACKAGE
import 'package:zupdate/install_plugin.dart';
// 安装apk
static void installAPP(String uri) async {
if (Platform.isAndroid) {
String packageName = await CommonUtils.getPackageName();
InstallPlugin.installApk(uri, packageName);
} else {
InstallPlugin.gotoAppStore(uri);
}
}