This commit is contained in:
DESKTOP-I3JPKHK\wy 2025-09-18 11:22:41 +08:00
parent 36680ec187
commit 87ca82cf87
4 changed files with 42 additions and 19 deletions

View File

@ -1,7 +1,6 @@
import 'dart:async';
import 'package:app_upgrade_plugin/app_upgrade_plugin.dart';
import 'package:app_upgrade_plugin/app_upgrade_plugin_enhanced.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
@ -21,13 +20,6 @@ void main() {
// AppUpgradePlugin().configureHttp(HttpConfig.unsafe);
// Flutter完全初始化后
Future.delayed(Duration.zero, () {
AppUpgradePluginEnhanced.instance.configure(
debugMode: true,
wifiOnly: false,
autoCheck: true,
);
});
runApp(const MyApp());
}

View File

@ -3,6 +3,7 @@ description: "Demonstrates how to use the app_upgrade_plugin plugin."
# The following line prevents the package from being accidentally published to
# pub.dev using `flutter pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.0.0+1
environment:
sdk: '>=3.0.0 <4.0.0'

View File

@ -3,8 +3,40 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'app_upgrade_plugin.dart';
import 'app_upgrade_plugin_platform_interface.dart';
import 'core/permission_helper.dart';
import 'core/upgrade_utils.dart';
import 'models/upgrade_info.dart';
import 'widgets/market_selection_dialog.dart';
///
class _SimpleAppUpgradePlugin {
static final _SimpleAppUpgradePlugin _instance = _SimpleAppUpgradePlugin._();
_SimpleAppUpgradePlugin._();
static _SimpleAppUpgradePlugin get instance => _instance;
Future<UpgradeInfo?> checkUpdate(String url, {Map<String, dynamic>? params}) {
return AppUpgradePluginPlatform.instance.checkUpdate(url, params: params);
}
Future<String?> downloadApk(String url, {Function(DownloadProgress)? onProgress}) {
return AppUpgradePluginPlatform.instance.downloadApk(url, onProgress: onProgress);
}
Future<bool> installApk(String filePath) {
return AppUpgradePluginPlatform.instance.installApk(filePath);
}
Future<bool> goToAppStore(String url) {
return AppUpgradePluginPlatform.instance.goToAppStore(url);
}
Future<Map<String, String>> getAppInfo() {
return AppUpgradePluginPlatform.instance.getAppInfo();
}
}
/// App升级管理器
/// APIApp升级功能
@ -23,11 +55,11 @@ class AppUpgradeSimple {
}
@visibleForTesting
AppUpgradeSimple.private({AppUpgradePlugin? plugin}) : _plugin = plugin ?? AppUpgradePlugin();
AppUpgradeSimple.private({_SimpleAppUpgradePlugin? plugin}) : _plugin = plugin ?? _SimpleAppUpgradePlugin.instance;
AppUpgradeSimple._() : _plugin = AppUpgradePlugin();
AppUpgradeSimple._() : _plugin = _SimpleAppUpgradePlugin.instance;
final AppUpgradePlugin _plugin;
final _SimpleAppUpgradePlugin _plugin;
/// 使
///
@ -240,7 +272,7 @@ class _UpgradeDialogContent extends StatelessWidget {
///
mixin _UpgradeDialogLogic<T extends StatefulWidget> on State<T> {
final _plugin = AppUpgradePlugin();
final _plugin = _SimpleAppUpgradePlugin.instance;
bool _isDownloading = false;
double _downloadProgress = 0;
String _statusText = '';

View File

@ -4,7 +4,7 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:permission_handler/permission_handler.dart';
import '../app_upgrade_plugin.dart';
import '../app_upgrade_plugin_platform_interface.dart';
/// Enum representing the status of the install permission.
enum InstallPermissionStatus {
@ -24,8 +24,6 @@ enum InstallPermissionStatus {
/// A helper class for handling permissions required by the app upgrade process.
class PermissionHelper {
static final _plugin = AppUpgradePlugin();
/// Checks and requests storage permission (required for downloading files).
///
/// This method handles different Android versions appropriately:
@ -196,7 +194,7 @@ class PermissionHelper {
if (openSettings) {
// 使
final opened = await _plugin.openInstallPermissionSettings();
final opened = await AppUpgradePluginPlatform.instance.openInstallPermissionSettings();
if (!opened) {
// 使
await openAppSettings();
@ -221,7 +219,7 @@ class PermissionHelper {
if (openSettings) {
// 使
final opened = await _plugin.openInstallPermissionSettings();
final opened = await AppUpgradePluginPlatform.instance.openInstallPermissionSettings();
if (!opened) {
// 使
await openAppSettings();
@ -313,7 +311,7 @@ class PermissionHelper {
/// Caches the result to avoid repeated platform channel calls.
static Future<int> _getAndroidSdkVersion() async {
if (!Platform.isAndroid) return 0;
_sdkVersion ??= await _plugin.getAndroidSdkVersion() ?? 0;
_sdkVersion ??= await AppUpgradePluginPlatform.instance.getAndroidSdkVersion() ?? 0;
return _sdkVersion!;
}
}