我正在使用 FB Unity SDK,我面临的一个持续问题是检查 FB.Init() 是否已被调用。
场景:
- 有一个 fb 连接按钮,用户点击它。
- 如果用户决定取消对话框并点击“Facebook 再次连接”
FB sdk 抛出一条通知,提示“FB.Init() 已被调用。您只需调用一次。”
这是我想做的,但不起作用
if(FB.AccessToken=="" || FB.AccessToken==null){
Debug.Log ("Fb not init(), call it");
FB.Init(OnInitComplete, null);
}else{
Debug.Log ("Facebook already init()");
OnInitComplete();
}
但是,显然这不起作用,因为调用了 FB.Init() 并且用户取消了它。我如何验证 FB.Init() 是否已被调用?但我期望 accessToken 为空?
而且,这些消息会影响应用程序的提交吗?它们会显示在生产版本中吗?
最佳答案
FB.Init() 不应被多次调用。这是设计使然(因为它会在 Unity 中启动 Facebook GameObjects 等)。相反,请执行以下操作:
FB.Init(MyOnInitComplete);
....
public void MyOnInitComplete() {
// FB.IsLoggedIn checks for the FB.AccessToken and the FB.UserId
if(!FB.IsLoggedIn){
// FB.Init() is called, but user is still not logged in.
FB.Login("<your_permissions_here>");
} else {
// User is logged in & FB.Init is called
}
}
关于Facebook 统一 SDK, "FB.Init() has already been called",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19488614/