add device info support,安卓的版本更新通知由跳转应用宝改为直接下载安装包

master
laiiihz 4 years ago
parent 6ae9f9864d
commit a924d27e9c

@ -1,5 +1,6 @@
import 'dart:io';
import 'package:device_info/device_info.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:package_info/package_info.dart';
@ -26,9 +27,13 @@ class VersionTool {
VersionInfo versionInfo = model.data.versionInfo;
// VersionInfo versionInfo = getStore().state.userBrief.versionInfo;
PackageInfo packageInfo = await PackageInfo.fromPlatform();
String _appStoreURL = '';
if (versionInfo == null) {
return;
}
if (Platform.isAndroid) _appStoreURL = await _getAndroidURL();
if (Platform.isIOS) _appStoreURL = WebApi.iOSUrl;
//
if (int.parse(packageInfo.buildNumber) < versionInfo.build) {
Alert.show(
@ -40,19 +45,29 @@ class VersionTool {
listener: (int index) async {
Alert.dismiss(context);
if (index == 0) {
String _url = WebApi.androidUrl;
if (Platform.isIOS) _url = WebApi.iOSUrl;
if (await canLaunch(_url)){
launch(_url);
if (await canLaunch(_appStoreURL)) {
launch(_appStoreURL);
if (Theme.of(context).platform == TargetPlatform.iOS) {
Future.delayed(const Duration(seconds: 3), () => closeWebView());
Future.delayed(
const Duration(seconds: 3), () => closeWebView());
}
}
}
},
)
);
));
}
}
static Future<String> _getAndroidURL() async {
DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
String brand = androidInfo.brand.toLowerCase();
print(brand);
bool safeMarket = ['xiaomi', 'oneplus', 'oppo', 'vivo', 'huawei']
.any((element) => brand.contains(element));
if (safeMarket)
return 'market://details?id=com.akuhome.recook';
else
return WebApi.androidUrl;
}
}

@ -246,6 +246,20 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.3.5"
device_info:
dependency: "direct main"
description:
name: device_info
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.0"
device_info_platform_interface:
dependency: transitive
description:
name: device_info_platform_interface
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.1"
dio:
dependency: "direct main"
description:

@ -2,7 +2,7 @@ name: recook
description: Recook Market App.
publish_to: "none"
version: 1.4.5-dev+245
version: 1.4.5-dev+100
environment:
sdk: ">=2.10.0 <3.0.0"
@ -220,6 +220,8 @@ dependencies:
pin_input_text_field: ^3.3.0
device_info: ^1.0.0
dev_dependencies:
flutter_test:
sdk: flutter

Loading…
Cancel
Save