2017 年 8 月 14 日
推出新的 Facebook “v4a” 插件
与我们最近对 Google IAP 插件所做的更新类似,为了帮助解决 Google Play 控制台中“应用无响应”(ANR)报告的问题,我们发布了更新的 Facebook v4a 插件,以减少 ANR 错误的发生。以下是您需要了解的内容…
为什么要更新插件?
旧版本的 Facebook 插件在您第一次 require()
它时开始初始化,并且在初始化完成之前不会返回到调用模块。在 Android 设备上,这可能(对于 Google 而言)看起来应用程序没有响应,从而生成 ANR 报告。
为了解决这个问题,我们使新的 Facebook v4a 插件是异步的。新流程包括在您需要插件时开始初始化,以及一个新的 facebook.init() API 来注册一个侦听器,以便在初始化过程完成时调用。
使用新插件
要使用新版本的插件,您需要执行四项操作
- 更改您的
build.settings
代码以使用新插件。只需将"plugin.facebook.v4"
更改为"plugin.facebook.v4a"
。 - 更改任何需要插件的 Lua 文件以使用新插件。只需将
require("plugin.facebook.v4")
更改为require("plugin.facebook.v4a")
。 - 确保您使用的是 Corona 版本
2017.3068
或更高版本(2017.3068
是撰写本文时最新的公开发布版本)。 - 在您首次
require()
插件之后,可能是在main.lua
中,添加对 facebook.init() 的调用。
新的初始化 API
由于新的 Facebook v4a 插件是异步的,您需要知道初始化实际何时完成。调用新的 facebook.init() API 使您有机会定义一个特定的函数,该函数将在初始化完成时被调用。一旦该函数收到 "fbinit"
事件,您就可以安全地调用其他 Facebook API 调用,例如 facebook.publishInstall() 或 facebook.login()(尽管您可能应该推迟让玩家登录,直到游戏中一个有意义的点)。
在 facebook.init() 中引用的侦听器函数也将用于其他 Facebook API 调用,以处理 "fbconnect"
事件。因此,如果您希望使用不同的函数来处理您的 "fbconnect"
事件,则只需调用 facebook.setFBConnectListener()。有关更多信息和示例,请参阅集成文档。
总结
虽然此更新仅真正影响 Android 构建,但您应该对 iOS 构建遵循类似的行为,以最大程度地提高跨平台兼容性。ANR 可能是一个您可能永远不知道的无声错误,因此我们强烈建议您更新到 Facebook v4a 插件,特别是当您拥有活跃的 Android 用户群时。
抱歉,评论表单目前已关闭。