ã¿ãªãããããã«ã¡ã¯ã
ãã®ãã©ã°ã€ã³ãcordova8 +ã§äœ¿çšããŠããå Žåãéç¥ã¢ã€ã³ã³ãå€æŽããŠãæ©èœãããAndroidã§å€ããéç¥ã¢ã€ã³ã³ã¯ç©ºçœã®åè§ãã®åé¡ãçºçããããšããããŸãã ããã¯ãAndroidã®éç¥ã¢ã€ã³ã³ãéæãªèæ¯ã«ã·ã³ãã«ãª1è²ã®åœ¢ç¶ã§ããå¿ èŠãããããã®ãããªã¢ã€ã³ã³ãæäŸããŠããªãå ŽåãAndroidã¯ä»£ããã«ã¢ããªã±ãŒã·ã§ã³ã¢ã€ã³ã³ã䜿çšããããã«çºçããŸãã ãããã¯ãããããéæãªèæ¯ã®ãªãå®å šã§ã«ã©ãã«ãªæ£æ¹åœ¢ã§ãã
ããã¯ãæ°ããIonic 3ãããžã§ã¯ããèšå®ãããã®ãã©ã°ã€ã³ã䜿çšããããšãããšãã«éåžžã«ç ©ããããã®ã§ãã
Readme here atmã¯ãã¢ã€ã³ã³ãæ£ããå€æŽããããã»ã¹ã«ã€ããŠã¯èª¬æããŠããŸããã ã¢ã€ã³ã³ãå€æŽããããã«å¿ èŠãªæé ã¯æ¬¡ã®ãšããã§ãã
0ïŒã°ãŒã°ã«ã§é«ªãåŒã£åŒµãã®ããããŸãã ãã®æ瀺ã«åŸã£ãŠãã ãããããããã°ããããæ©èœããããã«ãªããŸããç§ãä¿¡ããŠãã ããã
1ïŒéæãªèæ¯ã«1è²ã®ã¿ã®ã¢ããªã±ãŒã·ã§ã³ã¢ã€ã³ã³ã®ããŒãžã§ã³ãæºåããŸã
2ïŒããã«ç§»åããŸãïŒhttpïŒ//romannurik.github.io/AndroidAssetStudio/icons-notification.html#source.type=clipart&source.clipart=ac_unit&source.space.trim=1&source.space.pad=0&name=notification_iconãç»åããæŒããŸãå·Šäžã«ã¢ã€ã³ã³ãã¢ããããŒãããå¿
èŠã«å¿ããŠã¢ã€ã³ã³ãããªãã³ã°/ããã£ã³ã°ãè¿œå ããŸã
3ïŒèŠæ ããè¯ãå Žåã¯ãå³äžã®ç¢å°ãæŒããŠãæç»å¯èœãªããã©ã«ããããŠã³ããŒãããŸãã res
ãã©ã«ããŒãå
éšã«ããzipãšãããããã¢ã€ã³ã³ã®ãµã€ãºãç°ãªã5ã€ã®drawable-xxx
ãã©ã«ããŒã衚瀺ãããŸãã
4ïŒãããã®ãããŒã¢ãã«ãã©ã«ãããããžã§ã¯ãã®ã©ããã«ã³ããŒããŸãã ç§ã®å Žåãã¢ã€ã³ã³ãšã¹ãã©ãã·ã¥ç»é¢ã®ãªãœãŒã¹ã®æšªã«ããããã³ããŒããŸããïŒ project-root/resources/android/notification_icon
5ïŒ <resource-file />
ãã£ã¬ã¯ãã£ãã䜿çšããŠãAndroidã¢ããªå
ã«ãããã®ãã¡ã€ã«ãã³ããŒããããã«config.xmlãã¡ã€ã«ãæ§æããŸãã crodova 8.x以éãæ£ããã¿ãŒã²ãããã¹ã¯app/src/main/res
ããšã«æ³šæããŠãã ããã cordova <8ã§ã¯ã res
ïŒä»¥åã¯ãªãœãŒã¹ãã¡ã€ã«ã¯platforms/android/res
ãã£ã¬ã¯ããªã«ä¿åãããŠããŸããããçŸåšã¯platforms/android/app/main/res
ïŒã 空çœã®Androidéç¥ã¢ã€ã³ã³ã§ãªã³ã©ã€ã³ã§ã解決ããããåé¡ã®ã»ãšãã©ã¯ããã«ã€ããŠèšåããŠããŸããã
<platform name="android">
(...)
<resource-file src="resources/android/notification_icon/drawable-mdpi/notification_icon.png" target="app/src/main/res/drawable-mdpi/notification_icon.png" />
<resource-file src="resources/android/notification_icon/drawable-hdpi/notification_icon.png" target="app/src/main/res/drawable-hdpi/notification_icon.png" />
<resource-file src="resources/android/notification_icon/drawable-xhdpi/notification_icon.png" target="app/src/main/res/drawable-xhdpi/notification_icon.png" />
<resource-file src="resources/android/notification_icon/drawable-xxhdpi/notification_icon.png" target="app/src/main/res/drawable-xxhdpi/notification_icon.png" />
<resource-file src="resources/android/notification_icon/drawable-xxxhdpi/notification_icon.png" target="app/src/main/res/drawable-xxxhdpi/notification_icon.png" />
</platform>
6ïŒæç»å¯èœãªãªãœãŒã¹ãšããŠã¢ããªã±ãŒã·ã§ã³ã«ã¢ã€ã³ã³ã衚瀺ãããã®ã§ãã¢ããªã±ãŒã·ã§ã³ã«ããã䜿çšãããå¿
èŠããããŸãã ããã§readmeã«äœãæžãããŠãããã«é¢ä¿ãªãããnotification_iconããšåŒã°ããæç»å¯èœãªãªãœãŒã¹ã®èªåæ€åºã¯æ©èœããŸããã§ããã https://github.com/arnesson/cordova-plugin-firebase/blob/master/src/android/FirebasePluginMessagingService.java#L140ã®ã³ãŒãããŒã¹ã«ããããã«èŠããã®ã§ãçç±ã¯æ£ç¢ºã«ã¯ããããŸããããç§ã¯Androidã®ææ°ããŒãžã§ã³ã§ã®ãªãœãŒã¹æ€åºã§äœããå€æŽããããšæšæž¬ããŸãã
7ïŒãã®ãããç§ã䜿çšã§ããä»ã®å¯äžã®è§£æ±ºçã¯ãFirebaseã«ããã·ã¥éç¥ãéä¿¡ãããšãã«ããã¯ãšã³ãããicon
ãã©ã¡ãŒã¿ãŒãéä¿¡ããããšã§ããã ãã€ããŒãã®notification
ãšandroid
éšåãæ£ããããŒãžããéã«åé¡ããããããAPIã¯ããããããã€ãã®å€æŽãè¡ãããŠããããšã«æ³šæããŠãã ããã ãã®ãããjsonã®notification
éšåã«ã¢ã€ã³ã³ãã©ã¡ãŒã¿ãè¿œå ããå¿
èŠããããŸãã androidåºæã®ãã©ã¡ãŒã¿ã䜿çšããŠãæ©èœããŸããã
ãã®ãããããã¯ãšã³ãããFirebaseã«éä¿¡ããéç¥ãã€ããŒãã¯ã次ã®ããã«ãªã£ãŠããå¿ èŠããããŸãããããæ©èœããå¯äžã®ããŒãžã§ã³ã§ãã
{
notification: {
body: 'Imma push your notification if you know what i mean!',
icon: 'notification_icon',
},
data: { someExtraData: 'goes_here' }
}
ç¹°ãè¿ãã«ãªããŸããã2018幎7æã®æç¹ã§ã¯ãAndroidåºæã®ãã©ã¡ãŒã¿ã®äœ¿çšã¯Firebaseã§ã¯æ©èœããŸãã-以äžã®æ©èœãšéç¥ã¢ã€ã³ã³ã¯ãããã¥ã¡ã³ãã®å 容ã«é¢ä¿ãªãå€æŽãããŸããïŒ
{
notification: {
body: 'Imma push your notification if you know what i mean!'
},
data: { someExtraData: 'goes_here_if_you_need_it' },
android: {
icon: 'notification_icon'
}
}
8ïŒãã¹ãŠã®æé ãå®äºãããšãæ°ããã¢ã€ã³ã³ããã¹ãããæºåãæŽããŸãã ã¢ã³ããã€ããšãã¥ã¬ãŒã¿ãŒå ã§ãã¹ãããããšã匷ããå§ãããŸã-ããã€ãã®ã¢ã³ããã€ãã¹ãã³ã¯éç¥ããŒãåŒãç¶ããèšå®å 容ã«é¢ä¿ãªãã¢ããªã±ãŒã·ã§ã³ã¢ã€ã³ã³ã䜿çšããŸãïŒã€ãŸããxiaomiã®MIUIïŒã ãŸããã¢ã€ã³ã³ããã£ãã·ã¥ãããããšããããŸãã ãã®ãããæ°ããäœæããAVDã®ã·ãã¥ã¬ãŒã¿ãŒã§ãã¹ãããã®ãæãå®å šãªæ¹æ³ã§ãã ãã¹ãã®å®è¡ã®éã«ã¢ããªãæåã§åé€ãããã£ãã·ã¥ã®åé¡ãåé¿ããããã«ã·ãã¥ã¬ãŒã¿ãŒ/ããã€ã¹ãåèµ·åããŸãã
å°ããª10x10ã¢ã€ã³ã³ãå€æŽããããã«çŽé¢ââããªããã°ãªããªãããŒãã«ã®éã¯ãåã«é«ãããããšã§ããããããã®é·ãèšäºãå°æ¥ä»ã®äººã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸã...
ãã®ã³ãŒããconfig.xml <platform name="android">
ã¿ã°ã«è¿œå ãããšãããã©ã«ãã®éç¥ã¢ã€ã³ã³ãšããŠã¢ã€ã³ã³ãè¿œå ããããã©ããããã¹ãããŠãã ããã
<config-file parent="/manifest/application/" target="app/src/main/AndroidManifest.xml">
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/notification_icon" />
</config-file>
ããã¯ãFirebase CloudMessagingããã«ãŸãã¯ãã€ããŒãã«ã¢ã€ã³ã³ããªãããã¯ãšã³ãã§éä¿¡ããå Žåã«æ©èœããŸãã
ããã«ãã£ãŒãããã¯ãæçš¿ããŠãã ããã
ãããæ©èœããå Žåããã®ã³ãŒãã«è¿œå ããããã¥ãŒããªã¢ã«ã¯å€ãã®äººã
ãå©ãããããREADMEã«è¿œå ããããã«PRãéãå¿
èŠããããŸãã
ããããšã@madsheep !! ããªãã¯ç§ã®åœãæããŸãã ïŒïŒ
ããã«ã¡ã¯ãé埳çãªãµããŒãã«æè¬ãããã®æ··ä¹±ã«çµãã£ãã®ã¯ç§ã ãã§ã¯ãªããšããæ°æã¡ãç§ã«äžããŠãããŸããã ããããæ®å¿µãªãããç§ã¯åã®ã¹ããã0ã«åŒãæ»ãããéäžã§é«ªã倱ããŸããã
http / postã¡ãœããã䜿çšããŠéç¥ãéä¿¡ããããšãããšãFirebaseAPIããjsonãç¡å¹ã§ãããšãããšã©ãŒã衚瀺ãããŸãã ç§ã¯äž¡æ¹ã®æ¹æ³ãè©ŠããŸããïŒ
ããã¯ãã¢ã€ã³ã³ãmessage: { notification: { icon: 'notification_icon', ... }, ... }
ãšããŠå«ãããšåŸããããã®ã§ãã
Error code=400, message=Invalid JSON payload received. Unknown name "icon" at 'message.notification': Cannot find field., status=INVALID_ARGUMENT, details=[@type=type.googleapis.com/google.rpc.BadRequest, fieldViolations=[field=message.notification, description=Invalid JSON payload received. Unknown name "icon" at 'message.notification': Cannot find field.]]
ããã¯ãã¢ã€ã³ã³ãmessage: { android: { icon: 'notification_icon' }, ... }
ãšããŠå«ãããšãã«è¡šç€ºãããã¡ãã»ãŒãžã§ãã
Error code=400, message=Invalid JSON payload received. Unknown name "icon" at 'message.android': Cannot find field., status=INVALID_ARGUMENT, details=[@type=type.googleapis.com/google.rpc.BadRequest, fieldViolations=[field=message.android, description=Invalid JSON payload received. Unknown name "icon" at 'message.android': Cannot find field.]]
ãã ãããããééã£ãã³ã³ããã¹ãã§äœ¿çšããŠããå¯èœæ§ããããŸãïŒFirebaseã¯ã©ãŠãã¡ãã»ãŒãžã³ã°ã䜿çšããŠã¯ã©ã€ã¢ã³ãã¢ããªã«éç¥ãéä¿¡ããããã¯ãšã³ãã¯ã©ãŠãã³ãŒãïŒã
ããã¯ç§ã«ãšã£ãŠã¯ããŸããããŸããïŒFirebaseé¢æ°ã䜿çšããŠéç¥ãéä¿¡ããŸãïŒïŒ
const payload = {
notification: {
title: ........,
body: .........,
icon: 'notification_icon'
}
};
ãããã§ãããã¯ç§ã«ãšã£ãŠ2ã€ã®ãšã©ãŒã®æåã®çµæã«ãªããŸãã JavaScript /ãªã¯ãšã¹ãã©ã€ãã©ãªãä»ããŠRESTãµãŒãã¹ã䜿çšããŠããã httpsïŒ//firebase.google.com/docs/cloud-messaging/js/first-messageã®åœ¢åŒã§éä¿¡ããŠãhttps://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages#Notificationã§èª¬æãããŠãããšæã
å®éããããèªãã ãšããããã¯ã¢ã€ã³ã³ãmessage.android.notification.icon
ãã€ãŸã1ã¬ãã«æ·±ãã¯ãã§ããããšã瀺åããŠããŸãã
ç§ã¯ã¡ããã©è©ŠããŸããããããŠããã¯å®éã«ç§ã®ããã«åããŸãïŒ ãããã£ãŠããã€ããŒããã©ã®ããã«æ§æãããã¯ãserverprotocolã«äŸåãããšæããŸã...
çããããã®è°è«ã«æè¬ããŸãã ã€ãã«é«ªã®æ¯ãæãã®ããããŸãã...
解決ããããšããã«éãã
@madsheepåäœããŠããŸããã ã¯ã©ãŠãæ©èœã®éç¥ã®äžã«ãã¢ã€ã³ã³ããè¿œå ãããšã次ã®ãšã©ãŒãçºçããŸãã
{ Error: Invalid JSON payload received. Unknown name "icon" at 'message.notification': Cannot find field
errorInfoïŒ
{ã³ãŒãïŒ 'ã¡ãã»ãŒãžã³ã°/ç¡å¹ãªåŒæ°'ã
ã¡ãã»ãŒãžïŒ 'ç¡å¹ãªJSONãã€ããŒããåä¿¡ããŸããã 'message.notification'ã®äžæãªåå "icon"ïŒãã£ãŒã«ããèŠã€ãããŸããã }ã
codePrefixïŒ 'ã¡ãã»ãŒãž'}
ããŠã¿ãŠãã ããmessage.android.notification.icon
ã®ä»£ããã«message.notification.icon
ã
@madsheep @guilhermehtkããã¯ç§ã®ããã«åããïŒ ã©ããã
ãã®ã³ãŒããconfig.xml
<platform name="android">
ã¿ã°ã«è¿œå ãããšãããã©ã«ãã®éç¥ã¢ã€ã³ã³ãšããŠã¢ã€ã³ã³ãè¿œå ããããã©ããããã¹ãããŠãã ããã<config-file parent="/manifest/application/" target="app/src/main/AndroidManifest.xml"> <meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/notification_icon" /> </config-file>
ããã¯ãFirebase CloudMessagingããã«ãŸãã¯ãã€ããŒãã«ã¢ã€ã³ã³ããªãããã¯ãšã³ãã§éä¿¡ããå Žåã«æ©èœããŸãã
ããã«ãã£ãŒãããã¯ãæçš¿ããŠãã ããã
ãããæ©èœããå Žåããã®ã³ãŒãã«è¿œå ããããã¥ãŒããªã¢ã«ã¯å€ãã®äººã ãå©ãããããREADMEã«è¿œå ããããã«PRãéãå¿ èŠããããŸãã
ããªãã¯ã¡ããã©ç§ã®æ¥ãäœããŸããã
ãã«ãã§åé¡ãçºçããå Žå
AAPTïŒãšã©ãŒïŒãã€ã³ããããŠããªããã¬ãã£ãã¯ã¹ã
次ã«ããè¿œå ããŠã¿ãŠãã ãã
xmlnsïŒandroid = " http://schemas.android.com/apk/res/android "
å±æ§ãã«ãŒãã«è¿œå ããå¿
èŠããããŸã
ããªãã¯ç§ã®æ¥ãæã£ãïŒ
2019幎ã«Androidãã«ã7.1.1ã§ãã®åé¡ã«çŽé¢ããŠãã人ã«ãšã£ãŠã¯ããªãœãŒã¹ãã©ã«ããŒãå€æŽãããããã§ã!!
Android Studioãšçæããããã¡ã€ã«ã確èªãããšã次ã®ããã«ãªããŸãã
<resource-file src="resources/android/notification/notification_icon.png" target="app/src/main/res/drawable/notification_icon.png" />
<config-file parent="/manifest/application/" target="app/src/main/AndroidManifest.xml">
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/notification_icon" />
</config-file>
1è¡ç®ã¯ç§ã«ãšã£ãŠééã£ãŠããã®ã§éèŠãªéšåã§ãã
@alarväžéšã®Androidã¹ããŒããã©ã³ã§ã¯ã¢ã€ã³ã³ã衚瀺ãããŸããããã«ããå¿ èŠãªå Žåã¯ããã¡ããã芧ãã ããã
ãã@bioyeneyeã©ã®ã¢ãã«ïŒ 圌ãã¯ã©ã®ããŒãžã§ã³ã®Androidãå®è¡ããŠããŸããïŒ åšåº«ãä»ãïŒ
@bioyeneyeãã¹ãŠã®Androidããã€ã¹ã§ã¢ã€ã³ã³ãæ©èœãããããã®
ã¢ã€ã³ã³ã«pngã§ã¯ãªãXMLã䜿çšããŠããŸãã ç§ã¯ããã次ã®dirsã«å«ããããã«ããã¯ã䜿çšããŠããŸãïŒ
'res/drawable-hdpi',
'res/drawable-mdpi',
'res/drawable-xhdpi',
'res/drawable-xxhdpi',
'res/drawable-xxxhdpi',
'res/mipmap-hdpi',
'res/mipmap-mdpi',
'res/mipmap-xhdpi',
'res/mipmap-xxhdpi',
'res/mipmap-xxxhdpi'
ãã¡ã€ã«ã®äŸãäœæããŸãã
android_notification_resources.js
ãã®æ°ããããã¯ãã¡ã€ã«ã«æ¬¡ãè¿œå ããŸãã
// å§ãã
const fs = requireïŒ "fs"ïŒ;
const path = requireïŒ "path"ïŒ;
const Q = requireïŒ "q"ïŒ;
var sourceDir = 'resources / android / notify_icon'; //ããã¯ããªãã®ã¢ã€ã³ã³ãããå Žæã§ã
var platformDir = 'platforms / android / app / src / main /';
var resourceDirs = [
'res / drawable-hdpi'ã
'res / drawable-mdpi'ã
'res / drawable-xhdpi'ã
'res / drawable-xxhdpi'ã
'res / drawable-xxxhdpi'ã
'res / mipmap-hdpi'ã
'res / mipmap-mdpi'ã
'res / mipmap-xhdpi'ã
'res / mipmap-xxhdpi'ã
'res / mipmap-xxxhdpi'
];
module.exports = functionïŒctxïŒ{
ifïŒctx.opts.platforms.indexOfïŒ 'android'ïŒ<0ïŒ{
æ»ã;
}
var deferred = Q.deferïŒïŒ;
var androidPlatformDir = path.joinïŒctx.opts.projectRootãplatformDirïŒ;
var customResourcesDir = path.joinïŒctx.opts.projectRootãsourceDirïŒ;
é¢æ°copyïŒsrcãdestïŒ{
var deferred = Q.deferïŒïŒ;
fs.stat(src, function(err, stats) {
if (err || !stats.isFile()) {
return deferred.reject(err);
}
fs.stat(path.dirname(dest), function(err, stats) {
if (err || !stats.isDirectory()) {
return deferred.reject(err);
}
var rs = fs.createReadStream(src);
rs.on('error', function(err) {
console.error(err.stack);
deferred.reject(err);
});
var ws = fs.createWriteStream(dest);
ws.on('error', function(err) {
console.error(err.stack);
deferred.reject(err);
});
ws.on('close', function() {
deferred.resolve();
});
rs.pipe(ws);
});
});
return deferred.promise;
}
fs.statïŒcustomResourcesDirãfunctionïŒerrãstatsïŒ{
ifïŒerr ||ïŒstats.isDirectoryïŒïŒïŒ{
deferred.resolveïŒïŒ;ãè¿ããŸãã
}
fs.readdir(customResourcesDir, function(err, files) {
var copies = [];
for (var i in files) {
for (var j in resourceDirs) {
var filePath = path.join(ctx.opts.projectRoot, sourceDir, files[i]);
var destPath = path.join(androidPlatformDir, resourceDirs[j], files[i]);
copies.push([filePath, destPath]);
}
}
copies.map(function(args) {
return copy.apply(copy, args);
});
Q.all(copies).then(function(r) {
deferred.resolve();
}, function(err) {
console.error(err.stack);
deferred.reject(err);
});
});
}ïŒ;
deferred.promiseãè¿ããŸãã
}
// çµãã
config.xmlã«æ¬¡ã®è¡ãè¿œå ããŠãããã¯ãå«ããŸãã
ããã¯ãè¡ãããšã¯ããªãœãŒã¹ãã©ã«ããŒããã¢ã€ã³ã³ãã³ããŒãããããå¥ã®ãããŒã¢ãã«ãã©ã«ããŒã«è¿œå ããããšã§ãã ããã¯ããã¹ãŠã®ããã€ã¹ã§æ©èœããããšã確èªããããã«è¡ããŸããã ãããŸã§ã¯é 調ã§ããã
ãããããªãã®ããã«åãããã©ããç§ã«ç¥ãããŠãã ããïŒ ä¹Ÿæ¯
@RobinGielããããšããç§ã¯ionic 3ã䜿çšããŠããŸãããããã¯æ©èœããŸããïŒ
ããã«ã¡ã¯@Flucadetena
Android 9
Cordovaãã©ãããã©ãŒã ïŒandroid 7.1.1
@bioyeneyeç§ãã€ãªã³3ã䜿çšããŠããŸãã ãã¹ãŠããã§ãã¯ããŠãç¥ããããŸãã ;ïŒ
@bioyeneyeã¯ãããããªããŸããããã¯ããæ°è¡ãå€æŽããå¿ èŠããããŸãã
var sourceDir = 'resources / android / notify_icon';
var platformDir = 'platforms / android';
ãããŠå€åconstQ = requireïŒ "q"ïŒ;ã䜿çšãã代ããã«ãã®è¡ãåé€ããŠãããã§äœ¿çšããŸããäŸïŒ
module.exports = functionïŒctxïŒ{
ifïŒctx.opts.platforms.indexOfïŒ 'android'ïŒ<0ïŒ{
æ»ã;
}
var Q = ctx.requireCordovaModuleïŒ 'q'ïŒ; //ããã§äœ¿çšããŸã
var deferred = Q.deferïŒïŒ;
var androidPlatformDir = path.joinïŒctx.opts.projectRootãplatformDirïŒ;
var customResourcesDir = path.joinïŒctx.opts.projectRootãsourceDirïŒ;
åãããã¯before_buildãšbefore_runã®äŸãåŒã³åºãconfig.xmlãè¿œå ããŸãã
<hook type="before_run" src="hooks/android_notification_resources.js" />
<hook type="before_build" src="hooks/android_notification_resources.js" />
ãã®ã³ãŒããconfig.xml
<platform name="android">
ã¿ã°ã«è¿œå ãããšãããã©ã«ãã®éç¥ã¢ã€ã³ã³ãšããŠã¢ã€ã³ã³ãè¿œå ããããã©ããããã¹ãããŠãã ããã<config-file parent="/manifest/application/" target="app/src/main/AndroidManifest.xml"> <meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/notification_icon" /> </config-file>
ããã¯ãFirebase CloudMessagingããã«ãŸãã¯ãã€ããŒãã«ã¢ã€ã³ã³ããªãããã¯ãšã³ãã§éä¿¡ããå Žåã«æ©èœããŸãã
ããã«ãã£ãŒãããã¯ãæçš¿ããŠãã ããã
ãããæ©èœããå Žåããã®ã³ãŒãã«è¿œå ããããã¥ãŒããªã¢ã«ã¯å€ãã®äººã ãå©ãããããREADMEã«è¿œå ããããã«PRãéãå¿ èŠããããŸããããªãã¯ã¡ããã©ç§ã®æ¥ãäœããŸããã
ãã«ãã§åé¡ãçºçããå Žå
AAPTïŒãšã©ãŒïŒãã€ã³ããããŠããªããã¬ãã£ãã¯ã¹ã
次ã«ããè¿œå ããŠã¿ãŠãã ãã
xmlnsïŒandroid = " http://schemas.android.com/apk/res/android "
config.xmlå ã®ã«ãŒãã¿ã°ã«å±æ§ãè¿œå ããå¿ èŠããããŸã
ããã¯ç§ã«ãšã£ãŠã¯ããŸããããŸãããã¢ã€ã³ã³ã¯ä¿¡ããããªãã»ã©å°ããããã§ãã䜿çšããå¿ èŠã®ãããã¡ã€ã«ã®é©åãªãµã€ãºã¯ã©ããããã§ããïŒ
ç·šéïŒ256x256ãè¿œå ããŸããããã¹ããŒã¿ã¹ããŒã«å°ããªç¹ã衚瀺ãããŸãã ã¹ããŒã¿ã¹ããŒãäžçªäžã«ãã©ãã°ãããšãå°ã倧ããã¹ããŒã¿ã¹ããŒã衚瀺ãããŸã
ããã¯
ããªãã¯ç§ã®åœã®æ©äººã§ãïŒ ããããšãïŒïŒïŒ
ããŒãïŒ
ã¢ã€ã³ã³ã®è²ã«å€æŽããããã«ãéç¥ã»ã¯ã·ã§ã³ã«è²ãè¿œå ããŸãïŒ 'ïŒe50012'ïŒããªãã®è²ã«å€æŽããŠãã ããïŒã
å
ïŒ
{{
"åå"ïŒ "my_notification"ã
"ãç¥ãã"ïŒ {
ãæ¬äœãïŒãéç¥æ¬äœãã
"ã¿ã€ãã«"ïŒ "éç¥ã¿ã€ãã«"ã
"è²"ïŒ "ïŒe50012"
}ã
"ããŒã¿"ïŒ{ ... }
}
æãåèã«ãªãã³ã¡ã³ã
ãã®ã³ãŒããconfig.xml
<platform name="android">
ã¿ã°ã«è¿œå ãããšãããã©ã«ãã®éç¥ã¢ã€ã³ã³ãšããŠã¢ã€ã³ã³ãè¿œå ããããã©ããããã¹ãããŠãã ãããããã¯ãFirebase CloudMessagingããã«ãŸãã¯ãã€ããŒãã«ã¢ã€ã³ã³ããªãããã¯ãšã³ãã§éä¿¡ããå Žåã«æ©èœããŸãã
ããã«ãã£ãŒãããã¯ãæçš¿ããŠãã ããã
ãããæ©èœããå Žåããã®ã³ãŒãã«è¿œå ããããã¥ãŒããªã¢ã«ã¯å€ãã®äººã ãå©ãããããREADMEã«è¿œå ããããã«PRãéãå¿ èŠããããŸãã