android 推送 url,android – 在推送通知Firebase中发送URL

我的应用程序当前正在接收来自Firebase控制台的文本,图像和两者作为推送通知.我也想将一个URL作为通知从我的Firebase控制台发送给应用用户.点击通知.用户应被重定向到特定的URL,例如www.google.com.如何在以下代码中执行此操作?

package com.example.khan.andronotification;

/**

* Created by AndroidBash on 20-Aug-16.

*/

import android.app.NotificationManager;

import android.app.PendingIntent;

import android.content.Context;

import android.content.Intent;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.media.RingtoneManager;

import android.net.Uri;

import android.support.v4.app.NotificationCompat;

import android.util.Log;

import com.google.firebase.messaging.FirebaseMessagingService;

import com.google.firebase.messaging.RemoteMessage;

import java.io.InputStream;

import java.net.HttpURLConnection;

import java.net.URL;

public class MyFirebaseMessagingService extends FirebaseMessagingService {

private static final String TAG = "FirebaseMessageService";

Bitmap bitmap;

/**

* Called when message is received.

*

* @param remoteMessage Object representing the message received from Firebase Cloud Messaging.

*/

@Override

public void onMessageReceived(RemoteMessage remoteMessage) {

// There are two types of messages data messages and notification messages. Data messages are handled

// here in onMessageReceived whether the app is in the foreground or background. Data messages are the type

// traditionally used with GCM. Notification messages are only received here in onMessageReceived when the app

// is in the foreground. When the app is in the background an automatically generated notification is displayed.

// When the user taps on the notification they are returned to the app. Messages containing both notification

// and data payloads are treated as notification messages. The Firebase console always sends notification

// messages. For more see: https://firebase.google.com/docs/cloud-messaging/concept-options

//

Log.d(TAG, "From: " + remoteMessage.getFrom());

// Check if message contains a data payload.

if (remoteMessage.getData().size() > 0) {

Log.d(TAG, "Message data payload: " + remoteMessage.getData());

}

// Check if message contains a notification payload.

if (remoteMessage.getNotification() != null) {

Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());

}

//The message which i send will have keys named [message, image, AnotherActivity] and corresponding values.

//You can change as per the requirement.

//message will contain the Push Message

String message = remoteMessage.getData().get("message");

//imageUri will contain URL of the image to be displayed with Notification

String imageUri = remoteMessage.getData().get("image");

//If the key AnotherActivity has value as True then when the user taps on notification, in the app AnotherActivity will be opened.

//If the key AnotherActivity has value as False then when the user taps on notification, in the app MainActivity will be opened.

String TrueOrFlase = remoteMessage.getData().get("AnotherActivity");

//To get a Bitmap image from the URL received

bitmap = getBitmapfromUrl(imageUri);

sendNotification(message, bitmap, TrueOrFlase);

}

/**

* Create and show a simple notification containing the received FCM message.

*/

private void sendNotification(String messageBody, Bitmap image, String TrueOrFalse) {

Intent intent = new Intent(this, MainActivity.class);

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

intent.putExtra("AnotherActivity", TrueOrFalse);

PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,

PendingIntent.FLAG_ONE_SHOT);

Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)

.setLargeIcon(image)/*Notification icon image*/

.setSmallIcon(R.drawable.firebase_icon)

.setContentTitle(messageBody)

.setStyle(new NotificationCompat.BigPictureStyle()

.bigPicture(image))/*Notification with Image*/

.setAutoCancel(true)

.setSound(defaultSoundUri)

.setContentIntent(pendingIntent);

NotificationManager notificationManager =

(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());

}

/*

*To get a Bitmap image from the URL received

* */

public Bitmap getBitmapfromUrl(String imageUrl) {

try {

URL url = new URL(imageUrl);

HttpURLConnection connection = (HttpURLConnection) url.openConnection();

connection.setDoInput(true);

connection.connect();

InputStream input = connection.getInputStream();

Bitmap bitmap = BitmapFactory.decodeStream(input);

return bitmap;

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

return null;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值