使用oracle maf实现推送通知

时间:2016-03-03 08:03:07

标签: oracle-maf

我能够使用设备令牌注册。但是我没有收到来自我的服务器的消息。我已经用GCM注册了我的项目并获得了项目ID,服务器密钥。

在这里输入代码

public void onMessage(Event event) {
    String msg;
    msg = event.getPayload();
    System.out.println("#### Message from the Server :" + msg);
    String one="";
    AdfmfContainerUtilities.invokeContainerJavaScriptFunction(AdfmfJavaUtilities.getFeatureId(), "usercheck", new Object[]{msg});
    // Parse the payload of the push notification
    HashMap payload = null;
    String pushMsg = "No message received";
    try
    {
      payload = (HashMap)JSONBeanSerializationHelper.fromJSON(HashMap.class, msg);
      pushMsg = (String)payload.get("alert");
    }
    catch(Exception e) {
        e.printStackTrace();
    }
    // Write the push message to app scope to display to the user        
    AdfmfJavaUtilities.setELValue("#{applicationScope.pushMessage}", pushMsg);
}

public void onError(AdfException adfException) {
    System.out.println("#### Error: " + adfException.toString());
    // Write the error into app scope        
    AdfmfJavaUtilities.setELValue("#{applicationScope.errorMessage}", adfException.toString());

}

public void onOpen(String token) {
    System.out.println("#### Registration token:" + token);
    // Clear error in app scope
    AdfmfJavaUtilities.setELValue("#{applicationScope.errorMessage}", null);

    // Write the token into app scope
    AdfmfJavaUtilities.setELValue("#{applicationScope.deviceToken}", token);
}

}

2 个答案:

答案 0 :(得分:0)

我认为this article会对您有所帮助。我能够为GCM完成它们,但尚未为APN完成。

要注册Google Cloud Messaging,请转到this link,然后点击"获取配置"按钮。

在服务器应用程序中,正确设置您的设备令牌和发件人ID。使用这些消息发送消息。

答案 1 :(得分:0)

由于您从服务器获得deviceId,我认为问题不在于代码。您是否在PushPlugin中启用了maf-application.xml