如果您拒绝应用程序权限,Facebook Unity SDK将挂在iOS上的Login()上

时间:2014-02-25 19:02:03

标签: facebook-unity-sdk

我在Facebook Unity SDK 5.0.3 Beta和Unity 4.3.4中遇到一个奇怪的错误已经困难了几个小时

调用FB.Login之后,由于MiniFSON在iOSFacebook.cs第356行引发了异常,因此不会调用onInitDelegate.msg参数实际上是一个空字符串,这就是为什么MiniJSON无法解析为JSON

我找到的解决方法是在解析周围添加一个try / catch块

public void OnLogin(string msg)    
{
    try
    {
        var parameters = (Dictionary<string, object>)MiniJSON.Json.Deserialize(msg);

        if (parameters.ContainsKey ("user_id"))
        {
            isLoggedIn = true;
        }

        //pull userId, access token and expiration time out of the response
        ParseLoginDict (parameters);
    }
    catch (Exception e)
    {
        FbDebug.Error("Could not parse Json string received. Got the following error: [" + e.GetType().Name + "] " + e.Message + "\n" + "Json string: " + msg, LoggerTags.CONNECTION);
    }

    OnAuthResponse(new FBResult(msg));
}

首先,我不确定为什么响应是一个空字符串,所以也许你可以帮我找出答案 其次,我希望这很快就会得到解决

1 个答案:

答案 0 :(得分:1)

此错误应该已在5.0.3中修复。当您复制包时,IOSFacebook.cs可能不会被覆盖。

unity SDK是我们其他SDK(JS,Android和iOS)的包装器。有时潜在的那些之间的差异很小。这是其中之一,我们会尽力解决这些差异,并使Unity开发人员(例如您自己)使用它们。