精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

IAP最佳實踐方法

移動開發(fā) iOS
該文檔是蘋果8月5號發(fā)布的新Technical Note,最要描述了iOS 和 OS X 應(yīng)用程序中的IAP的最佳實踐。 以下是推薦給開發(fā)者的IAP最佳實踐列表。

[[118315]]

該文檔是蘋果8月5號發(fā)布的新Technical Note--In-App Purchase Best Practices,最要描述了iOS 和 OS X 應(yīng)用程序中的IAP的最佳實踐。

以下是推薦給開發(fā)者的IAP最佳實踐列表。

在應(yīng)用啟動時添加一個交易隊列觀察者

應(yīng)用程序調(diào)用StoreKit把觀察者鏈接到payment queue。

  1. [SKPaymentQueue defaultQueue] addTransactionObserver:your_observer];  

在恢復(fù)或者運行你的app應(yīng)用時,如果支付隊列的內(nèi)容發(fā)生了變化,StoreKit則會自動通知你(注冊的)觀察者 在應(yīng)用啟動時添加觀察者確保它在所有app啟動時都會存在,這將允許你的應(yīng)用能接收到所有的payment queue提醒。

考慮應(yīng)用程序這樣一個情況,在向隊列(如表1)添加支付請求前,應(yīng)用的 DetailViewController 類創(chuàng)建了一個觀察者。這個觀察者的存在時間和 DetailViewController 實例一樣長。如果出現(xiàn)中斷情況,比如網(wǎng)絡(luò)失敗,那么app將不能完成購買流程,而相關(guān)的交易仍在支付隊列中。當(dāng)app正?;謴?fù)后,它將沒有觀察者存在,因 為在應(yīng)用被發(fā)送至后臺時,上述觀察者就已經(jīng)被解除了。因此,你的應(yīng)用將不會收到隊列中的交易通知。

列表 1.不遵循實現(xiàn)交易觀察者最佳實踐:當(dāng)用戶嘗試購買產(chǎn)品時,應(yīng)用為 payment queue 添加觀察者:

  1. @implementation DetailViewController  
  2.                   ....  
  3.    
  4. // Called when a customer attempts to purchase a product  
  5. - (IBAction)purchase:(id)sender  
  6. {  
  7.     // Register an observer to the payment queue  
  8.     [[SKPaymentQueue defaultQueue] addTransactionObserver:self];  
  9.    
  10.     // Create a payment request  
  11.     SKMutablePayment *payment = [SKMutablePayment paymentWithProduct:self.product];  
  12.    
  13.     // Submit the payment request to the payment queue  
  14.     [[SKPaymentQueue defaultQueue] addPayment:payment];  
  15. }  
  16.              ....  
  17. @end  

列表 2.遵循注冊交易觀察者的最佳實踐

  1. @implementation AppDelegate  
  2.    
  3. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
  4. {  
  5.     // Attach an observer to the payment queue  
  6.     [[SKPaymentQueue defaultQueue] addTransactionObserver:self];  
  7.     return YES;  
  8. }  
  9.    
  10. // Called when the application is about to terminate  
  11. - (void)applicationWillTerminate:(UIApplication *)application  
  12. {  
  13.      // Remove the observer  
  14.     [[SKPaymentQueue defaultQueue] removeTransactionObserver:self];  
  15. }  
  16.    
  17.             ....  
  18. @end  

StoreKit 在app調(diào)用時從payment queue移除觀察者: 

同樣,如果沒有從 payment queue 移除觀察者,StoreKit 將會試圖通知上述觀察者,從而導(dǎo)致應(yīng)用崩潰,好像觀察者已經(jīng)不復(fù)存在了。

在展示應(yīng)用內(nèi)商店UI之前向App Store詢問產(chǎn)品信息

