如何将推送通知中的图片发送到 ionic 2 应用程序

Posted

技术标签:

【中文标题】如何将推送通知中的图片发送到 ionic 2 应用程序【英文标题】:How to send picture in push notifications to ionic 2 app 【发布时间】:2017-10-13 12:29:16 【问题描述】:

我尝试使用以下代码将图片发送到我的 android 应用。

public class PushNotificationUtility 

    private static String SERVER_KEY = "MYSERVERKEY";

    public static void main(String[] args) throws Exception 
        String title = "My First Notification";
        String message = "Hello, I'm push notification";
        sendPushNotification(title, message);
    

    private static void sendPushNotification(String title, String message) throws Exception 
        // Create connection to send FCM Message request.
        URL url = new URL("https://fcm.googleapis.com/fcm/send");
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestProperty("Authorization", "key=" + SERVER_KEY);
        conn.setRequestProperty("Content-Type", "application/json");
        conn.setRequestMethod("POST");
        conn.setDoOutput(true);

        JSONObject json = new JSONObject();
        json.put("to","/topics/MYTopic");
        JSONObject info = new JSONObject();
        info.put("title", title); // Notification title
        info.put("body", message); // Notification body
        info.put("picture","http://36.media.tumblr.com/c066cc2238103856c9ac506faa6f3bc2/tumblr_nmstmqtuo81tssmyno1_1280.jpg");
        info.put("summaryText","Summary");
        json.put("notification", info);


        // Send FCM message content.
        OutputStream outputStream = conn.getOutputStream();
        outputStream.write(json.toString().getBytes());

        System.out.println(conn.getResponseCode());
        System.out.println(conn.getResponseMessage());
    

我可以将通知发送到 Android 设备,但不能发送图片。我想将图片与消息一起发送。我需要在客户端做些什么来显示图片吗?

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

FCM notification 上没有 picture 属性,您可以做的是使用data 属性发送和对象,当用户收到推送时,您想在应用中使用的重要数据,使用属性picture 与您的图片链接:

let data = 
  picture: 'http://36.media.tumblr.com/c066cc2238103856c9ac506faa6f3bc2/tumblr_nmstmqtuo81tssmyno1_1280.jpg'
;
info.put("data", data); // Notification data

并且在你的接收推送方法中你可以抓取这个属性并显示图片。

myPlugin.on('notification', notification => 
  console.log(notification); // JUST TO SEE THE CALLBACK STRUCTURE
  this.myImage = notification.data.picture;
);

希望这会有所帮助:D

【讨论】:

我希望图像显示为通知的一部分,就像某些优惠的广告一样。不像一些数据。通常我们会在购物应用中看到这类通知。 @user1188867 哦,明白了。据我所知,FCM cordova 插件不支持这种通知。 Ionic.io 通知也不支持它。我认为这是更原生的,或者还没有人能用插件做到这一点。但是这里有一个关于如何实现这个的Android教程androidbash.com/firebase-push-notification-android

以上是关于如何将推送通知中的图片发送到 ionic 2 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Ionic 框架中发送推送通知?

在 Ionic 中发送推送通知

Ionic 2 推送通知操作按钮点击回调使用打字稿

如何接收应用程序停止或设备关闭时发送的 GCM 推送通知?

服务器上有新数据时的 Ionic 2 推送通知

应用程序关闭时的 Ionic 3 推送通知