向Android发送推送通知

时间:2016-05-09 02:42:25

标签: android push-notification google-cloud-messaging android-notifications

我目前正在开发在服务器上运行WebLogic的Java Web服务。这些Web服务由移动应用程序调用,该应用程序由另一个团队开发。我需要向移动应用程序发送推送通知。我目前的开发并不需要我进行任何移动开发,因为我只进行服务器端开发。我也没有移动开发方面的经验。如何开发推送通知到两个Android设备?

感谢。

5 个答案:

答案 0 :(得分:1)

GCM申请的先决条件

  1. Google API服务器密钥
  2. 通过GCM进行通信的Android设备的GCM注册
  3. 如果您对GCM有明确的概念,请访问here

    您的托管服务器无需任何Ip / HostName即可发送消息,因此此消息将通过com.google.android.gcm.server.Sender此类进行审议。此类将在内部与GCM Server进行通信。 您正在使用以下方式配置此类:

    Sender sender = new Sender(API_KEY);
    

    您可以使用GCM服务器发送消息。此代码适用于向设备发送推送通知。这可以从java服务器向任何Android / IOS应用程序发送通知。

    Here是此GCM服务器库的jar。

    这里,这个构造函数获取MESSAGE和deviceGcmId,其中必须发送Push Message。

    public PushNotification(String id, String message) {
                this.receiverID = id;
                this.gcmMessage = message;
            }
    

    以下是示例代码:

    import com.google.android.gcm.server.Message;
    import com.google.android.gcm.server.MulticastResult;
    import com.google.android.gcm.server.Result;
    import com.google.android.gcm.server.Sender;
    
    public class PushNotification {
        private String receiverID;
        private String gcmMessage;
        String MESSAGE_KEY = "YOUR_MESSAGE_KEY";
        String API_KEY = "YOUR_API_KEY";
    
        Result result;
        Sender sender;
        Message message;
        MulticastResult multicastResult;
    
        public PushNotification() {
        }
    
        public PushNotification(String id, String message) {
            this.receiverID = id;
            this.gcmMessage = message;
        }
    
        public boolean sendSinglePushNotification() {
            try {
                sender = new Sender(API_KEY);
                message = new Message.Builder().timeToLive(30).addData(MESSAGE_KEY, gcmMessage).build();
                result = sender.send(message, receiverID, 1);
                if (result != null && result.getErrorCodeName() == null) {
                    return true;
                }
            } catch (Exception ex) {
                System.err.println(ex.getMessage());
            }
            return false;
        }
    }
    

    您可以使用以下方式调用此类:

    PushNotification notification=new PushNotification("DEVICE_GCM_ID","MESSAGE HAVE To SEND");    
    notification.sendSinglePushNotification();
    

    就是这样:))

答案 1 :(得分:0)

如果您想在多个平台上使用推送通知 Parse.com但问题是Parse.com将于2017年1月28日停止服务。您可以使用urban airship等替代方案。我个人建议使用城市飞艇。

答案 2 :(得分:0)

您可以尝试来自泽西岛的Sever Sent Event(SSE),看看是否符合您的要求。

答案 3 :(得分:0)

您可以使用Google Cloud Messaging执行此操作,它现在支持Android和iOS。它是免费的,并且对通知的数量没有限制。

如何运作?

简单地说,您需要从手机生成注册ID并将其发送到您的服务器,然后当您需要发送通知时,只需将注册ID和消息发送给GCM。

请查看Google关于GCM的链接:

https://developers.google.com/cloud-messaging/

此链接只是快速了解服务器代码(用PHP编写):

http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/

您可以在第一个链接中注意到一些更改。

最后,请查看此链接,逐步说明客户端代码:

http://www.androidwarriors.com/2015/10/push-notification-using-gcm-in-android.html

我希望这会对你有所帮助,不要犹豫,提出任何问题。

答案 4 :(得分:0)

向Android发送推送通知

<div class="col-md-4">
<?php if($product->is_on_sale())
        {
            $price = $product->get_sale_price();
            echo 'sale';
        }else{
            $price = $product->get_price();
            echo 'Normal';
    }

echo 'The Price is:'. $price;
?>
<script async src="widget-0.1.0.js?type=calculator&min=50&max=400&amount=".<?php echo $price;?>" type="application/javascript"></script>