在決定在用戶界面中展示可購買商品之前,你的應(yīng)用必須首先向App Store發(fā)送一個產(chǎn)品請求。發(fā)送產(chǎn)品請求可讓你確定產(chǎn)品是否可在App Store中出售,從而阻止展示不能購買的產(chǎn)品??刹榭?Retrieving Product Information 學(xué)習(xí)如何創(chuàng)建一個產(chǎn)品請求。App Store使用 SKResponse 對象響應(yīng)產(chǎn)品請求,使用其 products 屬性來更新你的UI,以確保你的用戶只能看到App Store中可供銷售的產(chǎn)品。

列表 3.不遵循IAP產(chǎn)品展示最佳實踐:在展示可銷售產(chǎn)品后, APP向App Store詢問相關(guān)產(chǎn)品信息。

  1. // App first displays a product for sale, then queries the App Store about it when a customer attempts to purchase it  
  2. - (IBAction)purchase:(id)sender  
  3. {  
  4.     // Create a set for your product identifier  
  5.     NSSet *productSet = [NSSet setWithObject:@"your_product_identifier"];  
  6.     // Create a product request object and initialize it with the above set  
  7.     SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:productSet];  
  8.    
  9.     request.delegate = self;  
  10.     // Send the request to the App Store  
  11.     [request start];  
  12. }  
  13.    
  14.    
  15.    
  16. // Get the App Store's response  
  17. - (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response  
  18. {  
  19.    // No purchase will take place if there are no products available for sale.  
  20.   // As a result, StoreKit won't prompt your customer to authenticate their purchase.  
  21.    if ([response.products count] > 0)  
  22.    {  
  23.         SKProduct *product = (SKProduct *)[response.products objectAtIndex:0];  
  24.    
  25.         // The product is available, let's submit a payment request to the queue  
  26.         SKMutablePayment *payment = [SKMutablePayment paymentWithProduct:product];  
  27.         [[SKPaymentQueue defaultQueue] addPayment:payment];  
  28.     }  
  29. }  

列表 4.  遵循IAP產(chǎn)品展示最佳實踐

  1. -(void)fetchProductInformationForIds:(NSArray *)productIds  
  2. {  
  3.     // Create a set for your product identifier  
  4.     NSSet *mySet = [NSSet setWithObject:your_product_identifier];  
  5.    
  6.     // Create a product request object and initialize it with the above set  
  7.     SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:mySet];  
  8.    
  9.     request.delegate = self;  
  10.    
  11.     // Send the request to the App Store  
  12.     [request start];  
  13. }  
  14.    
  15.    
  16. //Get the App Store's response  
  17. - (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response  
  18. {  
  19.     if ([response.products count] > 0)  
  20.     {  
  21.         // Use availableProducts to populate your UI  
  22.         NSArray *availableProducts = response.products;  
  23.     }  
  24. }  

為restoring products提供一個UI
如果你的應(yīng)用出售 non-consumable、auto-renewable subscription 或者 non-renewing subscription產(chǎn)品,那你必須提供一個允許恢復(fù)它們的UI。可以查看 Differences Between Product Types 和 Restoring Purchased Products 獲得更多信息。
處理交易
調(diào)用 StoreKit 為 payment queue 添加支付請求:

  1. [[SKPaymentQueue defaultQueue] addPayment:your_payment];  

隊列創(chuàng)建交易對象來處理這個請求。當(dāng)交易狀態(tài)改變時,StoreKit通過調(diào)用 paymentQueue: updatedTransactions: 來通知你的觀察者。

In-App Purchase Programming Guide> Delivering Products> Table 4-1 Transaction statuses and corresponding actions 列出了每個交易可能存在的4種交易狀態(tài)。要確保觀察者的 paymentQueue: updatedTransactions: 可以在任何時間響應(yīng)這些狀態(tài)。如果IAP產(chǎn)品是由蘋果托管的,那么需在在觀察者上實現(xiàn) paymentQueue:updatedDownloads: 方法。

提供付費內(nèi)容

當(dāng)收到一個狀態(tài)是 SKPaymentTransactionStatePurchased 或者 SKPaymentTransactionStateRestored 的交易時,應(yīng)用程序?qū)蛴脩艚桓秲?nèi)容或者解鎖app的功能。這些狀態(tài)表明已經(jīng)接收到可售產(chǎn)品的付款。用戶也希望應(yīng)用能提供付費內(nèi)容。

