这是我们遇到的一个非常奇怪的问题。 在Unity中使用Facebook SDK并在登录Facebook对话框后调用FB.Feed时会弹出,然后关闭回游戏屏幕。 这只发生在我们游戏的iOS版本上,并且仅在我们尝试在安装后发布到Facebook的第一次时发生。随后的每一次工作都非常好。
我无法找到任何相关信息,非常感谢您的帮助。
public IEnumerator ShareToFacebook ()
{
if(!FB.IsLoggedIn)
{
FB.Login("email", LoginCallback);
yield return FB.IsLoggedIn;
}
FB.Feed( link: linkParameterSet, linkName: nameParameterSet, linkCaption: captionParameterSet, linkDescription: GetDisplayTextFB(), picture: pictureParameterSet);
}
这是我使用的C#代码,FB.Feed的所有参数都是在别处设置的字符串。
答案 0 :(得分:0)
我通常这样做:
public delegate void OnShare(bool success);
static OnShare onShareCallback;
public static void Share(string link, string linkName, string linkCaption, string linkDescription, string picture, string actionName, string actionLink, OnShare callback)
{
onShareCallback = callback;
FB.Feed(
toId: null,
link: link,
linkName: linkName,
linkCaption: linkCaption,
linkDescription: linkDescription,
picture: picture,
mediaSource: null,
actionName: actionName,
actionLink: actionLink,
reference: null,
properties: null,
callback: ShareCallback
);
}
public static void ShareCallback(FBResult result)
{
if (!String.IsNullOrEmpty(result.Error))
{
if (onShareCallback != null)
{
onShareCallback(false);
onShareCallback = null;
}
}
else
{
if (onShareCallback != null)
{
onShareCallback(true);
onShareCallback = null;
}
}
}
它是静态的,您可以在任何地方使用它,甚至无需在游戏对象上附加脚本。
我这样称呼它:
MyFacebook.Share(link, linkName, linkCaption, linkDescription, picture, actionName, actionLink, ProcessFacebookShare);
void ProcessFacebookShare(bool success)
{
if(success)
{
Debug.Log("Successfully shared!");
}
else
{
Debug.Log("There was a problem with facebook sharing");
}
}
希望它有所帮助!