Commit d43abb8c29044813ce45030fb094e948dd3dbe09

Authored by gaiyaguang
1 parent 46f3e142

flutter2.0 版本更新

... ... @@ -6,9 +6,6 @@ PODS:
- Reachability
- connectivity_macos (0.0.1):
- Flutter
- fake_push (0.0.1):
- Flutter
- QQ_XGPush (~> 3.3.7)
- Flutter (1.0.0)
- flutter_statusbarcolor (0.0.1):
- Flutter
... ... @@ -20,6 +17,8 @@ PODS:
- FMDB (2.7.5):
- FMDB/standard (= 2.7.5)
- FMDB/standard (2.7.5)
- install_plugin (0.0.1):
- Flutter
- JCore (2.2.5)
- JPush (3.3.2):
- JCore (< 3.0.0, >= 2.0.0)
... ... @@ -32,7 +31,6 @@ PODS:
- Flutter
- permission_handler (4.4.0):
- Flutter
- QQ_XGPush (3.3.7)
- Reachability (3.2)
- shared_preferences (0.0.1):
- Flutter
... ... @@ -55,11 +53,11 @@ DEPENDENCIES:
- audioplayers (from `.symlinks/plugins/audioplayers/ios`)
- connectivity (from `.symlinks/plugins/connectivity/ios`)
- connectivity_macos (from `.symlinks/plugins/connectivity_macos/ios`)
- fake_push (from `.symlinks/plugins/fake_push/ios`)
- Flutter (from `Flutter`)
- flutter_statusbarcolor (from `.symlinks/plugins/flutter_statusbarcolor/ios`)
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
- fluwx (from `.symlinks/plugins/fluwx/ios`)
- install_plugin (from `.symlinks/plugins/install_plugin/ios`)
- jpush_flutter (from `.symlinks/plugins/jpush_flutter/ios`)
- path_provider (from `.symlinks/plugins/path_provider/ios`)
- path_provider_macos (from `.symlinks/plugins/path_provider_macos/ios`)
... ... @@ -77,7 +75,6 @@ SPEC REPOS:
- FMDB
- JCore
- JPush
- QQ_XGPush
- Reachability
- WechatOpenSDK
... ... @@ -88,8 +85,6 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/connectivity/ios"
connectivity_macos:
:path: ".symlinks/plugins/connectivity_macos/ios"
fake_push:
:path: ".symlinks/plugins/fake_push/ios"
Flutter:
:path: Flutter
flutter_statusbarcolor:
... ... @@ -98,6 +93,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/fluttertoast/ios"
fluwx:
:path: ".symlinks/plugins/fluwx/ios"
install_plugin:
:path: ".symlinks/plugins/install_plugin/ios"
jpush_flutter:
:path: ".symlinks/plugins/jpush_flutter/ios"
path_provider:
... ... @@ -125,19 +122,18 @@ SPEC CHECKSUMS:
audioplayers: 84f968cea3f2deab00ec4f8ff53358b3c0b3992c
connectivity: 6e94255659cc86dcbef1d452ad3e0491bb1b3e75
connectivity_macos: e2e9731b6b22dda39eb1b128f6969d574460e191
fake_push: 4910f18f47de46b488f01ba99c64ee92df1e8d62
Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
flutter_statusbarcolor: 8afb1071ed8c58be929f1e32b36c629771fd2259
fluttertoast: b644586ef3b16f67fae9a1f8754cef6b2d6b634b
fluwx: 03e098a7284c556d7b197e0b82984eb0b25183af
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
install_plugin: a13e7ddd2bab0c701b48cd359c26d0394125b6fb
JCore: d75c0306dc99875d323d23e5a063b3a3ef22335a
JPush: 9468c84a3809dc3ac2fc1c89c6d1d6c858a91bf5
jpush_flutter: 69133df35eaf9135e540549b154d992c44f8ee44
path_provider: fb74bd0465e96b594bb3b5088ee4a4e7bb1f2a9d
path_provider_macos: f760a3c5b04357c380e2fddb6f9db6f3015897e0
permission_handler: f615215121f43c1640d2b8500d4ad749512828a8
QQ_XGPush: b3b7065cd0b11490974e3b33a24bf6803e7f9392
Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
shared_preferences: 430726339841afefe5142b9c1f50cb6bd7793e01
shared_preferences_macos: f3f29b71ccbb56bf40c9dd6396c9acf15e214087
... ...
/**
* 更新版本
*/
class Version{
String version;//更新版本号
String file_url;//安装包下载地址
String content;//更新内容
Version();
factory Version.fromJson(Map<String,dynamic> json)=>Version()..version=json["version"]..file_url=json["file_url"]..content=json["content"];
Map<String,dynamic> toJson()=><String,dynamic>{"version":version,"file_url":file_url,"content":content};
}
\ No newline at end of file
... ...
... ... @@ -14,6 +14,7 @@ import 'package:one_key/provider/message_dialog_model.dart';
import 'package:one_key/provider/message_model.dart';
import 'package:one_key/provider/my_model.dart';
import 'package:one_key/provider/notebook_model.dart';
import 'package:one_key/provider/update_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/log_util.dart';
... ... @@ -78,9 +79,12 @@ class HomePageState extends State<HomePage>{
WidgetsBinding.instance.addPostFrameCallback((_){
if(widget.initialIndex==0)return;
getUntreatedMessage();
UpdateModel updateModel=new UpdateModel();
updateModel.checkUpdate(context);
});
}
Future<void> initJPush() async {
try {
jpush.addEventHandler(
... ...
... ... @@ -3,6 +3,7 @@ import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/pages/notebook/notebook_item_widget.dart';
import 'package:one_key/provider/notebook_model.dart';
import 'package:one_key/provider/update_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
... ...
import 'dart:io';
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:install_plugin/install_plugin.dart';
import 'package:one_key/models/version.dart';
import 'package:one_key/net/dio_util.dart';
import 'package:one_key/res/colors.dart';
import 'package:path_provider/path_provider.dart';
import 'package:permission_handler/permission_handler.dart';
class UpdateModel{
int _progress;//下载进度
Function _setState;
//检查更新
Future<Version> checkUpdate(BuildContext context){
Future.delayed(new Duration(milliseconds: 1000),(){
if(Random().nextInt(10)>0){
Version version=Version.fromJson({
"version":"v1.0.3",
"file_url":"http://xt03.colorcun.com/uploads/20191105/67e38355c41528b24a97e9ac71a221ea.apk",
"content":"1.bug修复;\n2.功能更新;"
});
showUpdateDialog(context, version);
}
});
}
//拒绝订单弹框
showUpdateDialog(BuildContext context,Version version){
showDialog(context: context,builder: (context){
return AlertDialog(
title: Text("版本更新${version.version}"),
titleTextStyle: TextStyle(color: MyColours.color_353535,fontSize: ScreenUtil().setSp(32)),
content: Text("${version.content}"),
contentTextStyle:TextStyle(color: MyColours.color_828282,fontSize: ScreenUtil().setSp(28)),
actions: <Widget>[
FlatButton(
child: Text("取消",style: TextStyle(fontSize: ScreenUtil().setSp(32)),),
onPressed: (){
Navigator.of(context).pop();
},
),
FlatButton(
child: Text("去更新",style: TextStyle(fontSize: ScreenUtil().setSp(32)),),
onPressed: () async {
Navigator.of(context).pop();
if(Platform.isAndroid){
downloadApk(context,version.file_url);
}else{
InstallPlugin.gotoAppStore("itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=1510697490");
}
},
)
],
);
});
}
//下载更新版本
Future<void> downloadApk(BuildContext context,String file_url) async {
Map<PermissionGroup, PermissionStatus> permissions =
await PermissionHandler().requestPermissions([PermissionGroup.storage]);
if(permissions[PermissionGroup.storage] == PermissionStatus.granted){
final dir=await getExternalStorageDirectory();
String savePath=dir.path+"/one_key";
DioUtil().download(file_url, savePath,onProgress: (received,total){
int progress=((received/total)*100).round();
_progress=progress;
_setState((){});
if(received==total){//下载完成
InstallPlugin.installApk(savePath,"com.naji.one_key");
}
});
}
}
//显示下载进度条
Function showDownloadProgress(BuildContext context){
showDialog(
context: context,
barrierDismissible: false,
builder: (context) {
return AlertDialog(
content: StatefulBuilder(builder: (context, setState) {
if(_progress==100){
Navigator.of(context).pop();
}
_setState=setState;
return Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
CircularProgressIndicator(),
Padding(
padding: EdgeInsets.only(top: 26),
child: Text("正在下载...${_progress}%"),
)
],
);
}));
});
return _setState;
}
}
\ No newline at end of file
... ...
... ... @@ -366,6 +366,13 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.4"
install_plugin:
dependency: "direct main"
description:
name: install_plugin
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.1"
intl:
dependency: transitive
description:
... ...
... ... @@ -73,6 +73,8 @@ dependencies:
connectivity: ^0.4.8
# 信鸽推送
# fake_push: ^0.5.4
# 安装apk
install_plugin: ^2.0.1
dev_dependencies:
flutter_test:
... ...