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

Adobe AIR教程:ANE面向IAP的測試和開發

移動開發
本文為AIR Native Extension實現iOS應用內付費全教程的第四部分:ANE面向IAP的測試和開發。

本文的內容如下

  • 在Native擴展中使用StoreKit框架
  • ActionScript擴展
  • ANE-IAP開發實例分享

本文用到的工具和設備如下
Flash Builder 4.5
Flex SDK 4.5.1
Flash Professional CS5.5
AIR SDK 3.0
Xcode 4.1 + iOS SDK 4.3
iPad 1

 

在Native擴展中使用StoreKit框架

下載安裝XCode 4和iOS SDK之后,讓我們先來了解一下蘋果原生類庫是如何處理應用內付費功能的。iOS SDK中有一個框架叫做StoreKit,它負責應用程序和應用商店的業務流程。StoreKit中有一些負責具體功能的類,商品的請求,請求結果,結果回調,購買,購買隊列等都由不同的類來完成。

 

圖1 StoreKit的業務流程

如上圖所示,StoreKit解決內付費業務的大體流程可以概括成這樣,SKProductsRequest向商店發出請求獲得商品信息,商店通過回調函數SKProductsRequestDelegate把請求的結果SKProductsReponse傳了回來,如果用戶選擇購買商品,則創建一個SKPayment實例到購買隊列SKPaymentQueue中,然后通過回調SKPaymentTransactionObserver來返回購買的結果。

我現在拿請求商品信息的部分來舉例說明一下:

  1. SKProductsRequest* req = [[SKProductsRequest alloc] initWithProductIdentifiers:pids];
  2. req.delegate = observer;
  3. [req start]; 

上面的Objective-C的代碼如果轉譯成ActionScript 3.0,相當于這個意思:

  1. var req:SKProductsRequest = SKProductsRequest.initWithProductIdentifiers(pids);
  2. req.delegate = observer;
  3. req.start();  

SKProductsRequest繼承于父類SKRequest,通過靜態方法initWithProductIdentifiers和參數pids創建了一個實例req,參數pids是一個數組,列出了需要請求的內付費商品ID。req通過start方法向商店發出請求,并在發出請求的動作之前給自己注冊了一個回調函數observer。

