成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS6 SDK: 在應用內展示App Store

移動開發 iOS
我們將要創建的app不是多實用,僅有一個按鈕,可以把用戶帶入App Store,向用戶展示我最近發布的一款簡單的天氣類app。通過實例我們可以了解不同的部分如何很好地契合在一起,還可以了解如何在項目中使用SKStoreProductViewController類。

出于什么樣的原因你會希望用戶從你的iOS app中進入App Store呢?可能你想用戶去App Store 為你的應用評分,也可能你希望用戶看到你其他的iOS app。iOS 6引入了 SKStoreProductViewController類,可以讓用戶在不離開當前應用的前提下展示App Store中的其他產品。

Store Kit(商店套件)

SKStoreProductViewController類是Store Kit框架的一部分。SKStoreProductViewController使用起來非常簡單,在用實例講解之前,了解一些基本的知識很有必要。

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

1.實例化一個SKStoreProductViewController類

2.設置它的delegate

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

剩下的就交給操作系統來處理了。需要記住一點的是SKStoreProductViewController只能以模態的方式顯示。 SKStoreProductViewControllerDelegate協議定義了一個單獨的方法— productViewControllerDidFinish:,當消費者離開App Store時會調用這個方法—一般是通過點擊左上角畫面中的取消 按鈕。通過給代理發送productViewControllerDidFinish:消息,操作系統就會把控制權返回到你的程序。下面我來演示一下如何 在一個簡單的程序中使用SKStoreProductViewController類。

Step 1: Setting Up the Project(設置項目)

我們將要創建的app不是多實用,僅有一個按鈕,可以把用戶帶入App Store,向用戶展示我最近發布的一款簡單的天氣類app。通過實例我們可以了解不同的部分如何很好地契合在一起,還可以了解如何在項目中使用SKStoreProductViewController類。

從模版列表中選擇一個Single View Application模版,在Xcode中創建一個新的項目(圖1)。

將程序的名稱設置為app store,然后輸入一個company identifier,并將device family設置為iPhone,***勾選 上Automatic Reference Counting。剩余的勾選框不要勾選,如圖2。“告訴”Xcode你希望保存項目的地方,點擊創建按鈕。

Step 2: Adding the Store Kit Framework(添加Store Kit框架)

由于SKStoreProductViewController類是Store Kit框架的一部分,所以我們需要將這個Store Kit框架鏈接到我們的工程中。在工程導航器中選中工程,然后在target列表中選中target。在畫面的頂部,選擇Build Phase選項,然后打開Link Binary With Libraries。點擊‘+’按鈕,并在圖3中的畫面列表中選擇StoreKit.framework。這樣就可以 成功的將Store Kit框架鏈接到工程中。

為了使用MTViewController類里的Store Kit框架,我們需要輸入框架的頭文件,打開MTViewController.h,在頂部添加下邊這個引入語法:

  1. #import<StoreKit/StoreKit.h> 

下頁為您帶來構建和運行/總結/源文件

#p#

Step 3: Using the SKStoreProductViewController Class(使用SKStoreProductViewController類)

在視圖控制器的viewDidLoad方法中,在下面的代碼片段中創建一個新的按鈕。按鈕的類型是UIButtonTypeRoundedRect,然后我把這個按鈕放在視圖控制器view的正中間。同時我還給這個按鈕制定了一個title,并添加了一個target-action——匹配 UIControlEventTouchUpInside事件。這意味無論何時,用戶點擊按鈕,view controller就會收到 “open App Store”的信息。

  1. - (void)viewDidLoad {      
  2.     [super viewDidLoad];      
  3.      // Initialize Button      
  4.      UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];      
  5.      [button setTitle:@"Go to App Store" forState:UIControlStateNormal];      
  6.      [button setFrame:CGRectMake(0.0, 0.0, 200.0, 44.0)];      
  7.      [button setCenter:self.view.center];     
  8.      [self.view addSubview:button];      
  9.      // Add Target-Action Pair      
  10.      [button addTarget:self action:@selector(openAppStore:) forControlEvents:UIControlEventTouchUpInside]; 
  11.  } 

在openAppStore: 方法中,我對SKStoreProductViewController進行了初始化,并將自己設置為它的 delegate,然后在給這個實例發送一個loadProductWithParameters:completionBlock:消息。

loadProductWithParameters:completionBlock:接收兩個參數:

(1)一個字典:用一個key指定我們想要顯示給用的程序的標示符。

(2)一個completion block。

當App store請求結束時會調用這個completion block。在完成的block中,我們要核實是否有錯誤遺漏,并把store product 視圖控制器展示給用戶。

