ios - 登录 Facebook 时,Unity ios 游戏在后台被杀死

标签 ios facebook unity-game-engine

我在 IOS7、iPhone-4s 上将我的游戏与最新版本的 Facebook Unity SDK 集成时遇到了问题。

游戏每次请求Facebook登录操作,游戏都会进入非事件状态,变成后台,然后出现Facebook登录页面,然后IOS就会杀了我的游戏,即使那个游戏使用的内存只有90M左右。登录完成后,IOS重新启动游戏,此时Facebook SDK找不到之前执行登录操作的游戏进程,因此无法将登录结果传递给新的游戏实例。

那么,有两个问题:

1) 有没有办法让游戏进程在后台运行?我不知道为什么 90M 的内存使用量大到 IOS 想要杀死我的进程。

2)有什么办法可以让新的游戏进程获取上一个游戏进程的登录结果?

3)有没有办法在执行登录操作时统一打开Facebook的嵌入式webView登录对话框而不是跳出我的游戏?

谢谢。

------------更新------------

第三个问题的解决方案:

1) 定位Facebook/Editor/iOS/FbUnityInterface.mm

2) 查找方法 -(void)login:(const char *)scope { ... }

3)改变

openWithBehavior:FBSessionLoginBehaviorWithFallbackToWebView

openWithBehavior:FBSessionLoginBehaviorForcingWebView

4) 现在,每次您请求登录时,都会弹出一个嵌入的网页 View 对话框,而不是跳出当前游戏到 Facebook 登录对话框。

最佳答案

1) 首先确保你没有检查'PlayerSettings |其他设置 |配置 | Exit on suspend' 选项,它会在您离开时杀死您的应用。

90MB 在 iPhone4S 上可能很多,设备本身只有 512 MB RAM 内存,系统需要很多。如果你打开了很多应用程序,然后是你的应用程序,然后是现在也不是轻量级的 facebook 应用程序,那么最大的事件进程(你的游戏)可能会被杀死。

2) 是的。 Facebook Unity3d 插件有一个检查登录状态的方法,它应该在成功登录后返回 true(即使应用程序被终止)。

if( FB.IsLoggedIn )
{
    // your code here
}

3) 当前版本的 Unity3D Facebook 插件没有简单的方法可以做到这一点。

关于ios - 登录 Facebook 时,Unity ios 游戏在后台被杀死,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22832744/

相关文章:

c# - 无法确定 Xamarin Forms 应用程序是在模拟器中运行还是在设备上运行

IOS - 未调用 Facebook SDK fbDidLogin - 初始化 View Controller 。

unity-game-engine - Unityscript - 这是什么样的声明?

android - 如何通过来自 3 个不同游戏对象的触发器使游戏对象出现

ios - ReloadRows At IndexPath 导致更改背景图像出现问题

iphone - NSURLConnection 在文件下载时收到 'False'

Facebook 评论插件 - 如何在 iframe 后面 Conceal 评论?

从自身继承的Python类?这是如何运作的?

c# - 授权 header 未通过 UnityWebRequest 传递

ios - (解析)更新 pfobject 时出错