2015-06-20 321 views
1

我正在与Unity合作开发移动游戏并使用推送通知。我发现仅适用于iOS的NotificationServices类。但是我没有找到该类的任何服务器端代码示例。Unity3d:Android和iOS推送通知

我在问任何提供服务器和客户端代码的好例子或解决方案(Android客户端&后端适用于Android的iOS)。

我知道诸如pushwoosh之类的服务。他们没有为我工作,因为我的公司有自己的游戏服务器,并希望从中发送通知。

我想这不是独一无二的,有人应该已经这样做了。

谢谢。

回答

3

你是对的,有人已经这么做:) 我是新的Unity资产UTNotifications的开发人员之一。它可以满足您的所有需求,甚至更多。另请注意,推送通知无法与任何Android设备一起使用 - 没有任何一种方式可以与任何Android设备一起使用 - Google云消息传递(GCM)仅适用于基于Google Play的设备和适用于亚马逊设备的亚马逊设备消息传递(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); 
    } 
} 

这就是你如何请求演示服务器的推送通知,发送给每一个注册的设备统一:

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"]); 
}; 

你可以做很多的行吟诗人r类似语法的东西。该资产包括SampleUI类。它会帮助你很多。还有API参考(http://universal-tools.github.io/UTNotifications/html/annotated.html)和详细的手册。

+0

乍一看对我来说很好。你能否在这里添加一些代码示例,我该如何使用它?我没有找到他们跟随你提供的链接,只有API参考。 – dubadub

+0

我编辑了我原来的答案。它现在包含一些代码示例。欢迎您向我们的支持邮件[email protected]询问任何问题。我们很乐意为您提供帮助! –

+0

谢谢,看起来不错。 – dubadub