如果你的購買產(chǎn)品包括App Store托管內(nèi)容,要確保調(diào)用 SKPaymentQueue's startDownloads: 下載內(nèi)容??刹榭?Unlocking App FunctionalityDelivering Associated Content 獲得更多信息。

完成交付

交易將會保存在支付隊列中直到它們被移除。每次啟動應(yīng)用或者從后臺恢復(fù)時,StoreKit將會調(diào)用觀察者的 paymentQueue: updatedTransactions: 直到它們被移除。大意是你的用戶可能反復(fù)請求驗證它們的購買,或者被阻止購買你的產(chǎn)品。

調(diào)用 finishTransaction: 從隊列中移除交易。完成的交易是不可恢復(fù)的,因此你務(wù)必提供內(nèi)容,下載所有蘋果托管的產(chǎn)品內(nèi)容,或者在完成交易前完成你的購買流程。查看 Finishing the Transaction 獲得更多信息。

測試IAP的實現(xiàn)

要確保在把應(yīng)用提交審核之前徹底測試IAP的實現(xiàn)??稍?Suggested Testing Steps 查看多測試場景,在 Frequently Asked Questions 查看各種疑難解答。

參考:

 

In-App Purchase Programming Guide

Adding In-App Purchase to your iOS and OS X Applications

WWDC 2012: Selling Products with Store Kit

WWDC 2012: Managing Subscriptions with In-App Purchase

WWDC 2013: Using Store Kit for In-App Purchases

WWDC 2014: Optimizing In-App Purchases

本文鏈接:http://www.cocoachina.com/applenews/devnews/2014/0818/9407.html

 

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

2024-05-16 13:13:39

微服務(wù)架構(gòu)自動化

2011-09-01 14:36:38

敏捷

2022-06-28 13:25:19

K8sPrometheusGrafana

2013-07-24 10:03:15

2011-08-18 11:05:21

jQuery

2023-07-21 01:12:30

Reactfalse?變量

2013-08-12 09:45:06

最佳編程方法編程方法編程

2012-08-09 09:10:56

代碼審查代碼

2014-06-09 15:50:08

2024-08-21 08:02:47

2011-12-21 13:35:39

JavaJFreeChart

2015-09-23 09:08:38

java反射

2023-09-11 08:50:03

Maven工具關(guān)系管理

2011-12-21 13:52:27

JavaJFreeChart

2010-12-02 08:12:16

2023-09-13 08:00:00

JavaScript循環(huán)語句

2010-02-04 11:55:27

ibmdwDB2

2010-07-06 09:07:09

2009-12-31 10:16:49

2023-05-15 08:24:46

點贊
收藏

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

