Monaca+Ionicでアプリ開発をしています。
プッシュ通知の実装にcordova-plugin-firebaseを使用しています。
プッシュ通知の受信はできるのですが
アプリを立ち上げている場合、プッシュのタイトルとアイコン、アイコンの背景色が表示されなくなる現象が発生します。
アプリをバックグラウンド・未起動状態だとちゃんと表示されます。
Monaca側ではFCMのロジックはこれだけです。
プラグインのバグか何かでしょうか。
10/6追記
titleは送る側のミスでした。
アイコンはまだ直ってません。。。
Android4.x 7.xではアプリ起動中でもアイコンが表示されていました。
Js
1 2 function onDeviceReady() { 3 //プッシュ通知を受け取る権限を付与 4 window.FirebasePlugin.grantPermission(); 5 //プッシュ通知を受け取るための許可を確認 6 window.FirebasePlugin.hasPermission(function(data){ 7 console.log('hasPermission : '+data.isEnabled); 8 }); 9 var _token = localStorage.getItem("FCMtoken"); 10 if(_token == null){ 11 //デバイストークン(ID)を取得 12 window.FirebasePlugin.getToken(function(token) { 13 console.log('token : '+token); 14 localStorage.setItem("FCMtoken",token); 15 }, function(error) { 16 console.log('token : '+error); 17 }); 18 19 window.FirebasePlugin.onTokenRefresh(function(token) { 20 console.log('tokenRefresh : '+token); 21 }, function(error) { 22 console.log('tokenRefresh : '+error); 23 }); 24 }
プラグインのここらへんでアイコンの指定をしてそうなのですがMonacaのディレクトリのどこが対応しているかが分かりません。
ご存知の方ご教授願います。。
Java
1int resID = getResources().getIdentifier("notification_icon", "drawable", getPackageName()); 2 if (resID != 0) { 3 notificationBuilder.setSmallIcon(resID); 4 } else { 5 notificationBuilder.setSmallIcon(getApplicationInfo().icon); 6 } 7 8 if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) 9 { 10 int accentID = getResources().getIdentifier("accent", "color", getPackageName()); 11 notificationBuilder.setColor(getResources().getColor(accentID, null)); 12 } 13 14 Notification notification = notificationBuilder.build(); 15 if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP){ 16 int iconID = android.R.id.icon; 17 int notiID = getResources().getIdentifier("notification_big", "drawable", getPackageName()); 18 if (notification.contentView != null) { 19 notification.contentView.setImageViewResource(iconID, notiID); 20 } 21 }
あなたの回答
tips
プレビュー