最近在做IAP的时候无意发现以前写的内购代码有个小漏洞,收到内购的结果处理会根据购买次数而相应的增加,实现消息监听的初始化和结果监听代码处理如下:
- - (id)initWithPayConstructor:(NSString *) productIdStr
- {
- self = [super init];
- if (self) {
- // Custom initialization
- [self initProductId:productIdStr];
- // 监听购买结果
- [[SKPaymentQueue defaultQueue] addTransactionObserver:self];
- }
- return self;
- }

在实现内购过程中,发现购买结果处理因多次添加监听导致重复调用。问题在于每次购买时都会添加transaction监听。解决方案是在添加观察者时加入判断,避免重复添加。通过设置静态变量hasAddObersver进行控制,确保只添加一次监听。
最低0.47元/天 解锁文章
1351

被折叠的 条评论
为什么被折叠?



