使用 cordova 推送插件推送带有大图像的通知
Push notifications with big Images using cordova push plugin
我想获得类似于 flipkart 或 myntra 的推送通知。 (推送通知将附带一张大图,详细介绍优惠,点击后将进入优惠区)。有谁知道如何完成它。
我有这样的代码:
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(context)
.setDefaults(defaults)
.setStyle(new NotificationCompat.BigTextStyle().bigText("This is a test for push notification with big images."))
.setLargeIcon(icon)
.setSmallIcon(context.getApplicationInfo().icon)
.setWhen(System.currentTimeMillis())
.setContentTitle(extras.getString("title"))
.setTicker(extras.getString("title"))
.setContentIntent(contentIntent)
.setAutoCancel(true);
前段时间,我为此创建了一个 pull request。
有效代码:
public void createBigPicNotification(Context context, Bundle extras)
{
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
String appName = getAppName(this);
.
.
.
String bigPictureUrl= null;
bigPictureUrl=extras.getString("bigPicture");
Bitmap bigPictureBMP = null;
if (bigPictureUrl != null) {
try {
URL url = new URL(bigPictureUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
bigPictureBMP = BitmapFactory.decodeStream(input);
} catch (IOException e) {
e.printStackTrace();
}
}
NotificationCompat.BigPictureStyle bigPicStyle = new
NotificationCompat.BigPictureStyle();
bigPicStyle.setBigContentTitle(extras.getString("title"));
bigPicStyle.setSummaryText(extras.getString("message"));
bigPicStyle.bigPicture(bigPictureBMP);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(context)
.setDefaults(defaults)
.setSmallIcon(context.getApplicationInfo().icon)
.setWhen(System.currentTimeMillis())
.setTicker(extras.getString("title"))
.setContentIntent(contentIntent)
.setAutoCancel(true)
.setStyle(bigPicStyle);
String message = extras.getString("message");
if (message != null) {
mBuilder.setContentText(message);
} else {
mBuilder.setContentText("<missing message content>");
}
String msgcnt = extras.getString("msgcnt");
if (msgcnt != null) {
mBuilder.setNumber(Integer.parseInt(msgcnt));
}
int notId = 0;
try {
notId = Integer.parseInt(extras.getString("notId"));
}
catch(NumberFormatException e) {
Log.e(TAG, "Number format exception - Error parsing Notification ID: " + e.getMessage());
}
catch(Exception e) {
Log.e(TAG, "Number format exception - Error parsing Notification ID" + e.getMessage());
}
mNotificationManager.notify((String) appName, notId, mBuilder.build());
}
我想获得类似于 flipkart 或 myntra 的推送通知。 (推送通知将附带一张大图,详细介绍优惠,点击后将进入优惠区)。有谁知道如何完成它。 我有这样的代码:
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(context)
.setDefaults(defaults)
.setStyle(new NotificationCompat.BigTextStyle().bigText("This is a test for push notification with big images."))
.setLargeIcon(icon)
.setSmallIcon(context.getApplicationInfo().icon)
.setWhen(System.currentTimeMillis())
.setContentTitle(extras.getString("title"))
.setTicker(extras.getString("title"))
.setContentIntent(contentIntent)
.setAutoCancel(true);
前段时间,我为此创建了一个 pull request。
有效代码:
public void createBigPicNotification(Context context, Bundle extras)
{
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
String appName = getAppName(this);
.
.
.
String bigPictureUrl= null;
bigPictureUrl=extras.getString("bigPicture");
Bitmap bigPictureBMP = null;
if (bigPictureUrl != null) {
try {
URL url = new URL(bigPictureUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
bigPictureBMP = BitmapFactory.decodeStream(input);
} catch (IOException e) {
e.printStackTrace();
}
}
NotificationCompat.BigPictureStyle bigPicStyle = new
NotificationCompat.BigPictureStyle();
bigPicStyle.setBigContentTitle(extras.getString("title"));
bigPicStyle.setSummaryText(extras.getString("message"));
bigPicStyle.bigPicture(bigPictureBMP);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(context)
.setDefaults(defaults)
.setSmallIcon(context.getApplicationInfo().icon)
.setWhen(System.currentTimeMillis())
.setTicker(extras.getString("title"))
.setContentIntent(contentIntent)
.setAutoCancel(true)
.setStyle(bigPicStyle);
String message = extras.getString("message");
if (message != null) {
mBuilder.setContentText(message);
} else {
mBuilder.setContentText("<missing message content>");
}
String msgcnt = extras.getString("msgcnt");
if (msgcnt != null) {
mBuilder.setNumber(Integer.parseInt(msgcnt));
}
int notId = 0;
try {
notId = Integer.parseInt(extras.getString("notId"));
}
catch(NumberFormatException e) {
Log.e(TAG, "Number format exception - Error parsing Notification ID: " + e.getMessage());
}
catch(Exception e) {
Log.e(TAG, "Number format exception - Error parsing Notification ID" + e.getMessage());
}
mNotificationManager.notify((String) appName, notId, mBuilder.build());
}