請記住,即使用戶沒有離開你的程序,操作系統仍然會在內部進行與App store的連接。由于在請求App Store過程中,會需要稍微長的一段時間, 也就是說,***在請求還沒有返回響應時給用戶顯示一個風火輪。一旦請求完成(成功或者不成功),已經完成的block將會允許我們解除 activity indicator。

  1.  - (void)openAppStore:(id)sender {      
  2.      // Initialize Product View Controller      
  3.      SKStoreProductViewController *storeProductViewController = [[SKStoreProductViewController alloc] init];      
  4.      // Configure View Controller      
  5.      [storeProductViewController setDelegate:self];     
  6.      [storeProductViewController loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier : @"594467299"
  7. completionBlock:^(BOOL result, NSError *error) {          
  8.          if (error) {              
  9.               NSLog(@"Error %@ with User Info %@.", error, [error userInfo]);          
  10.          } else {              
  11.              // Present Store Product View Controller              
  12.              [self presentViewController:storeProductViewController animated:YES completion:nil];         
  13.          }      
  14.       }];  
  15.   } 

注意:你可以在iTunes Connect找到app的唯一識別符,App Store中的每個app都有一個唯一識別符/Apple ID,注意你需要將在參數字典中以字符串的形式傳遞apple id。

在生成和運行程序之前,我們需要MTViewController類通過實現productViewControllerDidFinish:方法以遵循 SKStoreProductViewControllerDelegate協議。我們可以通過告訴編譯器“MTViewController類符合 SKStoreProductViewController授權協議”來更新view controller的接口文件,看下邊:

  1. #import <UIKit/UIKit.h>  
  2. #import <StoreKit/StoreKit.h>  
  3. @interface MTViewController : UIViewController <SKStoreProductViewControllerDelegate>  
  4. @end 

在view controller的執行文件中執行productViewControllerDidFinish:方法(如下所示),注意一點,當調 用 loadProductWithParameters:completionBlock: 方法 時,sotre product view controller將以模態方式顯示。當用戶打算離開App Store時我們負責解除(隱 藏)sotre product view controller。

  1. - (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {      
  2.      [self dismissViewControllerAnimated:YES completion:nil];  
  3.  } 

Step 4: Build and Run(構建和運行)

雖然蘋果表示SKStoreProductViewController類可以向用戶展示其他app,但這是一種理想的在用戶不離開當前app的情況下,讓用戶去App Store評分的方法。

Conclusion(結論)

SKStoreProductViewController類添加至Store Kit框架是一個不錯的進步,我已經在我的新應用中充分利用了這個優勢,希望對你會有所幫助。

源文件:

http://down.51cto.com/data/812812

責任編輯:閆佳明 來源: cocoachina
相關推薦

2012-10-24 15:08:11

設備不被追蹤長尾

2013-05-17 10:19:17

2011-02-18 14:49:28

App Store蘋果iOS

2013-08-01 10:22:28

Google Play應用商店App Store

2014-07-16 09:56:52

2010-10-25 10:58:50

后街籃球應用

2012-08-22 13:00:08

2021-09-14 09:21:50

蘋果應用商店App Store

2022-07-20 16:04:15

iOS蘋果App Store

2011-04-19 09:28:25

App Store蘋果應用商店

2011-07-21 16:21:04

App Store蘋果

2011-03-11 14:14:51

Android MarApp S

2014-10-15 09:35:31

2012-03-23 22:31:10

移動支付

2018-06-26 10:25:53

iOS應用系統

2012-04-05 11:14:14

iPad

2012-07-24 10:21:41

2014-07-14 11:14:00

iOSSafariWebApp

2021-09-30 09:52:21

App StoreiOS蘋果

2020-02-22 13:00:26

App StoreiOSOffice
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 视频一区二区三区中文字幕 | 久久久久成人精品免费播放动漫 | 欧美成人精品二区三区99精品 | 免费在线观看av的网站 | 日韩精品在线视频 | 国内精品久久久久久影视8 最新黄色在线观看 | 国产十日韩十欧美 | 伦理午夜电影免费观看 | 精品永久 | 久久视频精品在线 | 麻豆国产一区二区三区四区 | 欧美 中文字幕 | 成人做爰9片免费看网站 | 中文福利视频 | 久久久久久99 | 日本精品视频 | 亚洲一页| 日本在线网址 | 久久国产精品无码网站 | 伊大人久久 | 欧美在线亚洲 | 欧美成人免费在线视频 | 欧美视频在线看 | 久草网址 | 国产精品久久久久久久午夜片 | 国际精品久久 | 祝你幸福电影在线观看 | 久久精品免费一区二区三 | www国产成人免费观看视频,深夜成人网 | 国产高清免费视频 | 色射综合| 久草新在线 | 国产精品久久久久久久免费观看 | 国产成人精品综合 | 久久久精 | 老牛嫩草一区二区三区av | 91精品一区 | av一级久久| 国产精品久久久久久久久婷婷 | 欧美一区二区三区在线播放 | 久久噜噜噜精品国产亚洲综合 |