過去の記事でビルドエラーの対策を投稿したが、今後は新たなプラグインに
切り替える必要がありそうです。
cordova-plugin-firebasex
https://github.com/dpa99c/cordova-plugin-firebasex
簡単に移行できるのか?
最低以下の環境にする必要あり。
cordova@9(CLI)
cordova-android@8(Androidプラットフォーム)
cordova-ios@5(iOSプラットフォーム)
プラグインを変更
cordova plugin rm cordova-plugin-firebase
※先に cordova platform rm android しておかないと以下のエラーが
Uninstalling cordova-plugin-firebase from android
Error during processing of action! Attempting to revert…
cordova-plugin-firebase を動かすために入れたプラグインはとりあえず外す
自動的に cordova-plugin-firebasex が必要なものは追加してくれるはず
cordova plugin rm cordova-android-firebase-gradle-release
cordova plugin rm cordova-android-play-services-gradle-release
firebasex を入れてみる
cordova plugin add cordova-plugin-firebasex
① onNotificationOpen() を onMessageReceived() に変更
② hasPermission の判定方法変更
if( device.platform == “iOS” ) {
window.FirebasePlugin.hasPermission(function(hasPermission){
if (hasPermission) {
console.log(“Permission to receive notification is granted.”);
} else {
console.log(“Permission to receive notification is NOT granted.”);
window.FirebasePlugin.grantPermission();
}
});
}
③ notification.tap の判定方法変更 おそらく文字列 ”foreground” もしくは “background” で判断
window.FirebasePlugin.onMessageReceived(function(notification) {
console.log(“FirebasePlugin.onMessageReceived”);
console.log(JSON.stringify(notification));
// タップして起動した場合
console.log(“Message type: ” + notification.messageType);
if(notification.messageType === “notification”){
alert(“Notification message received”);
if(notification.tap){
alert(“Tapped in ” + notification.tap);
// “foreground” もしくは “background”
}
}
// firebase からの送信時は notification.message は設定されない
if (typeof cordova !== “undefined”) {
navigator.notification.alert(
notification.message, // message(JSONで追加して送信している情報)
//notification.body, // body
onAlertDismissed, // callback
notification.title, // title
‘閉じる’ // buttonName
);
/*
if( device.platform == “Android” ) {
cordova.plugins.notification.badge.increase();
}
*/
} else {
alert(“The notification is open!”);
}
}, function(error) {
console.log(error);
});
これだけで、すんなり、そのまま動いた!!
ios 版はやはり、mac で platform add するのがよさそう。 windowsだと pod を正しくインストールできない
cordova platform rm ios
cordova platform add ios@latest