ios6應用內直接跳轉App Store,不必切換至App Store應用

來源:互聯網
上載者:User

SKStoreProductViewController類是UIViewController的子類, 如果你對view controller比較熟悉的話,那SKStoreProductViewController使用起來也非常簡單了。當你希望向使用者展示App Store中產品時,你需要:


1.執行個體化一個SKStoreProductViewController類

2.設定它的delegate

3.把sotre product視圖控制器顯示給消費者


剩下的就交給作業系統來處理了。需要記住一點的是SKStoreProductViewController只能以模態的方式顯示。SKStoreProductViewControllerDelegate協議定義了一個單獨的方法—productViewControllerDidFinish:,當消費者離開App Store時會調用這個方法—一般是通過點擊左上方畫面中的取消按鈕。通過給代理髮送productViewControllerDidFinish:訊息,作業系統就會把控制權返回到你的程式。當然你不能忘了 只支援IOS6.0及其以上


.h

#import <Foundation/Foundation.h>@interface InlineAppstore : NSObject+ (InlineAppstore*)sharedInstance;- (void)showAppInApp:(NSString *)_appId;@end


.m

#import "InlineAppstore.h"#import "AppDelegate.h"#import <StoreKit/StoreKit.h>@interface InlineAppstore () <SKStoreProductViewControllerDelegate>@end@implementation InlineAppstore+ (InlineAppstore*)sharedInstance {    static InlineAppstore* pInlineAppstore = nil;        @synchronized(self) {        if (pInlineAppstore == nil) {            pInlineAppstore = [[self alloc] init];        }    }    return pInlineAppstore;}- (void)showAppInApp:(NSString *)_appId {    Class storeVC = NSClassFromString(@"SKStoreProductViewController");    if (storeVC != nil) {        SKStoreProductViewController *_SKSVC = [[SKStoreProductViewController alloc] init];        _SKSVC.delegate = self;        [_SKSVC loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier: _appId}                          completionBlock:^(BOOL result, NSError *error) {                              if (result) {                                  [[AppDelegate getInstance].navController presentViewController:_SKSVC                                                                                        animated:YES                                                                                      completion:nil];                              }                              else{                                  NSLog(@"%@",error);                              }                          }];    }    else{        //低於iOS6沒有這個類        NSString *_idStr = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/us/app/id%@?mt=8",_appId];        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:_idStr]];    }}#pragma mark - SKStoreProductViewControllerDelegate- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {    [viewController dismissViewControllerAnimated:YES completion:nil];}



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.