自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iOS6 SDK: 在應(yīng)用內(nèi)展示App Store

移動(dòng)開發(fā) iOS
我們將要?jiǎng)?chuàng)建的app不是多實(shí)用,僅有一個(gè)按鈕,可以把用戶帶入App Store,向用戶展示我最近發(fā)布的一款簡(jiǎn)單的天氣類app。通過實(shí)例我們可以了解不同的部分如何很好地契合在一起,還可以了解如何在項(xiàng)目中使用SKStoreProductViewController類。

出于什么樣的原因你會(huì)希望用戶從你的iOS app中進(jìn)入App Store呢?可能你想用戶去App Store 為你的應(yīng)用評(píng)分,也可能你希望用戶看到你其他的iOS app。iOS 6引入了 SKStoreProductViewController類,可以讓用戶在不離開當(dāng)前應(yīng)用的前提下展示App Store中的其他產(chǎn)品。

Store Kit(商店套件)

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

SKStoreProductViewController 類是UIViewController的子類, 如果你對(duì)view controller比較熟悉的話,那 SKStoreProductViewController使用起來也非常簡(jiǎn)單了。當(dāng)你希望向用戶展示App Store中產(chǎn)品時(shí),你需要:

1.實(shí)例化一個(gè)SKStoreProductViewController類

2.設(shè)置它的delegate

3.把sotre product視圖控制器顯示給消費(fèi)者

剩下的就交給操作系統(tǒng)來處理了。需要記住一點(diǎn)的是SKStoreProductViewController只能以模態(tài)的方式顯示。 SKStoreProductViewControllerDelegate協(xié)議定義了一個(gè)單獨(dú)的方法— productViewControllerDidFinish:,當(dāng)消費(fèi)者離開App Store時(shí)會(huì)調(diào)用這個(gè)方法—一般是通過點(diǎn)擊左上角畫面中的取消 按鈕。通過給代理發(fā)送productViewControllerDidFinish:消息,操作系統(tǒng)就會(huì)把控制權(quán)返回到你的程序。下面我來演示一下如何 在一個(gè)簡(jiǎn)單的程序中使用SKStoreProductViewController類。

Step 1: Setting Up the Project(設(shè)置項(xiàng)目)

我們將要?jiǎng)?chuàng)建的app不是多實(shí)用,僅有一個(gè)按鈕,可以把用戶帶入App Store,向用戶展示我最近發(fā)布的一款簡(jiǎn)單的天氣類app。通過實(shí)例我們可以了解不同的部分如何很好地契合在一起,還可以了解如何在項(xiàng)目中使用SKStoreProductViewController類。

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

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

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

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

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

  1. #import<StoreKit/StoreKit.h> 

下頁為您帶來構(gòu)建和運(yùn)行/總結(jié)/源文件

#p#

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

在視圖控制器的viewDidLoad方法中,在下面的代碼片段中創(chuàng)建一個(gè)新的按鈕。按鈕的類型是UIButtonTypeRoundedRect,然后我把這個(gè)按鈕放在視圖控制器view的正中間。同時(shí)我還給這個(gè)按鈕制定了一個(gè)title,并添加了一個(gè)target-action——匹配 UIControlEventTouchUpInside事件。這意味無論何時(shí),用戶點(diǎn)擊按鈕,view controller就會(huì)收到 “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: 方法中,我對(duì)SKStoreProductViewController進(jìn)行了初始化,并將自己設(shè)置為它的 delegate,然后在給這個(gè)實(shí)例發(fā)送一個(gè)loadProductWithParameters:completionBlock:消息。

loadProductWithParameters:completionBlock:接收兩個(gè)參數(shù):

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

(2)一個(gè)completion block。

當(dāng)App store請(qǐng)求結(jié)束時(shí)會(huì)調(diào)用這個(gè)completion block。在完成的block中,我們要核實(shí)是否有錯(cuò)誤遺漏,并把store product 視圖控制器展示給用戶。

請(qǐng)記住,即使用戶沒有離開你的程序,操作系統(tǒng)仍然會(huì)在內(nèi)部進(jìn)行與App store的連接。由于在請(qǐng)求App Store過程中,會(huì)需要稍微長(zhǎng)的一段時(shí)間, 也就是說,***在請(qǐng)求還沒有返回響應(yīng)時(shí)給用戶顯示一個(gè)風(fēng)火輪。一旦請(qǐng)求完成(成功或者不成功),已經(jīng)完成的block將會(huì)允許我們解除 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的唯一識(shí)別符,App Store中的每個(gè)app都有一個(gè)唯一識(shí)別符/Apple ID,注意你需要將在參數(shù)字典中以字符串的形式傳遞apple id。

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

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

在view controller的執(zhí)行文件中執(zhí)行productViewControllerDidFinish:方法(如下所示),注意一點(diǎn),當(dāng)調(diào) 用 loadProductWithParameters:completionBlock: 方法 時(shí),sotre product view controller將以模態(tài)方式顯示。當(dāng)用戶打算離開App Store時(shí)我們負(fù)責(zé)解除(隱 藏)sotre product view controller。

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

Step 4: Build and Run(構(gòu)建和運(yùn)行)

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

Conclusion(結(jié)論)

SKStoreProductViewController類添加至Store Kit框架是一個(gè)不錯(cuò)的進(jìn)步,我已經(jīng)在我的新應(yīng)用中充分利用了這個(gè)優(yōu)勢(shì),希望對(duì)你會(huì)有所幫助。

源文件:

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

責(zé)任編輯:閆佳明 來源: cocoachina
相關(guān)推薦

2012-10-24 15:08:11

設(shè)備不被追蹤長(zhǎng)尾

2013-05-17 10:19:17

2011-02-18 14:49:28

App Store蘋果iOS

2013-08-01 10:22:28

Google Play應(yīng)用商店App Store

2014-07-16 09:56:52

2012-08-22 13:00:08

2010-10-25 10:58:50

后街籃球應(yīng)用

2012-04-05 11:14:14

iPad

2021-09-14 09:21:50

蘋果應(yīng)用商店App Store

2022-07-20 16:04:15

iOS蘋果App Store

2014-07-14 11:14:00

iOSSafariWebApp

2012-03-23 22:31:10

移動(dòng)支付

2018-06-26 10:25:53

iOS應(yīng)用系統(tǒng)

2011-07-21 16:21:04

App Store蘋果

2011-04-19 09:28:25

App Store蘋果應(yīng)用商店

2014-10-15 09:35:31

2011-03-11 14:14:51

Android MarApp S

2012-07-24 10:21:41

2020-02-22 13:00:26

App StoreiOSOffice

2021-09-30 09:52:21

App StoreiOS蘋果
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)