我正在将Facebook整合到我的团结项目中(使用官方的Facebook unity SDK beta 6.2)。我在团结4.5.5p5。
我正在使用FB.Feed在我的墙上显示一个帖子,而且一切正常。我使用我的帖子中的FBreport根据用户是否发帖来做事情。这个代码块在桌面上按预期工作,但它给了我关于android和IOS的另一个结果。我的问题是FBReport总是返回“cancel”:“true”,即使我真的在我的墙上发帖。这里我的代码:
FB.Feed
(
linkDescription: "Test!",
picture: "http://www.link.com/picture.png",
linkName: "link",
link: "http://www.url.com",
linkCaption: "Caption",
callback: ShareCallback
);
}
void ShareCallback(FBResult shareResult)
{
if (shareResult.Error != null || shareResult.Text.Contains("\"cancelled\":true"))
{
// This block runs on desktop if user abort post, but on android and ios this runs every time, even when post is successful.
}
else
{
//This part runs on desktop if user posts, but never on android and ios.
}
帖子通过,并显示在我的墙上,但在android / ios的FBReport中似乎有些奇怪。
我使用FB.Apprequest向我的游戏发送邀请,并使用相同的方法获取帖子的状态。在FB.Apprequest中,一切都在Android,桌面和ios上运行。谁知道如何解决或解决这个问题?
答案 0 :(得分:1)
这是他们的Unity SDK中的已知错误:https://developers.facebook.com/bugs/598200610227965/
有一种解决方法,你可以在FbUnityInterface.mm中更改DialogMode
从此
self.dialogMode = NativeDialogModes::FAST_APP_SWITCH_SHARE_DIALOG;
到此
self.dialogMode = NativeDialogModes::WEBVIEW_DIALOG_MODE;
答案 1 :(得分:0)
在Android上,为了显示Webview对话框而不是使用Facebook应用程序,我提出了以下黑客攻击:
canPresentShareDialog(...)
以始终返回FALSE 通过此修改,当Facebook尝试启动共享对话框(FB.java方法FeedRequest()
)时,它始终认为没有安装Facebook应用程序。我今天才想到这一点,但到目前为止我还没有注意到任何其他Facebook功能的破坏。