detectInstalledUpiApps function

Future<List<String>> detectInstalledUpiApps()

Implementation

Future<List<String>> detectInstalledUpiApps() async {
  List<String> installedApps = [];
  final upiPackages = getUpiAppPackages();

  for (final app in upiPackages.keys) {
    if (Platform.isAndroid) {
      try {
        final isInstalled = await UpiAppChecker.isAppInstalled(
          upiPackages[app]!['android']!,
        );
        if (isInstalled) installedApps.add(app);
      } catch (e) {
        // Ignore error
      }
    } else if (Platform.isIOS) {
      try {
        final uri = Uri.parse(upiPackages[app]!['ios']!);
        final isInstalled = await canLaunchUrl(uri);
        if (isInstalled) installedApps.add(app);
      } catch (e) {
        // Ignore error
      }
    }
  }
  return installedApps;
}