Как отправить уведомление с помощью плагина oneSignal в wordpress? - PullRequest
2 голосов
/ 02 августа 2020

Я новичок в SO, моя проблема заключается в отправке уведомления с изображением. Я установил плагин OneSignal на веб-сайте wordpress и создал образец приложения android. Я получаю уведомление, но без большого изображения. В Android я получаю это json в классе уведомлений.

{custom={"u":"https:my post url","i":"fe37dc8e-8e6c-4f00-9d69-a"}, alert=Kapil Sharma Show वापस आ रहा है नए मेहमान के साथ, जानिए कैसे हुआ शूट, title=My Website}

Это мой метод отображения уведомлений.

    private fun sendNotification(notification: RemoteMessage.Notification?, data: Map<String, String>) {
    val icon = BitmapFactory.decodeResource(resources, R.mipmap.ic_launcher)
    val intent = Intent(this, MainActivity::class.java)
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
    val pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT)
    val notificationBuilder = NotificationCompat.Builder(this, "my_channel")
            .setContentTitle(notification!!.title)
            .setContentText(notification.body)
            .setAutoCancel(true)
            .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
            .setContentIntent(pendingIntent)
            .setContentInfo(notification.title)
            .setLargeIcon(icon)
            .setColor(Color.RED)
            .setLights(Color.RED, 1000, 300)
            .setDefaults(Notification.DEFAULT_VIBRATE)
            .setSmallIcon(R.mipmap.ic_launcher)
    try {
        val picture_url = data["picture_url"]
        if (picture_url != null && "" != picture_url) {
            val url = URL(picture_url)
            val bigPicture = BitmapFactory.decodeStream(url.openConnection().getInputStream())
            notificationBuilder.setStyle(
                    NotificationCompat.BigPictureStyle().bigPicture(bigPicture).setSummaryText(notification.body)
            )
        }
    } catch (e: IOException) {
        e.printStackTrace()
    }
    val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager

    // Notification Channel is required for Android O and above
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        val channel = NotificationChannel(
                "my_channel", "my_channel_name", NotificationManager.IMPORTANCE_DEFAULT
        )
        channel.description = "channel description"
        channel.setShowBadge(true)
        channel.canShowBadge()
        channel.enableLights(true)
        channel.lightColor = Color.RED
        channel.enableVibration(true)
        channel.vibrationPattern = longArrayOf(100, 200, 300, 400, 500)
        notificationManager.createNotificationChannel(channel)
    }
    notificationManager.notify(0, notificationBuilder.build())
}

Я просто хочу отправить уведомление с изображением когда на моем сайте wordpress добавлено новое сообщение.

...