Ok因此设法解决了这个问题,虽然我无法确定原因是什么,但我已经足够多地重写了init、登录和权限检查部分的facebook连接类。我看不出有什么明显的区别,我们过去的流程,我们的例子,但显然有一些东西。无论如何,init上的自动登录现在似乎工作得很好。
使用4.3.6版的Facebook插件进行统一。注意到一个小错误,这在目前来说有点烦人。
一旦用户登录并接受了我们的权限,游戏将继续进行,并按需要发布。然而,如果游戏关闭,然后重新启动,用户必须再次登录。
现在让我在这里说清楚,当我们再次启动时,我们现在没有调用登录函数,为什么?因为这会导致瞬间的应用程序切换,这看起来很可怕,而且令人不快。工具提示似乎表明Init应该尝试使用有效的会话数据重新启动。但是,在调用init函数之前和之后,访问令牌似乎是空的。因此,没有自动登录发生。
我尝试在设置对象中将状态标志设置为true,并通过代码将其设置为init。两者似乎都不起作用。
有什么东西我错过了吗?
有没有办法用这个官方插件获得自动登录,甚至不需要应用程序交换?还是我只是在追求梦想?
编辑:
只是为了提供一些额外的信息。目前在安装了facebook的iPhone5和iPad3上进行测试,其中一个使用通过iOS设置注册的facebook帐户,都遵循相同的行为,在init上没有会话恢复,并且在init之后登录导致应用程序交换。今天晚些时候,我将尝试用facebook的例子测试一个空白项目,看看这是我们搞砸的东西,还是插件。
发布于 2014-03-04 10:47:35
我知道你已经解决了你的问题,但我认为这可能对其他人有用,因为我也有类似的问题。
应该将FacebookSettings > FB.Init()参数>状态设置为"true“。Status属性上的引用文档显示:
如果为真,则尝试使用有效的会话数据初始化Facebook对象。
也许这是文档中的一个错误,但我不认为HideUnityDelegate实际上是在Init()中使用的(在调用Init时,并不隐藏Unity)。但是,使用的是InitDelegate,因此您可以将登录代码放在那里。
示例:
void Start() {
FB.Init(OnInitComplete, OnHideUnity, null);
}
void OnInitComplete() {
if (FB.IsLoggedIn) {
Debug.Log("FB Logged in during Init");
}
else {
Debug.Log("FB NOT Logged in during Init");
}
}
void OnHideUnity(bool unityIsHidden) {
}发布于 2015-10-23 09:17:26
结果是,当调用传递给OnInitComplete方法的FB.Init方法时,变量FB.IsLoggedIn尚未设置。在我添加了0.5个延迟之后,它现在正确地找到了记录的用户。不知道为什么更新的版本是这样的,但它对我有用:)
https://stackoverflow.com/questions/21480823
复制相似问题