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)。它提供了完整的源代码,因此您可以根据需要进行任何调整。它还包含演示服务器源代码,因此您可以使用自己的服务器发送推送通知,而无需使用任何第三方服务。
这里有一些代码示例。
例如,您可以通过以下方式初始化系统并将推送通知注册 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)和详细的手册。
我正在使用 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)。它提供了完整的源代码,因此您可以根据需要进行任何调整。它还包含演示服务器源代码,因此您可以使用自己的服务器发送推送通知,而无需使用任何第三方服务。
这里有一些代码示例。
例如,您可以通过以下方式初始化系统并将推送通知注册 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)和详细的手册。