iOS --iap内购的那些小事

最近,游戏SDK要集成iap内购,那好吧,功能实现了。没想到研发接入测试的时候反馈,苹果iap内购弹窗太慢,用户可以多次点击不同的选项。。。哎,也是,苹果服务器在美国呢,从调起支付到弹出支付界面要3秒左右,用户以为没反应,多点几次也是有的嘛(虽然不会重复支付,但是体验不好啊,对于我来说绝对不能忍)。那么怎么办呢?加遮盖?肯定是第一个想法,但是我不想这么做(就是这么任性!)好了,方法就是忽略点击事件:

[[UIApplication sharedApplication] beginIgnoringInteractionEvents];

在调起支付时,让它忽略点击事件,不管苹果响应的有多慢,就是不让你点击,就是这么强势!

然后再苹果的代理方法里面加上恢复响应点击事件:

[[UIApplication sharedApplication] endIgnoringInteractionEvents];
具体是在:
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray<SKPaymentTransaction *> *)transactions {}

这个代理里面写,前提是你的类有添加监听:

[[SKPaymentQueue defaultQueue] addTransactionObserver:self];

记得移除监听:

[[SKPaymentQueue defaultQueue] removeTransactionObserver:self];

只要在交易成功、交易失败、交易延迟、已购买过的、default分支里加上 恢复响应点击事件代码即可。(商品添加进列表一支就不用加了)。

效果还不错!妈妈再也不用担心我的点击了。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值