Firebase 邀请使用入门 (Unity)

要使用 Unity 编写跨平台 Firebase 邀请客户端应用,请使用 Firebase Invites API。

准备工作

在使用 Firebase 邀请之前,您需要:

  • 在 Firebase 项目中注册 Unity 项目。
  • Firebase Unity SDK(具体而言是 FirebaseInvites.unitypackage)添加到您的 Unity 项目中。

要查找这些初始设置步骤的详细说明,请参阅将 Firebase 添加到您的 Unity 项目

发送邀请

配置邀请

新建 Invite 对象来配置邀请:

var invite = new Firebase.Invites.Invite() {
    TitleText = "Invites Test App",
    MessageText = "Please try my app! It's awesome.",
    CallToActionText = "Download it for FREE",
    DeepLinkUrl = "http://google.com/abc"
}

如需了解邀请设置的完整列表,请参阅相关文章。

如需详细了解自定义邀请,请参阅 Firebase 邀请最佳做法

发送邀请

当您准备好显示邀请时,调用 SendInviteAsync()

FirebaseInvites.SendInviteAsync(invite);

这将显示邀请客户端界面,允许用户选择收件人和修改消息(如果需要)。此界面将一直显示在屏幕上,直到用户选择发送邀请或取消发送。

SendInviteAsync() 会立即返回并异步显示此界面。结果是通过 System.Threading.Tasks.Task 返回的。您可以通过查询该任务来查明邀请是否已发送,并确定界面何时不再显示在屏幕上,也可以使用其 ContinueWith 方法以在此任务完成时自动触发代码。

下面的示例展示了如何发送邀请并读取结果:

public void SendInvite() {
  Debug.Log("Sending an invitation...");
  var invite = new Firebase.Invites.Invite() {
    TitleText = "Invites Test App",
    MessageText = "Please try my app! It's awesome.",
    CallToActionText = "Download it for FREE",
    DeepLinkUrl = "http://google.com/abc"
  }
  Firebase.Invites.FirebaseInvites
    .SendInviteAsync(invite).ContinueWith(HandleSentInvite);
}

void HandleSentInvite(Task< Firebase.Invites.SendInviteResult > sendTask) {
  if (sendTask.IsCanceled) {
    Debug.Log("Invitation canceled.");
  } else if (sendTask.IsFaulted) {
    Debug.Log("Invitation encountered an error:");
    Debug.Log(sendTask.Exception.ToString());
  } else if (sendTask.IsCompleted) {
    int inviteCount = (new List(sendTask.Result.InvitationIds)).Count;
    Debug.Log("SendInvite: " + inviteCount + " invites sent successfully.");
    foreach (string id in sendTask.Result.InvitationIds) {
      Debug.Log("SendInvite: Invite code: " + id);
    }
  }
}

跨平台邀请

如果您在 Firebase 控制台中的项目对于每个平台恰好包含一个应用,则 Firebase 邀请会自动将这些应用相互关联,以便让用户在自己所用的平台上安装您的应用。例如,若 iOS 用户点击了由 Android 用户发送的邀请,则会被引导至适当的位置。

如果在每个平台上有多个应用,则可以设置 AndroidPlatformClientIdIOSPlatformClientId,并传入相应平台上的应用的 Firebase 客户端 ID。

接收邀请

收到邀请后,如果用户尚未安装您的应用,可以选择从自己所用平台的应用商店中下载并安装您的应用。

在用户安装您的应用后(或如果用户已安装您的应用),应用会启动并接收内容网址(如果您已发送)。应用还会接收邀请 ID,此 ID 与发送端的邀请 ID 一致。

注册以接收传入的邀请

要查收邀请,您需要注册 InviteReceived 事件。

void Start() {
    Firebase.Invites.FirebaseInvites.InviteReceived += OnInviteReceived;
    Firebase.Invites.FirebaseInvites.InviteNotReceived += OnInviteNotReceived;
    Firebase.Invites.FirebaseInvites.ErrorReceived += OnErrorReceived;
}

void OnInviteReceived(object sender,
                      Firebase.Invites.InviteReceivedEventArgs e) {
  if (e.InvitationId != "") {
    Debug.Log("Invite received: Invitation ID: " + e.InvitationId);
    Firebase.Invites.FirebaseInvites.ConvertInvitationAsync(
        e.InvitationId).ContinueWith(HandleConversionResult);
  }
  if (e.DeepLink.ToString() != "") {
    Debug.Log("Invite received: Deep Link: " + e.DeepLink);
  }
}

void OnInviteNotReceived(object sender, System.EventArgs e) {
  Debug.Log("No Invite or Deep Link received on start up");
}

void OnErrorReceived(object sender,
                     Firebase.Invites.InviteErrorReceivedEventArgs e) {
  Debug.LogError("Error occurred received the invite: " + e.ErrorMessage);
}

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面