日本天堂网在线| 91av视频免费观看| 国产尤物视频在线| 久久99久久99小草精品免视看| 精品国产拍在线观看| 精品国产乱码久久久久久1区二区| 性欧美video高清bbw| caoporn国产精品| 国产精品视频免费在线观看| 欧美三级免费看| 亚洲欧美日本伦理| 91麻豆精品国产91久久久使用方法| 欧洲精品在线播放| 国产高清在线观看| 成a人片国产精品| 国产精品久久久久免费a∨| 精品自拍偷拍视频| 伊人久久大香线蕉av不卡| 制服丝袜中文字幕一区| 91视频 -- 69xx| 麻豆视频在线| 国产午夜亚洲精品午夜鲁丝片| 97超碰人人模人人爽人人看| 欧美特级黄色片| 影音先锋久久资源网| 伊人久久久久久久久久久久久| 久久久久无码国产精品一区李宗瑞 | 国产精品美女xx| 中文字幕欧美在线观看| 日韩五码在线| 久久久久久国产精品美女| 日本视频在线免费| 国产一区二区三区91| 亚洲国产精品久久久久秋霞蜜臀 | 成人av资源在线观看| 国产精品专区一| 日韩欧美在线观看免费| 国内综合精品午夜久久资源| 日韩在线观看网站| 丰满的亚洲女人毛茸茸| 性欧美lx╳lx╳| 亚洲精品一区二区精华| 人妻精品久久久久中文字幕69| 精品国模一区二区三区| 天天av天天翘天天综合网色鬼国产 | 一区二区三区免费观看| 亚洲最大色综合成人av| 国产综合在线观看| 国产欧美一区二区三区在线老狼 | 波多野结衣的一区二区三区| 亚洲精品suv精品一区二区| 午夜性福利视频| 国产一区 二区| 91精品国产综合久久久久久久久久 | 亚洲第一中文字幕在线观看| 男男受被啪到高潮自述| 日本99精品| 精品日产卡一卡二卡麻豆| 99热这里只有精品2| 日本高清精品| 精品国产sm最大网站| a级片在线观看视频| 亚洲三级av| 亚洲精品一区二区三区福利| 超碰97在线资源站| 亚洲第一二三区| 亚洲欧美一区二区三区情侣bbw| 女同性恋一区二区三区| 亚洲精品亚洲人成在线| 亚洲区中文字幕| 亚洲一二三四视频| 亚洲精品91| 欧美极品少妇与黑人| 日韩成人一区二区三区| 久久青草久久| 国产伊人精品在线| www.国产麻豆| 91免费视频观看| 五月天亚洲综合情| 老司机在线永久免费观看| 亚洲丝袜精品丝袜在线| 男人的天堂avav| 国产高潮在线| 在线视频欧美区| 中文字幕线观看| 丁香综合av| 一本一本久久a久久精品综合小说 一本一本久久a久久精品牛牛影视 | 亚洲成人久久久久| 精品人妻互换一区二区三区| 久久精品国内一区二区三区水蜜桃| 久久亚洲国产成人| 国产又色又爽又黄的| 蜜桃一区二区三区在线观看| 亚洲专区在线视频| 手机看片福利在线观看| 国产精品国产三级国产普通话三级 | 尤物视频在线免费观看| 一区二区三区精品| 色七七在线观看| 一区中文字幕电影| 亚洲性av在线| 久久国产露脸精品国产| 久久深夜福利| 成人91免费视频| 精品美女视频在线观看免费软件| 17c精品麻豆一区二区免费| www在线观看免费| 六九午夜精品视频| 日韩av在线免费看| 成人免费黄色小视频| 亚洲欧美日韩专区| 97久久天天综合色天天综合色hd| 免费av在线电影| 亚洲午夜视频在线观看| 999精彩视频| 亚洲妇女av| 欧美精品videossex88| 真实新婚偷拍xxxxx| 成人美女视频在线观看| 中文字幕欧美人与畜| 少妇淫片在线影院| 欧美videossexotv100| 色噜噜噜噜噜噜| 国产婷婷精品| 国产精品美女诱惑| a毛片在线观看| 欧美日韩一区在线观看| 国产偷人妻精品一区| 韩日成人在线| 92福利视频午夜1000合集在线观看 | 精品亚洲永久免费| 国模大尺度一区二区三区| 欧美人与性禽动交精品| aa视频在线观看| 欧美mv日韩mv国产| 538精品在线视频| 精品一区二区精品| 亚洲午夜精品久久| 影音成人av| 亚洲人成电影网站色xx| 欧美在线观看不卡| 91日韩精品一区| 国产综合av在线| 久久99国产精品久久99大师 | 精品视频久久久久久| 伊人365影院| 高清国产一区二区| 免费的一级黄色片| 日韩激情精品| 欧美精品在线观看| 草草视频在线播放| 亚洲综合激情另类小说区| 亚洲精品乱码久久久久久9色| **女人18毛片一区二区| 成人免费xxxxx在线观看| 麻豆传媒在线观看| 日韩一区二区视频| 国产小视频在线观看免费| 国产成人三级在线观看| 国产毛片久久久久久国产毛片| 亚洲午夜精品| 国语自产精品视频在线看一大j8| 三级小视频在线观看| 午夜激情久久久| 免费在线观看你懂的| 日韩精品成人一区二区在线| 亚洲 国产 日韩 综合一区| 看片一区二区| 色综合视频网站| 婷婷综合激情网| 在线欧美小视频| 国产精品免费在线视频| 国产成人鲁色资源国产91色综| 91免费国产精品| 欧美五码在线| 国产精品一区二区三区久久| 二区在线播放| 日韩不卡在线观看| 中文av免费观看| 一区二区三区欧美日| 欧亚乱熟女一区二区在线| 先锋影音久久久| 欧美巨猛xxxx猛交黑人97人| 91精品人妻一区二区三区蜜桃2| 欧美91视频| 国产欧美日韩伦理| 欧美日韩视频网站| 日韩中文字幕亚洲| 亚洲AV无码国产精品午夜字幕| 五月综合激情婷婷六月色窝| 亚洲а∨天堂久久精品2021| 韩国一区二区视频| 欧美精品性视频| 欧美麻豆久久久久久中文| 久精品免费视频| 热久久免费国产视频| av资源一区二区| 日韩国产欧美一区| 国产小视频免费| gai在线观看免费高清| 亚洲精品中文字幕在线播放| 久久人妻无码aⅴ毛片a片app| 日韩久久精品视频| 国产视频第一页| 懂色av中文在线| 国产成人精品一区二区三区免费| 99国产精品免费网站| 99综合在线| 美女黄色成人网| 国产成人综合亚洲91猫咪| 粉嫩aⅴ一区二区三区四区| av一区二区三区在线| 亚洲一区自拍偷拍| 日韩一区视频在线| 亚洲综合第一区| 国产99久久久国产精品免费看| 99999精品视频| 欧美日韩中文| 亚洲一区二区三区加勒比| 欧美一区二区三区红桃小说| 91亚洲精品视频| 九九热这里有精品| 欧美孕妇与黑人孕交| 五月花成人网| 久久天天躁日日躁| 成年在线观看免费人视频| 日韩av一卡二卡| 亚洲精品一区二区三区不卡| 欧美日韩国产大片| 91黑人精品一区二区三区| 五月天国产精品| 精品少妇一二三区| 一区二区三区在线观看动漫| 国产高清视频免费在线观看| 国产日韩综合av| 中文字幕av网址| 91在线视频18| 国产一级伦理片| 99久久99久久综合| 男男一级淫片免费播放| 国产91高潮流白浆在线麻豆| 欧洲在线免费视频| 极品少妇xxxx偷拍精品少妇| 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 福利视频在线看| 亚洲美女精品久久| 四虎在线免费观看| 日韩黄色在线免费观看| 天堂成人在线视频| 亚洲高清在线观看| 亚洲人妻一区二区三区| 亚洲黄色www网站| 污污网站在线免费观看| 日韩精品在线观看网站| 日韩欧美亚洲系列| 亚洲性av网站| 国产在线高潮| 欧美激情日韩图片| 国产精品xx| 国产ts人妖一区二区三区| 美女100%一区| 国产欧美精品一区二区| 亚洲成a人片777777久久| 91免费看片网站| 成人爽a毛片| 国产综合欧美在线看| 美女亚洲一区| 亚洲视频电影| 欧美日本不卡| 777精品久无码人妻蜜桃| 欧美亚洲专区| 国内外成人免费在线视频| 激情文学综合丁香| 美女久久久久久久久| 久久久久久久免费视频了| 国产精品久久久视频| 亚洲人成亚洲人成在线观看图片| 免费日韩在线视频| 都市激情亚洲色图| 中文字幕永久免费视频| 欧美一级欧美三级在线观看| 欧美自拍第一页| 亚洲图片制服诱惑| 91高清在线观看视频| 97超碰色婷婷| www.成人| 蜜桃av噜噜一区二区三区| 青青一区二区三区| 97超碰在线人人| 人禽交欧美网站| 亚洲国产精品第一页| 国产清纯白嫩初高生在线观看91| 中文字幕电影av| 一本色道亚洲精品aⅴ| aa视频在线免费观看| 日韩电影免费在线观看中文字幕 | 欧美sss在线视频| 亚洲狠狠婷婷综合久久久| 黄色工厂这里只有精品| 一级特黄性色生活片| 东方aⅴ免费观看久久av| www久久久久久久| 五月天一区二区| 国产免费av观看| 亚洲日本欧美日韩高观看| 在线观看午夜av| 国产精品免费福利| 女仆av观看一区| 色哺乳xxxxhd奶水米仓惠香| 狂野欧美性猛交xxxx巴西| 人妻精油按摩bd高清中文字幕| 久久蜜桃av一区二区天堂| 欧美日韩人妻精品一区二区三区| 日本福利一区二区| 亚洲av毛片成人精品| 九九久久久久久久久激情| www.成人在线视频| 久久久久久久有限公司| 欧美日韩p片| 亚洲一二三不卡| 国产精品美女久久久久久久网站| 午夜精品三级久久久有码| 日韩欧美国产三级| 国产三级在线播放| 国产精品爽爽爽| 国产va免费精品观看精品视频| 亚洲理论电影在线观看| 国产一区二区不卡在线| 18啪啪污污免费网站| 在线亚洲+欧美+日本专区| 手机看片福利在线观看| 97在线免费视频| 国产精品流白浆在线观看| 青青视频免费在线观看| 韩国av一区二区三区在线观看| 亚洲一级理论片| 欧美性淫爽ww久久久久无| 黄色在线视频观看网站| 456亚洲影院| 亚洲第一福利社区| 97在线免费公开视频| 久久亚洲精品国产精品紫薇| 国产中文字字幕乱码无限| 精品欧美一区二区三区精品久久 | 国产精品视频自拍| 俺要去色综合狠狠| 三上悠亚av一区二区三区| 国产精品麻豆久久久| 亚洲视频一区在线播放| 日韩在线观看免费| 欧美电影在线观看网站| 亚洲精品一区二区三区av| 日韩精品电影一区亚洲| 一级片黄色录像| 在线综合亚洲欧美在线视频| av网站大全在线| 国产精品初高中精品久久| 怡红院精品视频在线观看极品| 在线天堂www在线国语对白| 欧美日韩另类字幕中文| 欧美在线一卡| 国产精品私拍pans大尺度在线 | 中文字字幕在线中文乱码| 色哟哟入口国产精品| 成人激情久久| 欧日韩免费视频| 91天堂素人约啪| 中文字幕av影视| 超碰日本道色综合久久综合 | 美女被啪啪一区二区| 日韩在线观看一区二区| 激情高潮到大叫狂喷水| 日韩三级在线观看| 欧洲一区精品| 先锋影音日韩| 国产丶欧美丶日本不卡视频| jizz国产免费| 国产一区二区日韩精品欧美精品| 日韩护士脚交太爽了| 日韩美女爱爱视频| 久久精品无码一区二区三区| 一卡二卡在线视频| 久久久久久久久久国产精品| 亚洲美女久久| 中文字幕视频三区| 亚洲福利一区二区三区| 黄色毛片在线观看| 91影院未满十八岁禁止入内| 国产亚洲激情| 免费成人美女女在线观看| 亚洲第一福利视频| 日本一道高清亚洲日美韩| 黄色影视在线观看| 国产亚洲一区字幕| 精品国产av一区二区三区| 热久久视久久精品18亚洲精品| 午夜精品网站| 欧洲性xxxx| 日韩av网站在线| 日韩激情精品|