2

我真的被这个问题困住了,我需要你的帮助!我正在做一个统一的 ipad 游戏和 prime31 的社交网络插件。

情况:

当您到达关卡结束时,游戏会为您提供分数并询问您是否要将其提交到 Facebook。如果你这样做了,在我的脚本中,我已经完成了一个系统来检查你是否登录,如果你没有登录,它会要求你登录,然后系统检查应用程序是否具有发布权限,如果没有,它会询问你允许。如果所有这些都是真的,它会直接在你的墙上发布一条消息。所以希望登录/询问部分只需要完成一次。

问题:

当 ipad 在游戏和 facebook 应用程序之间交换登录时,ipad 会关闭游戏以节省内存。我试图减少场景,但很难减少它。所以我想也许我应该在游戏中打开那个 facebook 登录和授权。为此,我尝试使用以下方法:

setSessionLoginBehavior(FacebookSessionLoginBehavior.ForcingWebView);

它完全符合我的要求,它在游戏中打开了一个小窗口,并没有崩溃真的很好。但是,在这个解决方案中,问题在于它只适用于登录,当我询问发布权限时,它会切换回 facebook 应用程序来询问权限,因此会崩溃。经过更多研究,似乎控制请求权限行为是不可行的。所以回到第一个问题,当用户连接到 Facebook 时,如何防止 IOS 关闭我的游戏。我仍然希望减少场景。

我听说在离开 facebook 应用程序后使用应用程序 url 并为应用程序(我的游戏)启动发送数据,因此要求 ipad 在特定场景重新启动应用程序。但这确实是最后的解决方案,因为要实现这一点需要大量的返工。

如果您有解决此问题的其他建议,我愿意。我只需要登录 -> 请求发布权限 -> 发布并返回我的游戏关卡屏幕的末尾。

谢谢您的帮助

4

2 回答 2

4

简而言之,一旦你的应用程序被后台运行,如果 iOS 想要关闭它,你就无法阻止这种情况发生。

您可以做的最好的事情是在将应用程序的状态移交给 facebook 应用程序进行身份验证之前保存应用程序的状态,然后在应用程序再次启动时重新加载您的状态。您需要处理applicationWillResignActive:applicationDidEnterBackground:和。applicationDidBecomeActive:applicationWillBecomeActive:

iOS App Programming Guide的App States and Multitasking 部分解释了如何做到这一点。

于 2012-12-21T16:16:49.053 回答
3

我认为您应该检查 iOS 5 及更低版本的 FBDialog。以及适用于 iOS 6 的FBNativeDialogs

这些会在你的应用顶部弹出一个窗口,所以我猜它仍然会运行。对于 iOS 6FBNativeDialogs

提供向用户显示本机(即非基于 Web)对话框的方法。目前支持 iOS 6 共享对话框。

于 2012-12-21T16:27:04.480 回答