2017 年 7 月 19 日
重要的 Google IAP 插件更新
Corona Labs 的工程团队对 Google 应用内购买插件进行了重要更新,您需要注意。
从 Corona daily build 2017.3105 开始,Google IAP 的 store.init() 调用现在是异步的。这意味着它会立即返回,同时继续在后台初始化。此更改旨在帮助减少 Google Play 控制台中报告的 ANR 或“应用程序无响应”消息的数量。
基本上,当 Android 感知到应用程序似乎没有响应时,可能会发生 ANR 报告 - 当在较差的网络连接上执行同步网络活动时可能会发生这种情况。在测试期间,很难看到 store.init()
花费任何时间,因为它通常在几毫秒内完成,但是当用户连接速度较慢时,时间可能会大大增加并触发 ANR 报告。
解决方案
由于此更改,您应该修改您的应用使用 Google IAP 插件的方式。
虽然许多开发人员已经延迟了 store.loadProducts() 调用,直到用户到达列出产品的位置,但有些开发人员会在调用 store.init()(这是启动操作的第一个强制调用)后立即调用 store.loadProducts()。
在这种新模式下,您应该等待,直到收到一个 "init"
回调,表明 Google IAP 已完全初始化并准备好处理请求(这也适用于 store.restore())。
插件的更新版本会生成一个新的 init 事件,该事件会被分派到 store.init() 中指定的事务侦听器。此事件具有唯一的 event.name
属性,其值为 "init"
,您可以使用它来区分 storeTransaction 事件,这些事件必须由同一个侦听器处理。请参阅 文档以获取相关示例。
请记住,这些更改仅影响 Corona build 2017.3105 及更高版本。
除了此更新之外,我们还修复了 Amazon IAP 插件中的空指针引用 (NPR) 错误。此修复程序在所有版本中都可用。
抱歉,评论表单目前已关闭。