本文简要介绍Quick-Cocos2d-x 3.3中针对iOS的iap功能封装的CCStore。
1. CCStore源码和导出的Lua的api在哪里
a)iaptest2/frameworks/runtime-src/Classes/quick-src/extra/store/CCStore.h
b)iaptest2/src/framework/cc/sdk/Store.lua
是的,iaptest2就是项目目录。
2. 首先,在当前版本中要想正常使用CCStore需要修改两个地方
a)图中标明的两处替换为cc.Store
b)图中三处变量添加cc前缀
修改完毕,现在就可以正常使用了
3. 关于iOS工程如何开启iap支持
可以参考下面的帖子的前面的部分,这里不做啰嗦,因为Quick的iOS工程终极也是iOS工程,没区别。参考帖子:http://www.tairan.com/archives/5515
4. 现在我假定看官们已经开启了iOS工程的iap支持,也在itunesconnect添加了测试商品以及测试账号
本文的代码如下:
24
25
26
27
28
29
30
31
32
33
34
35
functionMainScene:ctor()
--初始化商店
Store.init(handler(self,self.storeCallback))--function(event)self:storeCallback(event)end)
--载入商品
Store.loadProducts({
"com.originaljoy.iaptest.222coin"
"com.originaljoy.iaptest.11coin"
"com.originaljoy.iaptest.111coin"
"com.originaljoy.iaptest2.1111coin"
},handler(self,self.loadCallback))
--添加一个购买按钮
self.btn=cc.ui.UIPushButton.
new
(
"ui_btn_start.png"
)
:onButtonClicked(function(event)
print(
"购买商品"
)
Store.purchase(
"com.originaljoy.iaptest2.1111coin"
)
end)
:pos(display.cx,display.cy)
:addTo(self)
end
---商店的回调
functionMainScene:storeCallback(transaction)
--处理购买中的事件回调,如购买成功
if
transaction.transaction.state==
"purchased"
then
"buysuccess"
)
Store.finishTransaction(transaction.transaction)
end
end
---载入商品的毁掉
functionMainScene:loadCallback(products)
--返回商品列表
dump(products)
end
|
5.store的api使用
a)Store.init(listener)
初始化商店,并设置回调函数。回调函数用来处理各种store事件,接受一个参数event
event包含一个字段,transaction! transaction就是事件的完整内容,下图就是一次购买成功后回调的transaction
b)Store.loadProducts(productsId,listener)
载入商品列表,并设置回调
回调函数接受一个参数,就是商品列表,包括可用和不可用的商品,如图
c)Store.purchase(productId)
购买一个商品,传入商品id!购买事件将会在store的回调中接收
d)Store.finishTransaction(transaction)
移除一个事件。如果你购买一个商品成功后,不移除对应的事件,再次购买会有如下提示:
this in-app purchase has already been bought it will be restored for free
以上就是重要的几个函数的使用了!
使用完的感受就是:用Quick,就这么简单!(有任何问题请在原帖与作者联系)
活动推广:
【线上活动】两小时学会用Cocos2d-lua 开发游戏
【教程征集令】Cocos引擎中文官网有奖征集优秀原创Cocos教程 奖品丰厚!