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



我已经为Facebook Unity SDK 5.0.3 Beta和Unity 4.3.4中的一个奇怪错误而苦苦挣扎了几个小时

致电FB后。登录时,由于 iOS 上的 MiniJSON 抛出异常,onInitDelegate 不会被调用.cs第 356 行。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));
}
首先,我

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

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

Unity SDK 是我们其他 SDK(JS、Android 和 iOS)的包装器。 有时,底层的它们之间存在细微差异。 这是其中之一,我们尽最大努力解决差异,并使它们与像您这样的 Unity 开发人员相同。

相关内容

最新更新