Apple 内购(IAP)正常的交易流程,小伙伴们都能很好的处理。
不过正所谓“天有不测风云”,如果在 IAP 恢复购买时网络信号很差或者干脆没有网络,就会导致 App 长时间挂起,造成很差的用户体验。
如上图所示,我们在 App 恢复购买发生长时间无响应时,可以中断交易,并给用户提示。
注意,在 iOS 16 中,如果在购买而非恢复产品时无网络不会造成 App “挂起”,系统会适时的提示用户(见后文所叙)。
在本篇博文中,您将学到 iOS 16 App 在设备无网络情况下会对以下 IAP 行为造成怎样的影响:
- 获取产品列表
- 购买产品
- 恢复购买产品
以及,当恢复购买发生“挂起”时的解决方法。
废话少叙!Let‘s dive in!
问题分析 1. 获取产品列表时若设备网络不可达,在获取产品列表时会调用 SKProductsRequestDelegate 协议的如下方法: