openStore method
Future<void>
openStore({
- AndroidUpgradeOption? androidOption,
- IOSUpgradeOption? iOSOption,
override
Open App Store or Android application market.
Implementation
@override
Future<void> openStore({
AndroidUpgradeOption? androidOption,
IOSUpgradeOption? iOSOption,
}) async {
if (defaultTargetPlatform == TargetPlatform.android) {
assert(androidOption != null, 'The androidOption cannot be empty.');
if ((androidOption?.packageName).isBlank) {
androidOption?.packageName =
await methodChannel.invokeMethod<String>('getPackageName');
}
assert(
!(androidOption?.packageName).isBlank,
'The packageName cannot be empty.',
);
final bool canUseMarket = await _launchUrl(androidOption?.url);
if (!canUseMarket && !(androidOption?.downloadUrl).isBlank) {
await _launchUrl(androidOption?.downloadUrl);
}
} else if (defaultTargetPlatform == TargetPlatform.iOS) {
assert(iOSOption != null, 'The iOSOption cannot be empty.');
await _launchUrl(iOSOption?.url);
} else {
const String details =
'The `openStore` method of the upgrade_util plugin currently only '
'supports Android and iOS.';
throw PlatformException(code: 'Unimplemented', details: details);
}
}