FB App邀请Xamarin

我正在考虑如何实现Facebook邀请对话框,并注意到Facebook现在提供了一个新的FB应用程序邀请产品。 有没有办法与Xamarin iOS一起使用新的App Invite产品?

谢谢!

以下是应用邀请的实现

您需要为appinvites创buildNative实现

只需创build一个名为IFVideosService的接口

定义方法定义如示例所示

public interface IFacebookservice{ InviteFriends (string appLinkURL, string previewImageURL); } 

并在平台上执行该操作,如下所示

IOS FacebookService.CS

 public void InviteFriends (string appLinkURL, string previewImageURL) { var fromController = UIApplication.SharedApplication.KeyWindow.RootViewController; var content = new AppInviteContent { AppLinkURL = new NSUrl (appLinkURL), PreviewImageURL = new NSUrl (previewImageURL) }; AppInviteDialog.Show (fromController, content, null); } 

Android FacebookService.Cs

  public void InviteFriends(string appLinkURL, string previewImageURL) { if (AppInviteDialog.CanShow()) { var activity = Xamarin.Forms.Forms.Context as Activity; var content =new AppInviteContent.Builder().SetApplinkUrl(appLinkURL).SetPreviewImageUrl(previewImageURL).Build() as AppInviteContent; AppInviteDialog.Show(activity, content); } } 

Xamarin表单中的用法

  var facebookservice=Dependency.Get<IFacebookservice>() button.click+=delegate{facebookservice.InviteFriends("appurl","previewimageurl")} 

目前不支持Xamarin FB SDK。 邀请function从4.0版本开始提供,其中FB SDK的转换版本在版本3.6上完成。

所以你基本上有两个select:

1)请Xamarin开发团队将FB sdk更新到4.0版本,您可以在这里查看

2)由于它可能不会很快准备好,你可以把FB iOS 本地 SDK,并自己生成一个Xamarin库。 更多细节可以在这个链接中find

如果你决定继续select#2,那么如果你愿意分享你转换后的SDK,那将是非常棒的。

Jagadeesh的回答是完全正确的。 还要考虑从Facebook多友好select器返回时执行结果处理程序。 如果至less有一个朋友被邀请,Facebook API的反馈将会显示出来。 对于iOS,结果可以被“用户取消”或完成

  • {completionGesture =取消; didComplete = 1;}
  • {didComplete = 1;}

对于Android什么时候“取消用户”,但如果完成:

  • 束[{didComplete = 1}]

Android的

  AppInviteDialog AppInv = new AppInviteDialog(activity); AppInv.RegisterCallback(callbackManager, invitecallback); AppInv.Show(content); var invitecallback = new FacebookCallback<AppInviteDialog.Result>() { HandleSuccess = Result => { if ((string)Result.Data == "Bundle[{didComplete=1}]") { textbox.Text = "Friend Invited"; } }, HandleCancel = () => { textbox.Text = "Cancelled"; }, HandleError = Error => { textbox.Text = "Error" + Error.Message; } }; 

iOS版

  var dlgt = new MyAppInviteDialogDelegate(); var dialog = AppInviteDialog.Show(fromController, content, dlgt); public class MyAppInviteDialogDelegate : AppInviteDialogDelegate { public override void DidComplete(AppInviteDialog appInviteDialog, NSDictionary results) { textbox.Text = "Friend Invited"; if (results.Description.Contains("cancel")) { textbox.Text = "Cancelled"; } } public override void DidFail(AppInviteDialog appInviteDialog, NSError error) { textbox.Text = "Error" + error.Description; } }