Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Appstore as modal view in iOS6

Tags:

I noticed that when the user taps an app store link in the iOS6 mail app, mail opens a modal view representing the app store instead of switching to the App Store app as it did in previous versions.

Does Apple provide access to this capability, or it is exclusive to their integrated programs?


Note: If you have iOS 6 and want test it, just open appstore and email app to yourself.

like image 902
iTarek Avatar asked Sep 18 '12 10:09

iTarek


1 Answers

I added this method as a category to UIViewController, but you can repurpose it for your own needs. The app store ID is the big number in the app store URL. Make sure you import the StoreKit framework and header file!

@import StoreKit;  - (void)presentAppStoreForID:(NSNumber *)appStoreID withDelegate:(id<SKStoreProductViewControllerDelegate>)delegate {     if(NSClassFromString(@"SKStoreProductViewController")) { // Checks for iOS 6 feature.          SKStoreProductViewController *storeController = [[SKStoreProductViewController alloc] init];         storeController.delegate = delegate; // productViewControllerDidFinish          // Example App Store ID (e.g. for Words With Friends)         // @322852954          [storeController loadProductWithParameters:@{ SKStoreProductParameterITunesItemIdentifier: appStoreID }                                    completionBlock:^(BOOL result, NSError *error) {             if (result) {                 [self presentViewController:storeController animated:YES completion:nil];             } else {                 [[[UIAlertView alloc] initWithTitle:@"Uh oh!" message:@"There was a problem opening the app store" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles: nil] show];             }         }];      } else { // Before iOS 6, we can only open the App Store URL         [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://itunes.apple.com/app/id%@",appStoreID]]];     } } 
like image 109
MaxGabriel Avatar answered Sep 17 '22 15:09

MaxGabriel