initialize static method
Initialize VulnGuard and check version on every app start
Implementation
static Future<void> initialize({
required String apiKey,
String? platform, // Made optional - will auto-detect
String category = 'default',
}) async {
final vulnguard = Vulnguard.instance;
if (vulnguard._isInitialized) return;
try {
vulnguard._apiKey = apiKey;
vulnguard._platform = platform ?? _detectPlatform();
vulnguard._category = category;
// Initialize storage first
await vulnguard._storage.initialize();
// Check version and sync if needed
await vulnguard._checkVersionAndSync();
// Get installed apps using cross-platform service
List<UniversalAppInfo> installedPackages = await CrossPlatformAppService
.instance
.getInstalledApps();
List<PackageInfo> storedPackages = await vulnguard._storage
.getAllPackages();
// Clear previous vulnerable apps
_vulnerableApps.clear();
for (UniversalAppInfo installedApp in installedPackages) {
for (PackageInfo storedPackage in storedPackages) {
if (installedApp.packageName == storedPackage.packageName) {
debugPrint('Vulnerable package found: ${installedApp.packageName}');
// Add to vulnerable apps list
_vulnerableApps.add(
VulnerableApp(
packageName: storedPackage.packageName,
appName: storedPackage.appName,
iconUrl: storedPackage.iconUrl,
),
);
break;
}
}
}
vulnguard._isInitialized = true;
} catch (e) {
debugPrint('VulnGuard initialization error: $e');
vulnguard._isInitialized = true;
}
}