Android で画像つきプッシュ通知を配信する方法
※Growthbeat SDK 2.0.6を導入していることが前提となります。
最新版 Growthbeat SDKは
こちらよりダウンロードしてください。
アプリ側の実装
public void onCreate(){ super.onCreate(); GrowthPush.getInstance().initialize(getApplicationContext(), "YOUR_APPLICATION_ID", "YOUR_CREDENTIAL_ID", BuildConfig.DEBUG ? Environment.development : Environment.production); GrowthPush.getInstance().requestRegistrationId("YOUR_SENDER_ID"); GrowthPush.getInstance().setReceiveHandler(new DefaultReceiveHandler() { @Override public void onReceive(Context context, Intent intent) { Bundle extras = intent.getExtras(); String endTimestamp = String.valueOf(System.currentTimeMillis()); int maxIdRange = Integer.valueOf(endTimestamp.substring(endTimestamp.length() - 9, endTimestamp.length())); int randomNotificationId = new Random().nextInt(maxIdRange); NotificationCompat.Builder builder = super.defaultNotificationBuilder(context, extras, defaultLaunchPendingIntent(randomNotificationId, context, intent.getExtras())); String image = extras.getString("YOUR_CUSTOM_KEY"); if (image != null) { try { URL imageURL = new URL(image); InputStream istream = imageURL.openStream(); Bitmap iBmp = BitmapFactory.decodeStream(istream); NotificationCompat.BigPictureStyle bigPictureStyle = new NotificationCompat.BigPictureStyle(builder); builder.setStyle(bigPictureStyle.bigPicture(iBmp)); istream.close(); builder.setStyle(bigPictureStyle.setSummaryText(extras.getString("message"))); } catch (Exception e) { } } super.addNotification(context, randomNotificationId, builder.build()); } }); } private PendingIntent defaultLaunchPendingIntent(int requestCode, Context context, Bundle extras) { Intent intent = new Intent(context, AlertActivity.class); intent.putExtras(extras); intent.putExtra("dialogType", DialogType.none.toString()); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); return PendingIntent.getActivity(context, requestCode, intent, PendingIntent.FLAG_CANCEL_CURRENT); }
起動時のApplicationクラスのonCreate()内で、GrowthPushの初期化処理を実装した後に、上記を実装してください。 初期化処理がない場合や、Activityにセットしますと、プロセスがない場合に正しく動作いたしません。
"YOUR_CUSTOM_KEY"は、配信時にカスタムフィールドで定義する任意のキーのため、変更が可能です。
管理画面にて配信の設定
カスタムフィールドに下記 json を記述して配信設定を行ってください。
{"YOUR_CUSTOM_KEY":"imageURL"}
注意点
・"YOUR_CUSTOM_KEY"はアプリの実装のキーと一致している必要があります。
画像サイズ
Androidの通知欄の画像表示領域は下記となります。
192dp × 450dp
配信イメージ
・通知一覧のトップにくると自動で画像を開きます。
・トップ以外の場合は、通知を下にスワイプすることで画像を開きます。