observer是SKProductsRequestDelegate的實例,回調接口如下:

  1. - (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response; 

轉譯成AS是如下的代碼:
 

  1. function productsRequest(request:SKProductsRequest, response:SKProductsResponse):void; 

其中response就是請求的結果。

下面是一個完整的Objective-C函數體:
 

  1. - (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{
  2. NSLog(@"Products Received");
  3. NSMutableString* retXML = [[NSMutableString alloc] initWithString:@""];
  4. for (SKProduct* p in response.products) {
  5. [retXML appendFormat:@"%@%@%@%@",p.localizedTitle,p.localizedDescription,p.price,[p.priceLocale localeIdentifier],p.productIdentifier];
  6. }
  7. [retXML appendFormat:@""];
  8. for(NSString* s in response.invalidProductIdentifiers){
  9. [retXML appendFormat:@"%@",s];
  10. }
  11. [retXML appendFormat:@""];
  12. FREDispatchStatusEventAsync(g_ctx, (const uint8_t*)"productsReceived", (const uint8_t*)[retXML UTF8String]);
  13. [retXML release];
  14. [request release];

這里主要實現的是將結果格式化成一個XML流,然后通過派發事件傳回給AS擴展類,注意這里派發事件用的是FREDispatchStatusEventAsync方法,它定義在FlashRuntimeExtension.h內部,前文我介紹過,這是負責與AS擴展類通信的類。

在AS類包中,通過注冊的StatusEvent來偵聽這個事件,并從e.level中取得XML流里的商品信息。

  1. ext.addEventListener(StatusEvent.STATUS,onStatus);
  2. ...
  3. function onStatus(e:StatusEvent):void{
  4. switch(e.code){
  5. case "productsReceived":
  6. var xml:XML = new XML(e.level);
  7. ......
  8. }
  9. }

購買的業務流程和請求信息的流程十分相似,這里我不一一介紹,大家可以在***下載項目的代碼來查看。

ActionScript擴展

在Saumitra提供的ANE擴展類中,AS部分的結構是這樣的:

 com.adobe.nativeExtensions.AppPurchase;

com.adobe.nativeExtensions.AppPurchaseEvent;

com.adobe.nativeExtensions.Base64;

com.adobe.nativeExtensions.Product;

com.adobe.nativeExtensions.Transaction;

其中AppPurchase負責業務流程以及與Native擴展的接口,AppPurchaseEvent定義了各種StatusEvent的狀態,Product和Transaction定義了數據模型,Base64負責為參數轉碼。整個擴展類庫簡單易懂,我會在下面的項目實例中介紹其中用到的一些方法。

ANE-IAP開發實例分享

***總結本系列教程所有的知識來做一個例子。

我首先做的準備是在iTunesConnect中創建了一個新的應用,并新建了四個內付費商品:plane(非消耗型),diary(非消耗型),bottle(消耗型),key(消耗型)。我希望在iPad的沙箱環境中測試以下的業務流程:

請求商品信息,購買消耗型和非消耗性商品,恢復非消耗型商品的購買狀態,如果都成功則我的應用調試成功。

分析一下這個應用的UI需求,我需要一個按鈕來觸發請求商品信息的動作,然后需要一個列表來顯示商品信息,接下來需要給每個商品添加一個購買的按鈕。由于iPad上無法用trace等debug方法調試,所以我還需要一個監測的窗口來打印所有的流程信息。

下面是該應用的截屏:

 

圖2 請求商品列表

 

圖3 顯示商品信息

 

圖4 恢復非消耗型商品的購買狀態

 

圖5 購買新的消耗型商品

 

圖6 輸入測試用戶密碼

 

圖7 購買成功

資源

實例ANE-IAP(包括AS擴展類,Native擴展類)下載

如何使用本例

開發者需要使用自己的證書和設備來打包和發布,有關如何打包ANE和如何發布IPA,我已經在這個系列教程的前文提到過了,本文不做重復介紹。

注意事項

1,本例使用Flash Professional作為Compiler,使用Flash Builder作為代碼編輯IDE,請在Flash Professional的發布設置中選擇Flash Player,并在發布的時候忽略這個錯誤: VerifyError: Error #1014: Class flash.external::ExtensionContext could not be found。直接使用生成的SWF即可。

2,在iPad上測試之前務必要先注銷已經登陸的蘋果帳號,注銷方法為,進入系統偏好設置,在左邊列表內點擊Store圖標,然后點擊在右側出現的帳號,再在彈出的窗口中點擊”注銷“。

3,如果你沒有用過XCode,不知道如何發布OBJC項目,請在安裝XCode之后打開下載的Native擴展包里的AppPurchase.xcodeproj文件,項目打開后按Command+B,在左邊項目資源列表的Products文件夾內會生成一個.a文件,右鍵點擊后可以在Finder中找到這個文件。

總結

本文所提供的例子,只是應用內付費的入門,如果要做真正的產品,你需要搭建自己的服務器用來驗證購買商品的收據,以及在本地記錄商品的使用狀態并與服務器同步等等。這些知識不是本文的重點,這里不做詳細介紹,感興趣的朋友可以和我做進一步的探討。謝謝各位!

 

責任編輯:佚名 來源: jamesli.cn/blog
相關推薦

2011-11-16 15:14:57

AdobeAIRiOS設備

2011-11-16 16:21:09

AdobeAIR

2011-11-16 13:47:05

2012-03-15 09:55:23

Adobe AIR安裝

2012-02-28 13:52:45

Adobe AIRAndroidFlash

2011-11-16 15:08:30

AdobeAIRiOS應用

2012-03-09 10:46:35

Adobe AIR是什Adobe AIRAIR

2013-05-03 15:06:08

AIR移動應用Android開發

2011-11-16 15:47:04

AdobeAIRiOS應用

2011-11-16 13:58:12

Adobe AIR

2011-11-17 15:01:37

AdobeAIR移動應用

2009-01-18 09:20:49

AIRAdobeFlex

2009-06-25 10:46:22

Silverlight

2012-03-13 16:16:39

AdobeAIR for TV

2011-11-17 15:17:37

AdobeAIR調試性能

2010-10-29 09:28:52

Adobe AirAdobe MAXflash

2010-08-18 08:21:49

Adobe AIRAndroid

2012-07-06 13:45:21

跨平臺工具Adobe AirFlex

2012-03-15 09:46:41

UbuntuLinux安裝Adobe AIR

2009-11-18 10:30:02

HTML5特性
點贊
收藏

51CTO技術棧公眾號

国产又粗又猛又爽又黄的网站 | av网站导航在线观看免费| 日韩av不卡在线观看| 日韩三级成人av网| 中国黄色片视频| 欧美影视资讯| 亚洲永久免费av| 欧美性天天影院| 国产成人精品一区二三区四区五区| 亚洲精品字幕| 久久亚洲精品一区二区| 少妇大叫太粗太大爽一区二区| 欧美伊人亚洲伊人色综合动图| 亚洲综合久久久久| 亚洲欧洲三级| 偷拍自拍在线| 国产99久久久国产精品潘金网站| 清纯唯美亚洲综合| 欧美激情图片小说| 国内精品久久久久久99蜜桃| 日韩一区二区在线观看| 三年中国国语在线播放免费| 免费看电影在线| 国产精品乱码人人做人人爱| 久久久久久亚洲精品不卡4k岛国| 99国产精品久久久久99打野战| 亚洲综合激情| 欧美极品xxxx| 99鲁鲁精品一区二区三区| 国产91精品对白在线播放| 91精品国产综合久久久久久久| 人妻熟女一二三区夜夜爱| 国产精品探花在线| 亚洲人成7777| 亚洲午夜精品久久| 国产大学生校花援交在线播放 | 国产日韩中文字幕| 波多野结衣视频网站| 黄色国产精品| 久久99精品久久久久久噜噜| 久久嫩草捆绑紧缚| 国产真实有声精品录音| 日韩电影免费观看中文字幕| 潘金莲一级淫片aaaaaaa| 99久久这里有精品| 欧美日韩精品免费| 亚洲精品怡红院| 在线一区av| 欧美日韩亚洲91| av免费观看国产| xxx.xxx欧美| 亚洲综合久久av| av在线免费观看国产| 尤物视频在线看| 亚洲精品综合在线| 9色视频在线观看| 综合久久2o19| 亚洲一区中文日韩| 成人免费在线网| xxx性欧美| 精品久久久一区| 国产91在线视频观看| 亚洲天堂电影| 色吊一区二区三区| 免费看污黄网站| 福利一区二区免费视频| 欧美日韩在线电影| 国产乱叫456| 4438全国亚洲精品观看视频| 精品国产凹凸成av人导航| 中文字幕乱码在线| 免费短视频成人日韩| 伊人精品在线观看| 四虎影院中文字幕| 国内精品久久久久国产盗摄免费观看完整版 | 九色在线播放| 中文字幕精品一区二区精品绿巨人| 欧美重口乱码一区二区| 成年人视频免费在线观看| 亚洲天堂免费看| 日本五级黄色片| 麻豆成全视频免费观看在线看| 欧美视频在线观看免费| 九色porny91| 国产美女精品视频免费播放软件| 日韩欧美美女一区二区三区| 好男人香蕉影院| 精品国产不卡| 欧美老女人性视频| 亚洲天堂视频网站| 国产一区二区女| 激情久久av| 日本在线看片免费人成视1000| 一区二区三区在线免费播放| 免费无码国产v片在线观看| 国外成人福利视频| 亚洲国产欧美一区| 精品人体无码一区二区三区| 欧美福利电影在线观看| 性欧美长视频免费观看不卡| 亚洲中文无码av在线| 国产成人免费在线视频| 日韩欧美激情一区二区| 中文字幕资源网在线观看| 欧美性猛交xxxx久久久| 一区二区久久精品| 台湾亚洲精品一区二区tv| 久久精品精品电影网| 日韩黄色精品视频| 国产一区二区免费在线| 日韩aⅴ视频一区二区三区| 五月婷婷视频在线观看| 欧美视频一区二区三区四区| 制服.丝袜.亚洲.中文.综合懂| 欧洲grand老妇人| 91国内精品久久| 999免费视频| 国产精品天天看| 国产二区视频在线播放| 66精品视频在线观看| 久久精品视频播放| 国产精品高清无码| 久久久91精品国产一区二区三区| 欧美日韩中文字幕在线播放 | 欧美日韩精品欧美日韩精品一| 538国产视频| 黄色日韩在线| 99国精产品一二二线| 免费超碰在线| 欧美三级中文字| 日韩免费成人av| 天堂久久久久va久久久久| 精品综合在线| 2020国产在线| 亚洲第一国产精品| 麻豆亚洲av熟女国产一区二| 激情深爱一区二区| 日韩视频在线观看视频| 精品国产黄a∨片高清在线| 亚洲人精选亚洲人成在线| 中文字幕亚洲精品在线| 不卡的av电影在线观看| 9色porny| 国语一区二区三区| 国内伊人久久久久久网站视频 | 中文字幕在线成人| 国产午夜麻豆影院在线观看| 2020国产精品| 欧美成人免费高清视频| 国产成人高清| 国产精品高清在线观看| 国产在线资源| 欧美三级韩国三级日本三斤 | 一区二区在线看| 国内自拍第二页| 午夜激情久久| 91九色单男在线观看| caoporn免费在线视频| 日韩欧美视频在线| 久久久久97国产| 成人动漫精品一区二区| 亚洲熟妇国产熟妇肥婆| 亚洲自拍电影| 国产精品美女久久久久av超清| 啊v视频在线| 777奇米四色成人影色区| 欧美精品成人久久| 成人av电影在线| 免费观看成人在线视频| 日韩成人综合| 91久久久一线二线三线品牌| av电影免费在线看| 亚洲视频在线看| 91亚洲国产成人久久精品麻豆 | 成人免费看片'免费看| 国产欧美三级电影| 国产97在线视频| 日本三级视频在线播放| 日韩精品一区二区三区中文不卡| 五月天婷婷网站| 国产欧美日韩不卡免费| 真实乱偷全部视频| 国产欧美另类| 亚洲视频小说| 成人av综合网| 国产精品嫩草视频| 日本片在线观看| 亚洲日韩中文字幕在线播放| 国产强被迫伦姧在线观看无码| 亚洲不卡在线观看| 日韩黄色中文字幕| 丰满白嫩尤物一区二区| 日本中文字幕高清| 亚洲激情午夜| www亚洲国产| 日本一区福利在线| 成人国产亚洲精品a区天堂华泰| h片在线观看下载| 中文字幕av一区二区| 亚洲女人18毛片水真多| 欧美吻胸吃奶大尺度电影| 国产真人真事毛片| 国产精品免费视频观看| 免费中文字幕av| 精东粉嫩av免费一区二区三区| 美女日批免费视频| 亚洲一区 二区 三区| 免费成人深夜夜行视频| 视频一区在线| 国产噜噜噜噜久久久久久久久| wwwww亚洲| 久久手机精品视频| 国产二区在线播放| 日韩电视剧在线观看免费网站| 国产毛片久久久久| 欧美日韩中文字幕精品| 久久青青草视频| 亚洲国产精品欧美一二99| 香蕉成人在线视频| 国产日韩欧美在线一区| 国产激情视频网站| 国产aⅴ综合色| 日日夜夜精品视频免费观看| 奇米精品一区二区三区四区| 日日橹狠狠爱欧美超碰| 伊人蜜桃色噜噜激情综合| 国产福利片一区二区| 国产亚洲第一伦理第一区| 噜噜噜噜噜久久久久久91| av日韩在线播放| 91夜夜揉人人捏人人添红杏| 九九久久国产| 国产精品丝袜久久久久久不卡| 中文字幕在线高清| 欧美尤物巨大精品爽| 欧美三级网站| 欧美综合激情网| 自拍视频在线看| 欧美在线不卡区| 在线观看欧美日韩电影| 欧美一级大片视频| 亚洲一二三四| 国产www精品| 色老太综合网| 国产精品亚洲视频在线观看| 国产精品美女午夜爽爽| 国产美女高潮久久白浆| 亚洲成a人片777777久久| 成人a免费视频| 国产精一区二区| 91免费看蜜桃| 国产ts一区| 蜜桃日韩视频| 欧美中文字幕一区二区| 五月婷婷综合色| 999国产精品999久久久久久| 咪咪色在线视频| 自拍偷拍欧美专区| 国产3p露脸普通话对白| 国产精品毛片在线| 乱子伦视频在线看| 蜜桃精品在线观看| 一二三av在线| 成人教育av在线| 成人性生交大免费看| 国产精品三级电影| 美国黄色小视频| 精品久久久久久久久久国产| 国语对白永久免费| 欧美视频中文字幕| 成人h动漫精品一区二区无码| 精品国免费一区二区三区| 五月婷婷深深爱| 中文字幕国产日韩| 日本一级理论片在线大全| 91精品国产九九九久久久亚洲| 精品123区| av成人午夜| 婷婷精品视频| 免费看啪啪网站| 在线精品亚洲| 天堂av在线网站| 国产不卡免费视频| a级大片在线观看| 亚洲日本在线视频观看| 五月婷婷开心网| 欧美日韩另类一区| 丰满人妻妇伦又伦精品国产| 亚洲欧洲免费视频| 91cn在线观看| 日本三级久久久| 日韩一区二区三区高清在线观看| 蜜桃视频在线观看91| 国产精品99久久| 男人天堂1024| 国产在线精品一区二区三区不卡| 国产精品300页| 亚洲卡通动漫在线| 日本一本在线观看| 精品日韩在线观看| 色欧美激情视频在线| 91av中文字幕| 日本一区二区乱| 色姑娘综合网| 一区二区激情| 中文字幕乱码在线人视频| 国产精品欧美综合在线| 久久久久久久久影院| 日韩亚洲欧美一区二区三区| 久草在线青青草| 午夜精品久久久久久久99热浪潮| 电影一区二区三区久久免费观看| 久久另类ts人妖一区二区| 国产精品红桃| 久久久久久综合网| 国产精品入口麻豆九色| 亚洲高清毛片一区二区| 欧美xxxxxxxxx| 秋霞午夜在线观看| 国产精品久久久久久久午夜| 精品国产午夜肉伦伦影院| 91精品国产毛片武则天| 久久99精品久久只有精品| 日韩一级av毛片| 色综合网色综合| 三级网站在线看| 欧美黑人性生活视频| 欧美亚洲黄色| 亚洲一区在线直播| 日韩不卡一二三区| xxx在线播放| 色狠狠色噜噜噜综合网| 青青草av免费在线观看| 2019中文字幕在线| 极品国产人妖chinesets亚洲人妖 激情亚洲另类图片区小说区 | 一区二区视频在线| 国产偷人妻精品一区二区在线| 久久激情视频久久| 国产精品2区| 欧美少妇一区二区三区| 黑人巨大精品欧美黑白配亚洲| 青青青视频在线播放| 欧美日韩国产综合一区二区三区 | 国产精品电影一区二区三区| 中文字幕永久在线观看| 在线视频日本亚洲性| 999国产精品亚洲77777| 色99中文字幕| 久久99最新地址| 免费国产羞羞网站美图| 日韩欧美国产综合| 男男gaygays亚洲| 黄色91av| 丝袜美腿亚洲色图| 人人艹在线视频| 制服丝袜中文字幕一区| 美足av综合网| 激情小说综合区| 三级欧美韩日大片在线看| 精品亚洲aⅴ无码一区二区三区| 精品视频免费在线| 超碰在线免费播放| 国产精品久久久一区二区三区| 亚洲精品1区| 日本xxxxxxxxx18| 欧美日韩黄色一区二区| 在线观看小视频| 蜜桃999成人看片在线观看| 日av在线不卡| 久久av红桃一区二区禁漫| 日韩欧美国产综合一区| 中文在线а√天堂| 亚洲一区精彩视频| 国产黑丝在线一区二区三区| 日韩欧美中文字幕一区二区| 亚洲香蕉成视频在线观看| 伊人亚洲精品| 国产一区二区网| 中文字幕乱码日本亚洲一区二区 | 亚洲美女视频网站| 久久人体av| 久久久久久久9| 欧美激情在线一区二区三区| 国产三级第一页| 欧美亚洲另类激情另类| 99国产**精品****| 日本三级日本三级日本三级极| 91精品91久久久中77777| 国产精品一区二区三区视频网站| 精品国产综合久久| 精品一区二区三区视频在线观看 | 一本一本久久| 国产极品美女在线| 亚洲精品自拍偷拍| 国产精品色婷婷在线观看| 精品99在线视频| 一区二区三区欧美激情| 国产在线你懂得| 国产精品一区二区欧美黑人喷潮水 | 婷婷丁香激情网|