我正在使用FB Unity SDK,我面临的一个常见问题是检查FB.Init()是否已被调用。
情景:
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为null?
并且,这些消息会影响应用程序的提交吗?它们会显示在生产构建中吗?
答案 0 :(得分:3)
不应多次调用FB.Init()。这是设计的(因为它介于Facebook GameObjects等Unity中)。相反,这样做:
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
}
}