Unity3d:Android 和 iOS 推送通知

Unity3d: Android and iOS Push Notifications

我正在使用 Unity 开发一款手机游戏,并且打算使用推送通知。我发现 NotificationServices class 仅适用于 iOS。但是我没有找到 class.

的任何服务器端代码示例

我要的是提供服务器和客户端代码的任何好的示例或解决方案(Android 客户端和 Android 和 iOS 的后端)。

我知道 pushwoosh 等服务。他们对我不起作用,因为我的公司有自己的游戏服务器,并希望从中发送通知。

我想这不是什么独特的东西,应该已经有人这样做了。

谢谢。

你是对的,确实有人这样做了:) 我是新 Unity 资产 UTNotifications 的开发者之一。它可以满足您的所有需求,甚至更多。另请注意,没有一种方法可以实现推送通知以与任何 Android 设备一起使用 - Google 云消息传递 (GCM) 仅适用于 Google 基于 Play 的设备和Amazon 设备的 Amazon Device Messaging (ADM)。幸运的是,UTNotifications 支持 iOS 的服务和 Apple 推送通知服务 (APNS)。它提供了完整的源代码,因此您可以根据需要进行任何调整。它还包含演示服务器源代码,因此您可以使用自己的服务器发送推送通知,而无需使用任何第三方服务。

更多信息:http://forum.unity3d.com/threads/released-utnotifications-professional-cross-platform-push-notifications-and-more.333045/

这里有一些代码示例。
例如,您可以通过以下方式初始化系统并将推送通知注册 ID 发送到服务器:

public void Start()
{
    UTNotifications.Manager notificationsManager = UTNotifications.Manager.Instance;
    notificationsManager.OnSendRegistrationId += SendRegistrationId;

    bool result = notificationsManager.Initialize(false);
    Debug.Log("UTNotifications Initialize: " + result);
}

private void SendRegistrationId(string providerName, string registrationId)
{
    StartCoroutine(_SendRegistrationId(providerName, registrationId));
}

private IEnumerator _SendRegistrationId(string providerName, string registrationId)
{
    WWWForm wwwForm = new WWWForm();

    wwwForm.AddField("provider", providerName);
    wwwForm.AddField("id", registrationId);

    WWW www = new WWW(m_webServerAddress + "/register", wwwForm);
    yield return www;

    if (www.error != null)
    {
        Debug.LogError(www.error);
    }
}

这就是您请求演示服务器从 Unity 向每个注册设备发送推送通知的方式:

public IEnumerator NotifyAll(string title, string text)
{
    title = WWW.EscapeURL(title);
    text = WWW.EscapeURL(text);

    WWW www = new WWW(m_webServerAddress + "/notify?title=" + title + "&text=" + text);
    yield return www;
}

您还可以处理收到的通知:

UTNotifications.Manager.Instance.OnNotificationsReceived += (receivedNotifications) =>
{
    Debug.Log(receivedNotifications[0].userData["CustomMessage"]);
};

您可以使用类似的语法做很多其他事情。该资产包括 SampleUI class。它会对你有很大帮助。还有API参考(http://universal-tools.github.io/UTNotifications/html/annotated.html)和详细的手册。