diff --git a/.github/lock.yml b/.github/lock.yml new file mode 100644 index 000000000..ff10dccfe --- /dev/null +++ b/.github/lock.yml @@ -0,0 +1,25 @@ +# Configuration for lock-threads - https://github.com/dessant/lock-threads + +# Number of days of inactivity before a closed issue or pull request is locked +daysUntilLock: 30 + +# Issues and pull requests with these labels will not be locked. Set to `[]` to disable +exemptLabels: [] + +# Label to add before locking, such as `outdated`. Set to `false` to disable +lockLabel: false + +# Comment to post before locking. Set to `false` to disable +lockComment: This thread has been automatically locked. + +# Limit to only `issues` or `pulls` +# only: issues + +# Optionally, specify configuration settings just for `issues` or `pulls` +# issues: +# exemptLabels: +# - help-wanted +# lockLabel: outdated + +# pulls: +# daysUntilLock: 30 diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f078fdb7..498c3ebf9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,1260 +1,1333 @@ # Change Log +## [v2.2.0](https://github.com/phonegap/phonegap-plugin-push/tree/v2.2.0) (2017-10-23) + +[Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v2.1.0...v2.2.0) + +* πŸ› Issue #2052: ServiceWorker.js Folder Instead of File [view commit](https://github.com/phonegap/phonegap-plugin-push/commit/f24aed6e5ac9eb0f0fb38276648833a288fb6503) +* Issue #2051: Plugin not working on android 4.4 but working in 5,6 and 7 [view commit](https://github.com/phonegap/phonegap-plugin-push/commit/68884671116c9f1e23de0b9cba583a2a008516ed) +* Added VoIP Notifications support for iOS (#2194) [view commit](https://github.com/phonegap/phonegap-plugin-push/commit/69e86d98b1e05d1efcaed4be3c50c394fb782ea0) +* πŸ§πŸ›πŸ” Issue #2209: Use of an insecure Random Number Generator [view commit](https://github.com/phonegap/phonegap-plugin-push/commit/e3a641780055b9b30380c4b1cd537d51c9353717) +* πŸ“ Explicit side effects for `.unregister()` [view commit](https://github.com/phonegap/phonegap-plugin-push/commit/58e87593e749d5c6da2a45906a8c7c9309d6b09a) +* πŸ•ΈοΈ Issue #2109: Receive push notifications when using cordova-browser [view commit](https://github.com/phonegap/phonegap-plugin-push/commit/f6e0dccfb2a6906c37b5f89f2d2170c3ff420d97) +* ⬆️ Issue #2097: Receiving multiple notifications although it is sent [view commit](https://github.com/phonegap/phonegap-plugin-push/commit/3dabcb8c3c93f12e4d103f539935ce239adf1f9a) +* πŸ“ Issue #2087: Sending one unique push for iOS and Android [view commit](https://github.com/phonegap/phonegap-plugin-push/commit/6c039164869612a0cee02ac66f2e846ee1aeced7) +* ⬆️ Bump default FCM version to 11.6.0 [view commit](https://github.com/phonegap/phonegap-plugin-push/commit/9d6c388853aba8cfb6c3b193fc36154381ed585c) +* πŸ“ Issue #2087: Sending one unique push for iOS and Android [view commit](https://github.com/phonegap/phonegap-plugin-push/commit/4576512d00227959e447a022e425b79114c80786) +* Update INSTALLATION.md [view commit](https://github.com/phonegap/phonegap-plugin-push/commit/40dba0b9501a9b4c8b4d2eb492399c5723a41163) +* Fix instructions in README about google-services.json [view commit](https://github.com/phonegap/phonegap-plugin-push/commit/a80996d06f41e370af07121ee53fb48adea2b9d0) +* πŸ“ Add contributor thank you [view commit](https://github.com/phonegap/phonegap-plugin-push/commit/c6f2c91d2217c7f42bbb6405b1b538029cf0a35c) +* πŸ”§ Update gradle file for cordova-android 7 [view commit](https://github.com/phonegap/phonegap-plugin-push/commit/8e28a4e6dea33b142f488cc2e336cbf0f42f6dd6) +* πŸ›πŸŽ Issue #1826: Ionic Build Error, cannot find GoogleService-Info.plist [view commit](https://github.com/phonegap/phonegap-plugin-push/commit/b8b38c25c03c99a5e66ca4bbeaf6db373bc071da) +* πŸ› Issue #1926: [question] FCM on ios [view commit](https://github.com/phonegap/phonegap-plugin-push/commit/ec6f2d9be06eb7ca61c81cb0b73b7c9aa9d4818a) +* πŸ“ Issue #2033: A confusing part in the Android section of the install [view commit](https://github.com/phonegap/phonegap-plugin-push/commit/9afac3882d93f445f800be681b1ac491ececd7ff) +* fixed issue #2061: Localization in message not working correctly. [view commit](https://github.com/phonegap/phonegap-plugin-push/commit/b8454d169a004a3414f029755647715bdba39531) +* cleaned up PAYLOAD.md (#2040) [view commit](https://github.com/phonegap/phonegap-plugin-push/commit/3398120e2c6848a6e96267d083f5011f0c0f6f71) + ## [v2.1.0](https://github.com/phonegap/phonegap-plugin-push/tree/v2.1.0) (2017-10-23) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v2.0.0...v2.1.0) -- 2.1.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a087ea4574b13808c8f657fed0fff543c56cfd15) -- :bookmark: Bumping plugin version to 2.1.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a8e19982068d7f0c281bc55ef32741a26749ba7a) -- :heavy_minus_sign: Remove pre-commit hook [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/be680b01110cbfff320eb404b7511df0c016ca54) -- :arrow_up: bump pluginpub to 0.0.9 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f7b739205d2291b01fe7055fe6ff86d6418b1f67) -- ✨🍎 Issue #1980: Remove confusing action button syntax and replace with events [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8c5786050a3b3d9ae58044a8c87b0f475808a221) -- ✨🐧 Issue #1950: Implement Android Oreo Notification badges [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c7d8fce6a6dfbd3d59abe0eef671cee67f5c7ffa) -- πŸ”¨ Issue #1949: make function name more explicit [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/798a5a02b2f86754adff41b6f65aa30a50fba6bb) -- ✨ Issue #1949: add a listChannels method [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d8e70e359d586916c856f924edd42b607fd03eb4) -- πŸ› Issue #1949: Guard notification channel on older OS versions [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a301e473789b67abbe2fc16f473658ad3b16d662) -- ✨ Update to Issue #1949: Implement notification channels [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/acbebfa88171544d838c7aa5623d65cfffc9f0a2) -- ✨🐧 Issue #1314: Use icons from mipmap resources [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3b98d6289edc3e766877d49867ce3cdba4721759) -- πŸ› Issue #1996: fix PR to use getBoolean not optBoolean [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/32ad27dc53739b2524082f59bf05eb7d12eb8da0) -- Add ongoing notifications for android (#1996) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c1e29c1a4d82b2e1ac64dfd475e7a818589b1a02) -- πŸ›πŸ§πŸ”₯ Issue #1930: Android 8: PushNotification.hasPermission() returns true although push notifications are disabled by the system [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/28f7089d5f0f66b7b4ce71c93766315c29e49fe6) -- πŸ›πŸ§ Issue #1718: cordova run android not working [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/468f6001c24a0e4889f64ad384f86585ff22ba9b) -- πŸ›πŸŽ Issue #1988: iOS 11 + xcode 9: warnings on calling UI methods from a background thread [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cef862be704c74acc7abdd50899d925221ca6039) -- Merge pull request #2011 from jacquesdev/master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/073d6be83d1899f075331db87fe1e0181c11096b) -- Keep docs up to date with es6 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/34ea498c3ec3feb9107315a1e6a2222816db22a0) -- πŸ› Issue #1994: Unresolved Merge Conflict in master branch [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d39520f521325bb4a2dd1703acf70b0230f94b7e) -- ✨ #1984: Allow inline reply text to be set via push payload [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2bc01b5685ea7d90b11e1c86dc173b8d19af3296) -- Update FCMService.java (#1984) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0d667739b03f675b8959022db5e9b8ed05467a59) -- πŸ“ Issue #1982: Get GCM Id in Android but not FCM in iOS [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/21b4fdcd73748ed36d6283f85c77192421b80387) -- 🐧 πŸ“ Issue #1980: Remove confusing action button syntax and replace wi… (#1981) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0cb03db294431593cba83f02e5c739bd63b6d886) -- πŸ“ Issue #1977: Silent Notifications failing to call push.on('notification') in the background with iOS 11 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8d0ad41fb5582bea2c021e6aee20a47a46ff87ed) -- Set the launch args correctly on windows (#1976) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/18cf3f4d5bee0582dbe90c1e660884e80aba87b8) -- :bug: Issue #1970: No custom sound plays when notification is forced in foreground. (#1971) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f936707d3d5b2e571d9756ee4b51608ce4c69980) -- Remove duplicated action to unsubscribe topic (#1974) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7742eb43fc330569a84b174dc1d25523c581e299) -- :sparkles: Issue #1949: Implement notification channels [view commit](http://github.com/phonegap/phonegap-plugin-push/commit3bce4d4c81e738cb6557f1267807fb89406378a0) -- :memo: Issue #1819: Android - app doesn't come to foreground when clicking notification [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/eda5e430bb698ecec97b3a3d105be00807c1e7fd) -- Catch the resource not found execption when 'gcm_defaultSenderId' is not defined, for whatever reason, so that the app does not crash. (#1923) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7d22655fe9de630ee75299f21135be76960c8cc2) -- :wrench: add precommit hook [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cd3cd2ba7ea37cde47410281e44693db9ffb1e7c) -- :shirt: Fixing linting errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1b109f56b1c72f9507e41eacde9a13e7e7d1561a) -- Merge pull request #1919 from TillaTheHun0/master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9998b52762ed684b57902de8f2619fac617b743a) -- Update PAYLOAD.md [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/19f07aa6c2d1bfd996ac7a9176e4029191b94fa0) -- :memo: Issue #1825: Build iOS app without Firebase [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a747ec16c0bd0c80b3fbbdc13eeec7ee3f107f60) -- Added `hasPermission` support for Windows platform. (#1908) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ddc9d2d7d4574e3cabf6146fff2faf6c8cdeb56e) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9b9bbca66d06f2a2df47c835028b45a0ced30851) +* 2.1.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a087ea4574b13808c8f657fed0fff543c56cfd15) +* :bookmark: Bumping plugin version to 2.1.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a8e19982068d7f0c281bc55ef32741a26749ba7a) +* :heavy_minus_sign: Remove pre-commit hook [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/be680b01110cbfff320eb404b7511df0c016ca54) +* :arrow_up: bump pluginpub to 0.0.9 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f7b739205d2291b01fe7055fe6ff86d6418b1f67) +* ✨🍎 Issue #1980: Remove confusing action button syntax and replace with events [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8c5786050a3b3d9ae58044a8c87b0f475808a221) +* ✨🐧 Issue #1950: Implement Android Oreo Notification badges [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c7d8fce6a6dfbd3d59abe0eef671cee67f5c7ffa) +* πŸ”¨ Issue #1949: make function name more explicit [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/798a5a02b2f86754adff41b6f65aa30a50fba6bb) +* ✨ Issue #1949: add a listChannels method [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d8e70e359d586916c856f924edd42b607fd03eb4) +* πŸ› Issue #1949: Guard notification channel on older OS versions [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a301e473789b67abbe2fc16f473658ad3b16d662) +* ✨ Update to Issue #1949: Implement notification channels [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/acbebfa88171544d838c7aa5623d65cfffc9f0a2) +* ✨🐧 Issue #1314: Use icons from mipmap resources [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3b98d6289edc3e766877d49867ce3cdba4721759) +* πŸ› Issue #1996: fix PR to use getBoolean not optBoolean [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/32ad27dc53739b2524082f59bf05eb7d12eb8da0) +* Add ongoing notifications for android (#1996) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c1e29c1a4d82b2e1ac64dfd475e7a818589b1a02) +* πŸ›πŸ§πŸ”₯ Issue #1930: Android 8: PushNotification.hasPermission() returns true although push notifications are disabled by the system [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/28f7089d5f0f66b7b4ce71c93766315c29e49fe6) +* πŸ›πŸ§ Issue #1718: cordova run android not working [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/468f6001c24a0e4889f64ad384f86585ff22ba9b) +* πŸ›πŸŽ Issue #1988: iOS 11 + xcode 9: warnings on calling UI methods from a background thread [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cef862be704c74acc7abdd50899d925221ca6039) +* Merge pull request #2011 from jacquesdev/master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/073d6be83d1899f075331db87fe1e0181c11096b) +* Keep docs up to date with es6 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/34ea498c3ec3feb9107315a1e6a2222816db22a0) +* πŸ› Issue #1994: Unresolved Merge Conflict in master branch [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d39520f521325bb4a2dd1703acf70b0230f94b7e) +* ✨ #1984: Allow inline reply text to be set via push payload [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2bc01b5685ea7d90b11e1c86dc173b8d19af3296) +* Update FCMService.java (#1984) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0d667739b03f675b8959022db5e9b8ed05467a59) +* πŸ“ Issue #1982: Get GCM Id in Android but not FCM in iOS [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/21b4fdcd73748ed36d6283f85c77192421b80387) +* 🐧 πŸ“ Issue #1980: Remove confusing action button syntax and replace wi… (#1981) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0cb03db294431593cba83f02e5c739bd63b6d886) +* πŸ“ Issue #1977: Silent Notifications failing to call push.on('notification') in the background with iOS 11 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8d0ad41fb5582bea2c021e6aee20a47a46ff87ed) +* Set the launch args correctly on windows (#1976) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/18cf3f4d5bee0582dbe90c1e660884e80aba87b8) +* :bug: Issue #1970: No custom sound plays when notification is forced in foreground. (#1971) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f936707d3d5b2e571d9756ee4b51608ce4c69980) +* Remove duplicated action to unsubscribe topic (#1974) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7742eb43fc330569a84b174dc1d25523c581e299) +* :sparkles: Issue #1949: Implement notification channels [view commit](http://github.com/phonegap/phonegap-plugin-push/commit3bce4d4c81e738cb6557f1267807fb89406378a0) +* :memo: Issue #1819: Android - app doesn't come to foreground when clicking notification [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/eda5e430bb698ecec97b3a3d105be00807c1e7fd) +* Catch the resource not found execption when 'gcm_defaultSenderId' is not defined, for whatever reason, so that the app does not crash. (#1923) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7d22655fe9de630ee75299f21135be76960c8cc2) +* :wrench: add precommit hook [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cd3cd2ba7ea37cde47410281e44693db9ffb1e7c) +* :shirt: Fixing linting errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1b109f56b1c72f9507e41eacde9a13e7e7d1561a) +* Merge pull request #1919 from TillaTheHun0/master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9998b52762ed684b57902de8f2619fac617b743a) +* Update PAYLOAD.md [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/19f07aa6c2d1bfd996ac7a9176e4029191b94fa0) +* :memo: Issue #1825: Build iOS app without Firebase [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a747ec16c0bd0c80b3fbbdc13eeec7ee3f107f60) +* Added `hasPermission` support for Windows platform. (#1908) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ddc9d2d7d4574e3cabf6146fff2faf6c8cdeb56e) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9b9bbca66d06f2a2df47c835028b45a0ced30851) ## [v2.0.0](https://github.com/* remote origin - Fetch URL: https://github.com//tree/v2.0.0) (2017-08-02) + +Fetch URL: https://github.com//tree/v2.0.0) (2017-08-02) [Full Changelog](https://github.com/* remote origin - Fetch URL: https://github.com//compare/v2.0.0-rc5...v2.0.0) +Fetch URL: https://github.com//compare/v2.0.0-rc5...v2.0.0) -- 2.0.0 [view commit](http://github.com/* remote origin +* 2.0.0 [view commit](http://github.com/* remote origin Fetch URL: https://github.com//commit/d19db8cc6c845fc5504a618077d37c7ad44d3a9a) -- :bookmark: Bumping plugin version to 2.0.0 [view commit](http://github.com/* remote origin +* :bookmark: Bumping plugin version to 2.0.0 [view commit](http://github.com/* remote origin Fetch URL: https://github.com//commit/44280ee917ccbee22cf62156ce34fa69aec6f110) -- :wrench: Add package-lock.json to git ignore [view commit](http://github.com/* remote origin +* :wrench: Add package-lock.json to git ignore [view commit](http://github.com/* remote origin Fetch URL: https://github.com//commit/88e43f869a6469be3f1a2f50ad64fb3a4e22e1c9) -- update ShortcutBadger to 1.1.17 (#1873) [view commit](http://github.com/* remote origin +* update ShortcutBadger to 1.1.17 (#1873) [view commit](http://github.com/* remote origin Fetch URL: https://github.com//commit/02c43301a2c39b516f0281dd2a30e8e813649212) -- :memo: Issue #1863: Linker error for iOS build [view commit](http://github.com/* remote origin +* :memo: Issue #1863: Linker error for iOS build [view commit](http://github.com/* remote origin Fetch URL: https://github.com//commit/e509983a0124469765d0d693c92d8e023475b526) -- :memo: Update minimum CLI version in docs [view commit](http://github.com/* remote origin +* :memo: Update minimum CLI version in docs [view commit](http://github.com/* remote origin Fetch URL: https://github.com//commit/f13ac0404d402a4a59267d92ac8a2ca9ca444a45) -- update engines to use cordova 7 (#1877) [view commit](http://github.com/* remote origin +* update engines to use cordova 7 (#1877) [view commit](http://github.com/* remote origin Fetch URL: https://github.com//commit/983c9ad90934edf891ec54a7c3ca101b584710cc) -- Fix topic registration (#1855) [view commit](http://github.com/* remote origin +* Fix topic registration (#1855) [view commit](http://github.com/* remote origin Fetch URL: https://github.com//commit/781e6f551e8e1509dd6184c84347e36aa163e092) -- Merge pull request #1827 from szh/master [view commit](http://github.com/* remote origin +* Merge pull request #1827 from szh/master [view commit](http://github.com/* remote origin Fetch URL: https://github.com//commit/2a8e3dff3698710b2e5fed8dea91deaa0705bbdc) -- Add clearAllNotifications() to type definitions [view commit](http://github.com/* remote origin +* Add clearAllNotifications() to type definitions [view commit](http://github.com/* remote origin Fetch URL: https://github.com//commit/8460ecf725ea6ca62b933a2f7c5a6c82628599eb) -- Only use GCM if IS_GCM_ENABLED is true in the google plist (#1821) [view commit](http://github.com/* remote origin +* Only use GCM if IS_GCM_ENABLED is true in the google plist (#1821) [view commit](http://github.com/* remote origin Fetch URL: https://github.com//commit/04cb6af750271d421f5bab2e5b46f5c15faee20c) -- :apple: Issue #1340: Drop support for iOS 8 [view commit](http://github.com/* remote origin +* :apple: Issue #1340: Drop support for iOS 8 [view commit](http://github.com/* remote origin Fetch URL: https://github.com//commit/d724805bfa4088ebbd00fcb8cb3ccbc36defefdd) -- V2.x Android: handle dismissed notifications (#1816) [view commit](http://github.com/* remote origin +* V2.x Android: handle dismissed notifications (#1816) [view commit](http://github.com/* remote origin Fetch URL: https://github.com//commit/118b1a454eebc9e5b053f40be3f1a3af253d783e) -- :fire: Removing RegistrationIntentService class [view commit](http://github.com/* remote origin +* :fire: Removing RegistrationIntentService class [view commit](http://github.com/* remote origin Fetch URL: https://github.com//commit/3dcc7ff67295aee9a6a9b3554061284cb6db3332) -- :sparkles::apple::penguin: Issue #1787: Pass token type during registration event [view commit](http://github.com/* remote origin +* :sparkles::apple::penguin: Issue #1787: Pass token type during registration event [view commit](http://github.com/* remote origin Fetch URL: https://github.com//commit/1ade39a5fc618173bcc12448a86f3fe9702319a3) -- :memo: Issue #1811: [DOCS] Update additional-resources section of INSTALLATION.md [view commit](http://github.com/* remote origin +* :memo: Issue #1811: [DOCS] Update additional-resources section of INSTALLATION.md [view commit](http://github.com/* remote origin Fetch URL: https://github.com//commit/c350ce2c0cffb763eb2b1a84295cd701bf33693a) -- Updating CHANGELOG [view commit](http://github.com/* remote origin +* Updating CHANGELOG [view commit](http://github.com/* remote origin Fetch URL: https://github.com//commit/0264f2f5edf577053bcd436977a4f54ecd5e13b7) ## [v2.0.0-rc5](https://github.com/phonegap/phonegap-plugin-push/tree/v2.0.0-rc5) (2017-06-20) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v2.0.0-rc4...v2.0.0-rc5) -- 2.0.0-rc5 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a5dfcb4e364a1b31d98d4b9683d9e4fe2e0e5d2d) -- :bookmark: Bumping plugin version to 2.0.0-rc5 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4bb16bea611e9c472f34c3ede9a1a6d00a8e4c4d) -- :arrow_up: Bump FCM to 11.0.1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/576135bf576be6e2cd183101d3d7219b4d297030) -- :penguin: Issue #1796: Remove hook from 2.0.0 version [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/464636b9ae257afc712cfebcc1ed11425590c509) -- :memo: Issue #1552: library not found for -lPods-Appname [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/95b23cdf5ae68faf714d63ac69cfe71ce7034dba) -- :checkered_flag: Issue #1670: Subscribe and Unsubscribe for windows [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/228cdb4062f6019f878c456b89ef0685955ac7ed) -- :memo: Issue #1760: fcmSandbox vs gcmSandbox [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/64562177a6d32f34b29f2a97fcc8846db9926a1c) -- :bug: Issue #1785: plugin fails to install on windows using plugman [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/156adfc70e85a21cb9f3134de72781db405c5e07) -- :memo: Issue #1767: Ionic 2 Android build fails with error (Can't find google-services.json file) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fa9625e7530f4c2280804fc0fcd52a7b7476e5eb) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6f98be137f997c2bbd32e5c192c1e928e4e1f2c9) +* 2.0.0-rc5 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a5dfcb4e364a1b31d98d4b9683d9e4fe2e0e5d2d) +* :bookmark: Bumping plugin version to 2.0.0-rc5 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4bb16bea611e9c472f34c3ede9a1a6d00a8e4c4d) +* :arrow_up: Bump FCM to 11.0.1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/576135bf576be6e2cd183101d3d7219b4d297030) +* :penguin: Issue #1796: Remove hook from 2.0.0 version [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/464636b9ae257afc712cfebcc1ed11425590c509) +* :memo: Issue #1552: library not found for -lPods-Appname [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/95b23cdf5ae68faf714d63ac69cfe71ce7034dba) +* :checkered_flag: Issue #1670: Subscribe and Unsubscribe for windows [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/228cdb4062f6019f878c456b89ef0685955ac7ed) +* :memo: Issue #1760: fcmSandbox vs gcmSandbox [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/64562177a6d32f34b29f2a97fcc8846db9926a1c) +* :bug: Issue #1785: plugin fails to install on windows using plugman [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/156adfc70e85a21cb9f3134de72781db405c5e07) +* :memo: Issue #1767: Ionic 2 Android build fails with error (Can't find google-services.json file) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fa9625e7530f4c2280804fc0fcd52a7b7476e5eb) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6f98be137f997c2bbd32e5c192c1e928e4e1f2c9) ## [v2.0.0-rc4](https://github.com/phonegap/phonegap-plugin-push/tree/v2.0.0-rc4) (2017-06-01) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v2.0.0-rc3...v2.0.0-rc4) -- 2.0.0-rc4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/65f2e4c56b0ed440b8668986114c2c84b49e9c68) -- :bookmark: Bumping plugin version to 2.0.0-rc4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4e887023484cb5d6dd92524e05a6490d22eb3974) -- Update push.js [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a7cc5bdb8d149a3f6e7e9d918ecd9bb27c34009f) -- :memo: Issue #1679: Please clarify the use of content-available in the payload doc [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/23f7965e26d48b43c09921138b1290a658a41528) -- Update INSTALLATION.md (#1745) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f3e94bbc1dd79bf830a2342ce3d6ca0d0e1cf9a2) -- Fixing 404 link to definition file [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9df6b4de82047a30b8322eb635c581de6c7252aa) -- :bug::wrench: Issue #1744: The plugin installs npm in my local node_modules [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/06bb2b207848e2dc993c28052f3ad29bf84d88c4) -- :bug: Issue #1725: Provide default for applicationServerKey [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d63bbe949edd21e86d886baf9aa00aab30f0ca95) -- :wrench: use Node 4 on Travis [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2da999beffe2ef043767c8c979ca4e7ae7a069c6) -- Fix INSTALLATION.md docs for v2.0.0 and Firebase Cloud Messaging (#1741) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/32ff975ea1318f6194ac01477ca563cfe4a0218a) -- update FirebaseMessaging podspec (#1742) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1842f7ade4643ad733c18f80b0daa211147ab72c) -- :art: Fix merge conflicts [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3efba512317119ea2d54473c7e164a6c24db3ca3) -- Merge v2.0.x into master (#1736) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d07fdf031e052f9c457319e6aaa9d7bfb72d1224) -- Fixes #1716 - Incomplete CocoaPods installation steps (#1738) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/525816cb0fd591b49f51b2844ac04e55397b6b8b) -- docs updated (#1727) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4234bfe9dab6e9f72b2ff52c3a94287154d39229) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e7cbe6ea8c863b0096425836473f2fa05a0da048) -- 1.10.4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ec7c3ea1fafbf3fafe502d278af218715aebb909) -- :bookmark: Bumping plugin version to 1.10.4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b1efe1fa069c034aaf465e040300fd2884d46075) -- :penguin::bug: Issue #1710: Notification message key overwritten [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/911a1d4fe5d3a05e0012ee8121464cfb8974ce23) -- :penguin::bug: Issue #1710: Notification message key overwritten [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4eadccd93d6daa81a05396a93fdc2033a4c90b12) -- :penguin: Fix issue #1663 by allowing message as the data payload key (#1666) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f8ac07399905fb9c6b0ab48139fa76066c5e190f) -- [typo] Small fix to payload doc [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5a4a04b1be5a7dd30a9c577441b241767ec20500) -- 2.0.0-rc3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b393a9d932aee66da277b404c2475cb77195d8d8) -- :bookmark: Bumping plugin version to 2.0.0-rc3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8003110d0757107ad211cd0e0b9c175e60dcd7ed) -- :package: update www/push.js [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c0a3a4c6d578b2ee14a82f167934ecc8a7672557) -- :wrench: Update cordovaDependencies [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/969d546c3dc96efb59a226ee5df38de6e66e4de4) -- :memo: update readme [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0cbb7a92946ac9febb5ac5960291928d539c0fe6) -- :memo: Fix PAYLOAD.md regarding "drawable" directory name (#1711) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a27a62d6e346b1e61ffe2ffaae482461cf970c03) -- Bump requirements [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/85e6419cbad124eaa3eac1c1c515aa684ccf4393) -- Add resource-file way of copying google services files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/46ba2745f0ebc08cc3b12f9c51177247130b592c) -- Merge branch 'v2.0.x' of https://github.com/phonegap/phonegap-plugin-push into v2.0.x [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a5c9e456ce333b3387b2e4412248cdf45d26334c) -- Fixing package.json from failed merge/rebase. [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/974d2e218bcc8ab8ebf779ef18df74622702eb0e) -- Remove hook and use resource-file tag to copy google services file [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/86763c7f2cc15eae39972e4137813edb5cd8b838) -- Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9850b1b180c3b66f64edc1680d358a7b1df58b95) -- :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/15a68ed070d611f0569c90adaa062099120a7817) -- :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/784b7355a62490a5ce6229292213e22e671873c8) -- :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9b9df30cf65a275c0d4727a2854b12792ec905a2) -- :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/620af90cdda85f64aa65cc0fc0de051cb13980ba) -- Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ee9ecc957d8961e2a0ae884f55ee5abc71652885) -- Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c7545607bb23ea801f7a167d3408b112e4a6e812) -- Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2ac7442de047ecedf4a6d2c66591889e14bdafc4) -- Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5c2fc51055343467e51f6facbd690e71273cbac2) -- fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d1b4f51fb2cd6e9ee8447fee0ce4a5e9eba0a52d) -- Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0169587f198d0b44a06f408d803bbdac0fb1d079) -- Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/38bd3581663ccd85b2daed7b9833571a4adbc99e) -- Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9d5dbb196763e399d5177c0d4802ecc043cfc270) -- Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/24f0a77bac10e0d8e4ff837a165a3d69c3447601) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2535a189caddba2a41f9e002930541c55360047d) -- 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8aa6f717db7dd534c97ad559307d391788e13e47) -- Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/740cfe2bda63548a0e9cbf62b1833a4945eb432f) -- :apple::bug: Issue #1497: App crashes after refreshing when using FCM (v2) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/704b3635764700d5fc06f2e9c8c6a657ea4b7f29) -- :pencil2: fixing error in CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/68b045e6e40cdf1d5b9ed84136bebdf5f7874b8a) -- :memo: Using a newer version on the examples [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d8c4d002e4b6c6b399e5c5e5456012a121ee7b20) -- :penguin::memo::bug: Issue #1470: Cannot install phonegap-plugin-push on master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/632a4f1d87ff306bbc8920133e96b84125e44468) -- :bug::apple::wrench: Fixing a merge issue where aps-environment was accidentally removed [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4fb78566b5ebbbf2f04268b91f9c8cbc7193601e) -- :bug::penguin::memo::arrow_up: #1460: Build Issue Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e93f04a87763a762d581a18439b2de808fc81a2c) -- :bug::apple: Issue #1461: App crashes when initialising with topics (v2.0.0-rc1) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8f827a9678dac02887872bd7374fde1c40caeb90) -- Fixing my merge error for PR #1378 Optional event emit instead of function call for action buttons [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/64044115de796c52132e60719d5e93fc16594002) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d1f8f8e55af40a16129cdc362e179f0c7ef60bd0) -- 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/05c52e22945c0405b76a6d10d837ae6b015e661b) -- :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/600f6050a2c3899559148579c5bc32c1e56449fa) -- :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2660a8620874d520e2f3f3217cf20ea369affada) -- :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3f043c21a608fdea4436409b68fbcf2c822d6c0a) -- :wrench: Add browser platform back for FCM branch [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/97a1615a79ab0317a5dae27b7124dbaec7bc71c7) -- Pin FCM to 9.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e04b175c72d0680b3b618fdbcce80f9f9d470055) -- Add empty google services plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d21632fd2acf90847c67b0c70f0b740ed3d367a7) -- :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b41580f7476a34014ceb03976f25989f98cbde6a) -- :memo: Update to using fcm-node [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f84574aeffc958b6ec152ca36c2ea595418e901c) -- Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/326943dadc29fe662ce4925b8141960e31d78dd3) -- Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b5c0156bb13a22e11cf6f174a7307e404ed6d154) -- Refactor GCMIntentService to FCMService [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/006ca17a7482490fbbfc67faa88a4c60d81a49f4) -- Fix topic subscription and unsubscription on FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/102934b167c4e69c9a6a5c7b41d0ca3fba0cfd25) -- Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/bccc1ba887603b8577c01ee5b885bffa0d406028) -- Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7fe0379c6be007817c21355044bcecdd05bcc301) -- fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6c1a5572c420c88772bd3fc89d81fac21027a5be) -- Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/98c100b12613a2885ed1afd417b1e678883d37ee) -- Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7861fd27cd052c7e80736b8da9cba8cfae442e73) -- Added .framework files as custom frameworks [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b3dc189600842c6a8e318b032bdf215ea1c9b81f) -- Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ff2dbe0cc5a2dce0a92b6c16f35b1a67ce6a6f18) -- Fixed empty token on android first run (#1008) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/50285f9193f5e6b33e63c2540b8f3c7a257a5221) -- Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f67e30d41f5ea94a60a53b00ed51b995960f89c9) -- Merge branch 'v2.0.x' of https://github.com/phonegap/phonegap-plugin-push into v2.0.x [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/96af63840f28a57d29e21a48cc52533fa0830bea) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7371f3b31ea7a672ec6d43da7ef9475916b6c5c5) -- 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5099c8fe435bda7d8bc7b2648d078a3b63cf19ea) -- Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/72d29bd4372e6043d38835d07839346ea204390a) -- :apple::bug: Issue #1497: App crashes after refreshing when using FCM (v2) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c44be0628bb42ba7ee07456524e9b1fffae64aea) -- :memo: Using a newer version on the examples [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/95cdee193d2977a17e778bf91ca1bcfc240dc266) -- :penguin::memo::bug: Issue #1470: Cannot install phonegap-plugin-push on master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a1fa7cce1168145c77fef2632ad64f8926e71d27) -- :bug::apple::wrench: Fixing a merge issue where aps-environment was accidentally removed [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ef4c7e187f2c5f386d9c844ee7211c8ff1cc214c) -- :bug::penguin::memo::arrow_up: #1460: Build Issue Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5d52fdaf28f0535ef6dab315abd67141b0fcd0f7) -- :bug::apple: Issue #1461: App crashes when initialising with topics (v2.0.0-rc1) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5d9dfdf179b39312a6382a48dd99d675e642a533) -- Fixing my merge error for PR #1378 Optional event emit instead of function call for action buttons [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/057cbd16f10581cd601079a9a10b9338df3c23eb) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/83238fce85413cdd192b5ff33139ba9a0bcd080f) -- 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9ff3929bed6bff911027bef21168e527ff61fd2c) -- :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/94d8cc7ec8ba3a4d466758ffb2c27104c2cc1ca3) -- :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a837c875d8a30fc4175693dff43139569974ec22) -- :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/49da4ea30af1a2fb479110074ddf5f67e2ba370c) -- :wrench: Add browser platform back for FCM branch [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ebc5d9353bab3917f91c775cf13aec47c5ca1e04) -- Pin FCM to 9.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/505c8da8253cb8562ed16659b5ec2a8e73ec1c23) -- Add empty google services plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/46eafb1e5688ade278086a1644d06de4e36849b5) -- :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f3b01f155f6300dc05c625116e0c374af61d6388) -- :memo: Update to using fcm-node [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/453561c8f2dfc4ed09b6a182f6998c90408a3d44) -- Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ba0020349337160f83271b683195693ef0b4f440) -- Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/aee7b93a4d0b0bb0b9c987704c1cde82612e4445) -- Refactor GCMIntentService to FCMService [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5e0e7d107b2c9f4aeeda3a7757213e41ac573798) -- Fix topic subscription and unsubscription on FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/172528ea548174fd7be62d0ab2f9816566447a61) -- Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2727d274ef650fb0b4d25786d42f0ee5f72e9730) -- Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/697e592d8225f4e0853a0ea72a598d10a18c832d) -- fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c2987cbee54f04e7d44eec421b2417be5e7d716e) -- Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f358dba691fb39757003326209a232cefce53adf) -- Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7b7de65c2718eccc1ff0eeb2800973cd440c85a7) -- Added .framework files as custom frameworks [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8bf4343369e6b12f6ec28a104512cb3ab392e834) -- Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3de63bdf9e5a365e3b3e295f2a305ad66b512917) -- Fixed empty token on android first run (#1008) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b9ad4ebdeee6700d9edf95bf051dabda5923e01a) -- Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c119bf08869d51d5fe23f9a0fb78fd8325b35248) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3a1806aaec5d3c76f7fcd30ddfd85d576fb6d197) -- 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/471b2aa829cb0ecc93a9a788891602ad17319a47) -- Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7ad471ff45724828fb21630fdfbc244ba037d9d8) -- :apple::bug: Issue #1497: App crashes after refreshing when using FCM (v2) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b80dfb12b5053184936a4c6c881f1af55459348f) -- :pencil2: fixing error in CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9796292910f2d600b22d4846c128196cfb54ba7c) -- :memo: Using a newer version on the examples [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/297b8d28f2d7bf04420744c445e59a527c52d502) -- :penguin::memo::bug: Issue #1470: Cannot install phonegap-plugin-push on master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/41c8e66483fc0c5f21da7477d2522a2212a8017a) -- :bug::apple::wrench: Fixing a merge issue where aps-environment was accidentally removed [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/08e496fffc7fa082410f7b16e73e6afe12da194c) -- :bug::penguin::memo::arrow_up: #1460: Build Issue Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/156718a5800dfe4b87593e0732f4258c7c148bea) -- :bug::apple: Issue #1461: App crashes when initialising with topics (v2.0.0-rc1) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0add758d08657e22501612ed258033e31c394e6a) -- Fixing my merge error for PR #1378 Optional event emit instead of function call for action buttons [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1f2fd671ae734201b1260bc3d7878ae9ef28673c) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/70c6e04a3ba072b91b3752173ca2287d4e448b8f) -- 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7e07d81dbb47babe161f3204cdd06222a1e2ab3c) -- :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f3dffdcf63c3d19b4717eed89eb911b8aecdd25a) -- :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f5182503b241f519c03c872ae12f3489383f2b83) -- :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/27a101f1d35217e0a1b7f0be9ad0607d31ea6c57) -- :wrench: Add browser platform back for FCM branch [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c25a47bd3b5c2437ce3108656449658568f2c053) -- Pin FCM to 9.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/000bc36a8ce2a00e96212b66d69f1597dac68554) -- Add empty google services plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/aa1cc247fcf8b94c4d60d26b18c9229c112e8185) -- :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7f4bcafafe56be18f6dc64f3e634a6de594bc034) -- :memo: Update to using fcm-node [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a3f0eee774c7f9791f55f85816b0aeadc5c4fb4c) -- Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6c796a49c3a44b47f58237d7e7760f5ebc34c371) -- Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/10c5153672dc478dd072274c220200526c313604) -- Refactor GCMIntentService to FCMService [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/aa6e3ce5449accd5397b4eda8a950fd5cebc4f0e) -- Fix topic subscription and unsubscription on FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b65fe745b5eabbb7437a46b46e747be4aaf5116a) -- Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3b5f3c71657d8af3e4407ac9ea6c36e00988b1cf) -- Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/89040874c530c7f86c2acbcce5c3b88b351e80fb) -- fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a1e90013f8ca8497acc2513f4ce3df1358293d51) -- Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0bc1ca736546242772516334f47fd4ea4f8f5e5f) -- Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f7acf338d5bff2bc25b5c1e2fa681b7e20254cc9) -- Added .framework files as custom frameworks [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a65be290d4176c1c0b51b700d673550ae22cf777) -- Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ed630d481b9035eb9df48738c0e77029937fafe9) -- Fixed empty token on android first run (#1008) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c9c53761fa3d6fc99acaa96601e9abc673a62c23) -- Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6c46880b57aa1dee2bbcfeb5a86b497035f46ebe) +* 2.0.0-rc4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/65f2e4c56b0ed440b8668986114c2c84b49e9c68) +* :bookmark: Bumping plugin version to 2.0.0-rc4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4e887023484cb5d6dd92524e05a6490d22eb3974) +* Update push.js [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a7cc5bdb8d149a3f6e7e9d918ecd9bb27c34009f) +* :memo: Issue #1679: Please clarify the use of content-available in the payload doc [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/23f7965e26d48b43c09921138b1290a658a41528) +* Update INSTALLATION.md (#1745) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f3e94bbc1dd79bf830a2342ce3d6ca0d0e1cf9a2) +* Fixing 404 link to definition file [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9df6b4de82047a30b8322eb635c581de6c7252aa) +* :bug::wrench: Issue #1744: The plugin installs npm in my local node_modules [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/06bb2b207848e2dc993c28052f3ad29bf84d88c4) +* :bug: Issue #1725: Provide default for applicationServerKey [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d63bbe949edd21e86d886baf9aa00aab30f0ca95) +* :wrench: use Node 4 on Travis [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2da999beffe2ef043767c8c979ca4e7ae7a069c6) +* Fix INSTALLATION.md docs for v2.0.0 and Firebase Cloud Messaging (#1741) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/32ff975ea1318f6194ac01477ca563cfe4a0218a) +* update FirebaseMessaging podspec (#1742) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1842f7ade4643ad733c18f80b0daa211147ab72c) +* :art: Fix merge conflicts [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3efba512317119ea2d54473c7e164a6c24db3ca3) +* Merge v2.0.x into master (#1736) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d07fdf031e052f9c457319e6aaa9d7bfb72d1224) +* Fixes #1716 - Incomplete CocoaPods installation steps (#1738) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/525816cb0fd591b49f51b2844ac04e55397b6b8b) +* docs updated (#1727) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4234bfe9dab6e9f72b2ff52c3a94287154d39229) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e7cbe6ea8c863b0096425836473f2fa05a0da048) +* 1.10.4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ec7c3ea1fafbf3fafe502d278af218715aebb909) +* :bookmark: Bumping plugin version to 1.10.4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b1efe1fa069c034aaf465e040300fd2884d46075) +* :penguin::bug: Issue #1710: Notification message key overwritten [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/911a1d4fe5d3a05e0012ee8121464cfb8974ce23) +* :penguin::bug: Issue #1710: Notification message key overwritten [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4eadccd93d6daa81a05396a93fdc2033a4c90b12) +* :penguin: Fix issue #1663 by allowing message as the data payload key (#1666) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f8ac07399905fb9c6b0ab48139fa76066c5e190f) +* [typo] Small fix to payload doc [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5a4a04b1be5a7dd30a9c577441b241767ec20500) +* 2.0.0-rc3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b393a9d932aee66da277b404c2475cb77195d8d8) +* :bookmark: Bumping plugin version to 2.0.0-rc3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8003110d0757107ad211cd0e0b9c175e60dcd7ed) +* :package: update www/push.js [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c0a3a4c6d578b2ee14a82f167934ecc8a7672557) +* :wrench: Update cordovaDependencies [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/969d546c3dc96efb59a226ee5df38de6e66e4de4) +* :memo: update readme [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0cbb7a92946ac9febb5ac5960291928d539c0fe6) +* :memo: Fix PAYLOAD.md regarding "drawable" directory name (#1711) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a27a62d6e346b1e61ffe2ffaae482461cf970c03) +* Bump requirements [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/85e6419cbad124eaa3eac1c1c515aa684ccf4393) +* Add resource-file way of copying google services files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/46ba2745f0ebc08cc3b12f9c51177247130b592c) +* Merge branch 'v2.0.x' of https://github.com/phonegap/phonegap-plugin-push into v2.0.x [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a5c9e456ce333b3387b2e4412248cdf45d26334c) +* Fixing package.json from failed merge/rebase. [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/974d2e218bcc8ab8ebf779ef18df74622702eb0e) +* Remove hook and use resource-file tag to copy google services file [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/86763c7f2cc15eae39972e4137813edb5cd8b838) +* Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9850b1b180c3b66f64edc1680d358a7b1df58b95) +* :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/15a68ed070d611f0569c90adaa062099120a7817) +* :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/784b7355a62490a5ce6229292213e22e671873c8) +* :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9b9df30cf65a275c0d4727a2854b12792ec905a2) +* :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/620af90cdda85f64aa65cc0fc0de051cb13980ba) +* Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ee9ecc957d8961e2a0ae884f55ee5abc71652885) +* Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c7545607bb23ea801f7a167d3408b112e4a6e812) +* Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2ac7442de047ecedf4a6d2c66591889e14bdafc4) +* Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5c2fc51055343467e51f6facbd690e71273cbac2) +* fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d1b4f51fb2cd6e9ee8447fee0ce4a5e9eba0a52d) +* Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0169587f198d0b44a06f408d803bbdac0fb1d079) +* Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/38bd3581663ccd85b2daed7b9833571a4adbc99e) +* Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9d5dbb196763e399d5177c0d4802ecc043cfc270) +* Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/24f0a77bac10e0d8e4ff837a165a3d69c3447601) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2535a189caddba2a41f9e002930541c55360047d) +* 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8aa6f717db7dd534c97ad559307d391788e13e47) +* Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/740cfe2bda63548a0e9cbf62b1833a4945eb432f) +* :apple::bug: Issue #1497: App crashes after refreshing when using FCM (v2) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/704b3635764700d5fc06f2e9c8c6a657ea4b7f29) +* :pencil2: fixing error in CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/68b045e6e40cdf1d5b9ed84136bebdf5f7874b8a) +* :memo: Using a newer version on the examples [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d8c4d002e4b6c6b399e5c5e5456012a121ee7b20) +* :penguin::memo::bug: Issue #1470: Cannot install phonegap-plugin-push on master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/632a4f1d87ff306bbc8920133e96b84125e44468) +* :bug::apple::wrench: Fixing a merge issue where aps-environment was accidentally removed [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4fb78566b5ebbbf2f04268b91f9c8cbc7193601e) +* :bug::penguin::memo::arrow_up: #1460: Build Issue Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e93f04a87763a762d581a18439b2de808fc81a2c) +* :bug::apple: Issue #1461: App crashes when initialising with topics (v2.0.0-rc1) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8f827a9678dac02887872bd7374fde1c40caeb90) +* Fixing my merge error for PR #1378 Optional event emit instead of function call for action buttons [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/64044115de796c52132e60719d5e93fc16594002) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d1f8f8e55af40a16129cdc362e179f0c7ef60bd0) +* 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/05c52e22945c0405b76a6d10d837ae6b015e661b) +* :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/600f6050a2c3899559148579c5bc32c1e56449fa) +* :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2660a8620874d520e2f3f3217cf20ea369affada) +* :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3f043c21a608fdea4436409b68fbcf2c822d6c0a) +* :wrench: Add browser platform back for FCM branch [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/97a1615a79ab0317a5dae27b7124dbaec7bc71c7) +* Pin FCM to 9.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e04b175c72d0680b3b618fdbcce80f9f9d470055) +* Add empty google services plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d21632fd2acf90847c67b0c70f0b740ed3d367a7) +* :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b41580f7476a34014ceb03976f25989f98cbde6a) +* :memo: Update to using fcm-node [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f84574aeffc958b6ec152ca36c2ea595418e901c) +* Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/326943dadc29fe662ce4925b8141960e31d78dd3) +* Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b5c0156bb13a22e11cf6f174a7307e404ed6d154) +* Refactor GCMIntentService to FCMService [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/006ca17a7482490fbbfc67faa88a4c60d81a49f4) +* Fix topic subscription and unsubscription on FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/102934b167c4e69c9a6a5c7b41d0ca3fba0cfd25) +* Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/bccc1ba887603b8577c01ee5b885bffa0d406028) +* Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7fe0379c6be007817c21355044bcecdd05bcc301) +* fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6c1a5572c420c88772bd3fc89d81fac21027a5be) +* Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/98c100b12613a2885ed1afd417b1e678883d37ee) +* Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7861fd27cd052c7e80736b8da9cba8cfae442e73) +* Added .framework files as custom frameworks [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b3dc189600842c6a8e318b032bdf215ea1c9b81f) +* Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ff2dbe0cc5a2dce0a92b6c16f35b1a67ce6a6f18) +* Fixed empty token on android first run (#1008) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/50285f9193f5e6b33e63c2540b8f3c7a257a5221) +* Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f67e30d41f5ea94a60a53b00ed51b995960f89c9) +* Merge branch 'v2.0.x' of https://github.com/phonegap/phonegap-plugin-push into v2.0.x [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/96af63840f28a57d29e21a48cc52533fa0830bea) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7371f3b31ea7a672ec6d43da7ef9475916b6c5c5) +* 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5099c8fe435bda7d8bc7b2648d078a3b63cf19ea) +* Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/72d29bd4372e6043d38835d07839346ea204390a) +* :apple::bug: Issue #1497: App crashes after refreshing when using FCM (v2) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c44be0628bb42ba7ee07456524e9b1fffae64aea) +* :memo: Using a newer version on the examples [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/95cdee193d2977a17e778bf91ca1bcfc240dc266) +* :penguin::memo::bug: Issue #1470: Cannot install phonegap-plugin-push on master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a1fa7cce1168145c77fef2632ad64f8926e71d27) +* :bug::apple::wrench: Fixing a merge issue where aps-environment was accidentally removed [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ef4c7e187f2c5f386d9c844ee7211c8ff1cc214c) +* :bug::penguin::memo::arrow_up: #1460: Build Issue Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5d52fdaf28f0535ef6dab315abd67141b0fcd0f7) +* :bug::apple: Issue #1461: App crashes when initialising with topics (v2.0.0-rc1) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5d9dfdf179b39312a6382a48dd99d675e642a533) +* Fixing my merge error for PR #1378 Optional event emit instead of function call for action buttons [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/057cbd16f10581cd601079a9a10b9338df3c23eb) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/83238fce85413cdd192b5ff33139ba9a0bcd080f) +* 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9ff3929bed6bff911027bef21168e527ff61fd2c) +* :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/94d8cc7ec8ba3a4d466758ffb2c27104c2cc1ca3) +* :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a837c875d8a30fc4175693dff43139569974ec22) +* :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/49da4ea30af1a2fb479110074ddf5f67e2ba370c) +* :wrench: Add browser platform back for FCM branch [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ebc5d9353bab3917f91c775cf13aec47c5ca1e04) +* Pin FCM to 9.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/505c8da8253cb8562ed16659b5ec2a8e73ec1c23) +* Add empty google services plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/46eafb1e5688ade278086a1644d06de4e36849b5) +* :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f3b01f155f6300dc05c625116e0c374af61d6388) +* :memo: Update to using fcm-node [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/453561c8f2dfc4ed09b6a182f6998c90408a3d44) +* Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ba0020349337160f83271b683195693ef0b4f440) +* Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/aee7b93a4d0b0bb0b9c987704c1cde82612e4445) +* Refactor GCMIntentService to FCMService [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5e0e7d107b2c9f4aeeda3a7757213e41ac573798) +* Fix topic subscription and unsubscription on FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/172528ea548174fd7be62d0ab2f9816566447a61) +* Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2727d274ef650fb0b4d25786d42f0ee5f72e9730) +* Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/697e592d8225f4e0853a0ea72a598d10a18c832d) +* fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c2987cbee54f04e7d44eec421b2417be5e7d716e) +* Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f358dba691fb39757003326209a232cefce53adf) +* Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7b7de65c2718eccc1ff0eeb2800973cd440c85a7) +* Added .framework files as custom frameworks [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8bf4343369e6b12f6ec28a104512cb3ab392e834) +* Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3de63bdf9e5a365e3b3e295f2a305ad66b512917) +* Fixed empty token on android first run (#1008) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b9ad4ebdeee6700d9edf95bf051dabda5923e01a) +* Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c119bf08869d51d5fe23f9a0fb78fd8325b35248) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3a1806aaec5d3c76f7fcd30ddfd85d576fb6d197) +* 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/471b2aa829cb0ecc93a9a788891602ad17319a47) +* Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7ad471ff45724828fb21630fdfbc244ba037d9d8) +* :apple::bug: Issue #1497: App crashes after refreshing when using FCM (v2) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b80dfb12b5053184936a4c6c881f1af55459348f) +* :pencil2: fixing error in CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9796292910f2d600b22d4846c128196cfb54ba7c) +* :memo: Using a newer version on the examples [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/297b8d28f2d7bf04420744c445e59a527c52d502) +* :penguin::memo::bug: Issue #1470: Cannot install phonegap-plugin-push on master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/41c8e66483fc0c5f21da7477d2522a2212a8017a) +* :bug::apple::wrench: Fixing a merge issue where aps-environment was accidentally removed [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/08e496fffc7fa082410f7b16e73e6afe12da194c) +* :bug::penguin::memo::arrow_up: #1460: Build Issue Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/156718a5800dfe4b87593e0732f4258c7c148bea) +* :bug::apple: Issue #1461: App crashes when initialising with topics (v2.0.0-rc1) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0add758d08657e22501612ed258033e31c394e6a) +* Fixing my merge error for PR #1378 Optional event emit instead of function call for action buttons [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1f2fd671ae734201b1260bc3d7878ae9ef28673c) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/70c6e04a3ba072b91b3752173ca2287d4e448b8f) +* 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7e07d81dbb47babe161f3204cdd06222a1e2ab3c) +* :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f3dffdcf63c3d19b4717eed89eb911b8aecdd25a) +* :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f5182503b241f519c03c872ae12f3489383f2b83) +* :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/27a101f1d35217e0a1b7f0be9ad0607d31ea6c57) +* :wrench: Add browser platform back for FCM branch [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c25a47bd3b5c2437ce3108656449658568f2c053) +* Pin FCM to 9.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/000bc36a8ce2a00e96212b66d69f1597dac68554) +* Add empty google services plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/aa1cc247fcf8b94c4d60d26b18c9229c112e8185) +* :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7f4bcafafe56be18f6dc64f3e634a6de594bc034) +* :memo: Update to using fcm-node [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a3f0eee774c7f9791f55f85816b0aeadc5c4fb4c) +* Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6c796a49c3a44b47f58237d7e7760f5ebc34c371) +* Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/10c5153672dc478dd072274c220200526c313604) +* Refactor GCMIntentService to FCMService [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/aa6e3ce5449accd5397b4eda8a950fd5cebc4f0e) +* Fix topic subscription and unsubscription on FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b65fe745b5eabbb7437a46b46e747be4aaf5116a) +* Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3b5f3c71657d8af3e4407ac9ea6c36e00988b1cf) +* Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/89040874c530c7f86c2acbcce5c3b88b351e80fb) +* fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a1e90013f8ca8497acc2513f4ce3df1358293d51) +* Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0bc1ca736546242772516334f47fd4ea4f8f5e5f) +* Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f7acf338d5bff2bc25b5c1e2fa681b7e20254cc9) +* Added .framework files as custom frameworks [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a65be290d4176c1c0b51b700d673550ae22cf777) +* Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ed630d481b9035eb9df48738c0e77029937fafe9) +* Fixed empty token on android first run (#1008) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c9c53761fa3d6fc99acaa96601e9abc673a62c23) +* Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6c46880b57aa1dee2bbcfeb5a86b497035f46ebe) ## [v1.10.4](https://github.com/phonegap/phonegap-plugin-push/tree/v1.10.4) (2017-05-17) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v1.10.3...v1.10.4) -- 1.10.4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ec7c3ea1fafbf3fafe502d278af218715aebb909) -- :bookmark: Bumping plugin version to 1.10.4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b1efe1fa069c034aaf465e040300fd2884d46075) -- :penguin::bug: Issue #1710: Notification message key overwritten [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/911a1d4fe5d3a05e0012ee8121464cfb8974ce23) -- :penguin::bug: Issue #1710: Notification message key overwritten [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4eadccd93d6daa81a05396a93fdc2033a4c90b12) -- :penguin: Fix issue #1663 by allowing message as the data payload key (#1666) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f8ac07399905fb9c6b0ab48139fa76066c5e190f) -- [typo] Small fix to payload doc [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5a4a04b1be5a7dd30a9c577441b241767ec20500) -- :memo: update readme [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0cbb7a92946ac9febb5ac5960291928d539c0fe6) -- :memo: Fix PAYLOAD.md regarding "drawable" directory name (#1711) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a27a62d6e346b1e61ffe2ffaae482461cf970c03) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cfad83fa420df5ba4ac12f2f3f7fa68fdb22cc03) +* 1.10.4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ec7c3ea1fafbf3fafe502d278af218715aebb909) +* :bookmark: Bumping plugin version to 1.10.4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b1efe1fa069c034aaf465e040300fd2884d46075) +* :penguin::bug: Issue #1710: Notification message key overwritten [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/911a1d4fe5d3a05e0012ee8121464cfb8974ce23) +* :penguin::bug: Issue #1710: Notification message key overwritten [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4eadccd93d6daa81a05396a93fdc2033a4c90b12) +* :penguin: Fix issue #1663 by allowing message as the data payload key (#1666) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f8ac07399905fb9c6b0ab48139fa76066c5e190f) +* [typo] Small fix to payload doc [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5a4a04b1be5a7dd30a9c577441b241767ec20500) +* :memo: update readme [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0cbb7a92946ac9febb5ac5960291928d539c0fe6) +* :memo: Fix PAYLOAD.md regarding "drawable" directory name (#1711) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a27a62d6e346b1e61ffe2ffaae482461cf970c03) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cfad83fa420df5ba4ac12f2f3f7fa68fdb22cc03) ## [v2.0.0-rc3](https://github.com/phonegap/phonegap-plugin-push/tree/v2.0.0-rc3) (2017-05-09) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v2.0.0-rc2...v2.0.0-rc3) -- 2.0.0-rc3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b393a9d932aee66da277b404c2475cb77195d8d8) -- :bookmark: Bumping plugin version to 2.0.0-rc3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8003110d0757107ad211cd0e0b9c175e60dcd7ed) -- :package: update www/push.js [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c0a3a4c6d578b2ee14a82f167934ecc8a7672557) -- :wrench: Update cordovaDependencies [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/969d546c3dc96efb59a226ee5df38de6e66e4de4) -- Bump requirements [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/85e6419cbad124eaa3eac1c1c515aa684ccf4393) -- Add resource-file way of copying google services files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/46ba2745f0ebc08cc3b12f9c51177247130b592c) -- Merge branch 'v2.0.x' of https://github.com/phonegap/phonegap-plugin-push into v2.0.x [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a5c9e456ce333b3387b2e4412248cdf45d26334c) -- Fixing package.json from failed merge/rebase. [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/974d2e218bcc8ab8ebf779ef18df74622702eb0e) -- Remove hook and use resource-file tag to copy google services file [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/86763c7f2cc15eae39972e4137813edb5cd8b838) -- Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9850b1b180c3b66f64edc1680d358a7b1df58b95) -- :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/15a68ed070d611f0569c90adaa062099120a7817) -- :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/784b7355a62490a5ce6229292213e22e671873c8) -- :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9b9df30cf65a275c0d4727a2854b12792ec905a2) -- :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/620af90cdda85f64aa65cc0fc0de051cb13980ba) -- Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ee9ecc957d8961e2a0ae884f55ee5abc71652885) -- Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c7545607bb23ea801f7a167d3408b112e4a6e812) -- Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2ac7442de047ecedf4a6d2c66591889e14bdafc4) -- Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5c2fc51055343467e51f6facbd690e71273cbac2) -- fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d1b4f51fb2cd6e9ee8447fee0ce4a5e9eba0a52d) -- Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0169587f198d0b44a06f408d803bbdac0fb1d079) -- Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/38bd3581663ccd85b2daed7b9833571a4adbc99e) -- Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9d5dbb196763e399d5177c0d4802ecc043cfc270) -- Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/24f0a77bac10e0d8e4ff837a165a3d69c3447601) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2535a189caddba2a41f9e002930541c55360047d) -- 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8aa6f717db7dd534c97ad559307d391788e13e47) -- Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/740cfe2bda63548a0e9cbf62b1833a4945eb432f) -- :apple::bug: Issue #1497: App crashes after refreshing when using FCM (v2) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/704b3635764700d5fc06f2e9c8c6a657ea4b7f29) -- :pencil2: fixing error in CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/68b045e6e40cdf1d5b9ed84136bebdf5f7874b8a) -- :memo: Using a newer version on the examples [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d8c4d002e4b6c6b399e5c5e5456012a121ee7b20) -- :penguin::memo::bug: Issue #1470: Cannot install phonegap-plugin-push on master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/632a4f1d87ff306bbc8920133e96b84125e44468) -- :bug::apple::wrench: Fixing a merge issue where aps-environment was accidentally removed [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4fb78566b5ebbbf2f04268b91f9c8cbc7193601e) -- :bug::penguin::memo::arrow_up: #1460: Build Issue Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e93f04a87763a762d581a18439b2de808fc81a2c) -- :bug::apple: Issue #1461: App crashes when initialising with topics (v2.0.0-rc1) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8f827a9678dac02887872bd7374fde1c40caeb90) -- Fixing my merge error for PR #1378 Optional event emit instead of function call for action buttons [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/64044115de796c52132e60719d5e93fc16594002) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d1f8f8e55af40a16129cdc362e179f0c7ef60bd0) -- 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/05c52e22945c0405b76a6d10d837ae6b015e661b) -- :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/600f6050a2c3899559148579c5bc32c1e56449fa) -- :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2660a8620874d520e2f3f3217cf20ea369affada) -- :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3f043c21a608fdea4436409b68fbcf2c822d6c0a) -- :wrench: Add browser platform back for FCM branch [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/97a1615a79ab0317a5dae27b7124dbaec7bc71c7) -- Pin FCM to 9.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e04b175c72d0680b3b618fdbcce80f9f9d470055) -- Add empty google services plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d21632fd2acf90847c67b0c70f0b740ed3d367a7) -- :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b41580f7476a34014ceb03976f25989f98cbde6a) -- :memo: Update to using fcm-node [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f84574aeffc958b6ec152ca36c2ea595418e901c) -- Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/326943dadc29fe662ce4925b8141960e31d78dd3) -- Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b5c0156bb13a22e11cf6f174a7307e404ed6d154) -- Refactor GCMIntentService to FCMService [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/006ca17a7482490fbbfc67faa88a4c60d81a49f4) -- Fix topic subscription and unsubscription on FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/102934b167c4e69c9a6a5c7b41d0ca3fba0cfd25) -- Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/bccc1ba887603b8577c01ee5b885bffa0d406028) -- Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7fe0379c6be007817c21355044bcecdd05bcc301) -- fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6c1a5572c420c88772bd3fc89d81fac21027a5be) -- Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/98c100b12613a2885ed1afd417b1e678883d37ee) -- Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7861fd27cd052c7e80736b8da9cba8cfae442e73) -- Added .framework files as custom frameworks [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b3dc189600842c6a8e318b032bdf215ea1c9b81f) -- Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ff2dbe0cc5a2dce0a92b6c16f35b1a67ce6a6f18) -- Fixed empty token on android first run (#1008) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/50285f9193f5e6b33e63c2540b8f3c7a257a5221) -- Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f67e30d41f5ea94a60a53b00ed51b995960f89c9) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cfad83fa420df5ba4ac12f2f3f7fa68fdb22cc03) -- 1.10.3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1e072b351056d453fd1c1d40d5fcac310f3e107c) -- :bookmark: Bumping plugin version to 1.10.3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/29df66eae54e773925e25bd92299957e4d654723) -- :bug: Handle null in getCircleBitmap (#1705) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3acdfa338d7a8b56ec4dc73c50aa9917ecb3be7c) -- :shirt: Issue #1702: The logging tag can be at most 23 characters, was 40 (PushPlugin_BackgroundActionButtonHandler) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2045873acda2e81d54b2da87cd2d10f056bd90f9) -- Shortened log tag PushPlugin_BackgroundActionButtonHandler to bring u… (#1703) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/dd707122b7aa78649fa6f5f73ba9b05436799926) -- Merge branch 'v2.0.x' of https://github.com/phonegap/phonegap-plugin-push into v2.0.x [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/96af63840f28a57d29e21a48cc52533fa0830bea) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7371f3b31ea7a672ec6d43da7ef9475916b6c5c5) -- 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5099c8fe435bda7d8bc7b2648d078a3b63cf19ea) -- Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/72d29bd4372e6043d38835d07839346ea204390a) -- :apple::bug: Issue #1497: App crashes after refreshing when using FCM (v2) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c44be0628bb42ba7ee07456524e9b1fffae64aea) -- :memo: Using a newer version on the examples [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/95cdee193d2977a17e778bf91ca1bcfc240dc266) -- :penguin::memo::bug: Issue #1470: Cannot install phonegap-plugin-push on master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a1fa7cce1168145c77fef2632ad64f8926e71d27) -- :bug::apple::wrench: Fixing a merge issue where aps-environment was accidentally removed [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ef4c7e187f2c5f386d9c844ee7211c8ff1cc214c) -- :bug::penguin::memo::arrow_up: #1460: Build Issue Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5d52fdaf28f0535ef6dab315abd67141b0fcd0f7) -- :bug::apple: Issue #1461: App crashes when initialising with topics (v2.0.0-rc1) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5d9dfdf179b39312a6382a48dd99d675e642a533) -- Fixing my merge error for PR #1378 Optional event emit instead of function call for action buttons [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/057cbd16f10581cd601079a9a10b9338df3c23eb) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/83238fce85413cdd192b5ff33139ba9a0bcd080f) -- 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9ff3929bed6bff911027bef21168e527ff61fd2c) -- :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/94d8cc7ec8ba3a4d466758ffb2c27104c2cc1ca3) -- :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a837c875d8a30fc4175693dff43139569974ec22) -- :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/49da4ea30af1a2fb479110074ddf5f67e2ba370c) -- :wrench: Add browser platform back for FCM branch [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ebc5d9353bab3917f91c775cf13aec47c5ca1e04) -- Pin FCM to 9.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/505c8da8253cb8562ed16659b5ec2a8e73ec1c23) -- Add empty google services plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/46eafb1e5688ade278086a1644d06de4e36849b5) -- :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f3b01f155f6300dc05c625116e0c374af61d6388) -- :memo: Update to using fcm-node [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/453561c8f2dfc4ed09b6a182f6998c90408a3d44) -- Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ba0020349337160f83271b683195693ef0b4f440) -- Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/aee7b93a4d0b0bb0b9c987704c1cde82612e4445) -- Refactor GCMIntentService to FCMService [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5e0e7d107b2c9f4aeeda3a7757213e41ac573798) -- Fix topic subscription and unsubscription on FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/172528ea548174fd7be62d0ab2f9816566447a61) -- Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2727d274ef650fb0b4d25786d42f0ee5f72e9730) -- Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/697e592d8225f4e0853a0ea72a598d10a18c832d) -- fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c2987cbee54f04e7d44eec421b2417be5e7d716e) -- Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f358dba691fb39757003326209a232cefce53adf) -- Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7b7de65c2718eccc1ff0eeb2800973cd440c85a7) -- Added .framework files as custom frameworks [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8bf4343369e6b12f6ec28a104512cb3ab392e834) -- Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3de63bdf9e5a365e3b3e295f2a305ad66b512917) -- Fixed empty token on android first run (#1008) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b9ad4ebdeee6700d9edf95bf051dabda5923e01a) -- Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c119bf08869d51d5fe23f9a0fb78fd8325b35248) -- :memo: Docs for interoperability with Firebase (#1693) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cebb6403143047192462f30c22b9510a8c6dbe21) -- fix headline (#1685) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e2e7993544eed544eb7286868b60e2e3efb6275d) -- Fix changelog date [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3140b2b00388785f8056632376b50a1d1ef67b96) -- :arrow_up: update pluginpub to 0.0.8 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cfab7d91556a38ee81550fe47e13f2662ae810db) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/027ea2c17e4b96b848ab29046efea243e6e2da27) -- 1.10.2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b5a7d4ec6e64abaed65de00be3e9bac9ab25791e) -- :bookmark: Bumping plugin version to 1.10.2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5b700ad9927c401081a5de49f2a6a27ba0dfaa9a) -- :arrow_up: update pluginpub to 0.0.7 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/38564ce55e53e018c91f4063d680eedd2631b825) -- Fix the dates on the CHANGELOG (the last 2 version) (#1676) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c0f26192c906bfc1a60390333c96d5dc07433978) -- Vapid Support (#1675) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/384b60bade628035b21d23f07e284eb6e1557a10) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/97d618fb53084cfae78f397def48df791131358f) -- 1.10.1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6211e8c3df8881a90d19b111a0e63f890d435df6) -- :bookmark: Bumping plugin version to 1.10.1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6d710a06681ad84c13273fe5d20feb3033ac67b6) -- :bug: Issue #1655: App opens on clearing notification (Android) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ff417925f6d6678f0fcd8315d5f4b4b08fbb9085) -- :memo: Issue #1118: Problem with notifications stacking [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d669c44a863d86d0bb73b5ae086bc2fe6f8113a9) -- :memo: Issue #1220: [Question] the hook setting seem not work [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4ef137eea370da7c225ab2a5cf63b1e97a68f4a4) -- Set get badge count android (#1644) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/630907cf3d8802bcd5d91b6bd768c989f6ef897a) -- Add plugin typings from DefinitelyTyped (#1654) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6ea70d9984e176a75602e72e1d26f5404c519e29) -- :arrow_up: Issue #1560: setApplicationIconBadgeNumber not working on Android but firing success function [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/700701fd2151667905d860228cf954301186721a) -- :memo: Issue #1618: No notification when app is closed on Android, not at all on iOS [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7f64bf0ffbddf3ef20de2fe540ec2718be5d0c23) -- :arrow_down: Issue #1560: setApplicationIconBadgeNumber not working on Android but firing success function [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e450fd7b623f27f27858a7537ec7950aa0f618b5) -- :arrow_up: Issue #1560: setApplicationIconBadgeNumber not working on Android but firing success function [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4af3472263a5125cab6f08bbb59b83bf957144ec) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ed25a3e3ad9fb6f2af63fd07957944f974eafaa1) -- 1.10.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6b9b862da8566c7717dfc79dd6b32d8a7e6774d8) -- :bookmark: Bumping plugin version to 1.10.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/626e9615fbff6ea225569ab58353ac7f58aef495) -- :heavy_plus_sign: update pluginpub version [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c3c8058ffee888447017eb5d8c0f4f30cbcd090f) -- Issue #1464: Create round bitmap icon for large icon image passed in from local resource or url (#1635) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0dd0d468868f0b13c8d840c78dd89fca5920cd32) -- Receive notification only from SENDER_ID (#1484) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a0d51e54aac39b8c58e4c67080f174c0228947c9) -- Add no-cache flag to payload (#1620) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/42f8cefbd187c36534e6ab59b6611fb7f15b91f0) -- Add dismiss key to on notification data (#1621) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4259bb3cacfe2561ed44e9f16bd74f8d5ae45ae2) -- return true for old android versions, since AppOpsManager is available starting at 19 (#1634) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/945aa2ad6d266e82683e0bee86f53d258f2b31b6) -- :art: remove reference to unused String [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/75f2191632a7a51eda7510a172ae6cc9d477acb9) -- Ability to use custom keys to find message title and text on Android (#1604) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fd366296773906c91d5f8dfa3e8ba813c7c71b85) -- :memo: Fixed URL of apples custom sound documentation (#1600) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8c93f8622eb1c453cb0c681158a07deca32bf200) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/409020c90edf04e0a37232cff8aadb070d4ccaa9) -- 1.9.4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2241c7431cd60a68d2f35e7b4a5bfd797d5161b6) -- Bumping plugin version to 1.9.4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ec47932bf8fdf9cd96db076fe56306ab230048d9) -- Issue #1591: App crashes with the latest updates of Android SDK with plugin v-1.9.2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/514c21366ab37001ca323bec58261e023edaefd7) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3a218e4c68ebc1088461c2cfec966e57eaa24089) -- 1.9.3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/42723d6609862aa950abce67b2a637736bdd9e99) -- :bookmark: Bumping plugin version to 1.9.3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8f7b7dc003a2bc5bab7a316b0e2b0cf475c5a449) -- :wrench: Add valid SPDX license expression [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4274d0759acd7110ed2592ed1d2ce3bf692711d3) -- :memo: Issue #1587: v2.0.0-rc2: .on('notification') event not fired when background notification in Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7e90853a09a2c49f29e12eed03977b08b1295387) -- :arrow_up: Issue #1560: setApplicationIconBadgeNumber not working on Android but firing success function [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3188a3907f50dcf625b7663ecf74ea9a9209d437) -- :memo: Issue #1557: push.on('notification') not triggered - Ionic [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b91e9420fb68c4efc943cc5f8ecbd81274ffcbec) -- :memo: Issue #1407: Uncaught (in promise): Error: Push plugin not found! [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/adf3eabb8871980d2dead7ecb8185ad0da1d6b46) -- Corrected merges usage to prevent possible conflicts with other plugins (#1538) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/00c67cb2c85e97dfe4f7020f28ad4d954458599f) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3a1806aaec5d3c76f7fcd30ddfd85d576fb6d197) -- 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/471b2aa829cb0ecc93a9a788891602ad17319a47) -- Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7ad471ff45724828fb21630fdfbc244ba037d9d8) -- :apple::bug: Issue #1497: App crashes after refreshing when using FCM (v2) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b80dfb12b5053184936a4c6c881f1af55459348f) -- :pencil2: fixing error in CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9796292910f2d600b22d4846c128196cfb54ba7c) -- :memo: Using a newer version on the examples [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/297b8d28f2d7bf04420744c445e59a527c52d502) -- :penguin::memo::bug: Issue #1470: Cannot install phonegap-plugin-push on master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/41c8e66483fc0c5f21da7477d2522a2212a8017a) -- :bug::apple::wrench: Fixing a merge issue where aps-environment was accidentally removed [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/08e496fffc7fa082410f7b16e73e6afe12da194c) -- :bug::penguin::memo::arrow_up: #1460: Build Issue Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/156718a5800dfe4b87593e0732f4258c7c148bea) -- :bug::apple: Issue #1461: App crashes when initialising with topics (v2.0.0-rc1) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0add758d08657e22501612ed258033e31c394e6a) -- Fixing my merge error for PR #1378 Optional event emit instead of function call for action buttons [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1f2fd671ae734201b1260bc3d7878ae9ef28673c) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/70c6e04a3ba072b91b3752173ca2287d4e448b8f) -- 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7e07d81dbb47babe161f3204cdd06222a1e2ab3c) -- :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f3dffdcf63c3d19b4717eed89eb911b8aecdd25a) -- :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f5182503b241f519c03c872ae12f3489383f2b83) -- :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/27a101f1d35217e0a1b7f0be9ad0607d31ea6c57) -- :wrench: Add browser platform back for FCM branch [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c25a47bd3b5c2437ce3108656449658568f2c053) -- Pin FCM to 9.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/000bc36a8ce2a00e96212b66d69f1597dac68554) -- Add empty google services plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/aa1cc247fcf8b94c4d60d26b18c9229c112e8185) -- :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7f4bcafafe56be18f6dc64f3e634a6de594bc034) -- :memo: Update to using fcm-node [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a3f0eee774c7f9791f55f85816b0aeadc5c4fb4c) -- Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6c796a49c3a44b47f58237d7e7760f5ebc34c371) -- Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/10c5153672dc478dd072274c220200526c313604) -- Refactor GCMIntentService to FCMService [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/aa6e3ce5449accd5397b4eda8a950fd5cebc4f0e) -- Fix topic subscription and unsubscription on FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b65fe745b5eabbb7437a46b46e747be4aaf5116a) -- Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3b5f3c71657d8af3e4407ac9ea6c36e00988b1cf) -- Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/89040874c530c7f86c2acbcce5c3b88b351e80fb) -- fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a1e90013f8ca8497acc2513f4ce3df1358293d51) -- Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0bc1ca736546242772516334f47fd4ea4f8f5e5f) -- Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f7acf338d5bff2bc25b5c1e2fa681b7e20254cc9) -- Added .framework files as custom frameworks [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a65be290d4176c1c0b51b700d673550ae22cf777) -- Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ed630d481b9035eb9df48738c0e77029937fafe9) -- Fixed empty token on android first run (#1008) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c9c53761fa3d6fc99acaa96601e9abc673a62c23) -- Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6c46880b57aa1dee2bbcfeb5a86b497035f46ebe) -- :penguin: android mixpanel pushnotification suport added (#1523) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/951cb6921a717d847c279ad6896c28772c70103f) -- :memo: Making string replacement clearer [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/abdb656315bd4457c7ae43aaa52e2357df85d139) -- :bug::penguin::memo: Issue #1433: Cordova Push V5 register () crashes App when initialized with topicList [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1d5723c81ad7a1e9d76fdce22161e8e8aa8da262) -- :bug::penguin: Issue #1421: Notification delay caused by icon bitmap timeout [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fb4b533f2b31daebc7ed57c16228458def3d2af9) -- :memo: Issue #1442: CocoaPods support vs requirement [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5912b1ea911fbe3b45a3a47ed005b7048a487ba6) -- 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/67041a994d70fd3a04149003607b88947e8cc994) -- Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7dea689ba17ebb901ee12da62801f051a99cc368) -- :apple::bug: Issue #1497: App crashes after refreshing when using FCM (v2) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ea92e039b1d7640b70ca94e5f8748e7d2abbf13a) -- :pencil2: fixing error in CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/498bb038799bd687d8c492154bd3b34d72edd322) -- :memo: Using a newer version on the examples [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/74aba315b4cbb1e06c902e76891bce5582cbe690) -- :penguin::memo::bug: Issue #1470: Cannot install phonegap-plugin-push on master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e2f8a62c431af26c4d2fa487daa704067a088643) -- :bug::apple::wrench: Fixing a merge issue where aps-environment was accidentally removed [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cb9839740c4cbff5711224eed4b91b55aba77612) -- :bug::penguin::memo::arrow_up: #1460: Build Issue Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1bef8b37ef7bc017571924edc9e05fe09cd25e29) -- :bug::apple: Issue #1461: App crashes when initialising with topics (v2.0.0-rc1) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ca5c281897c664b0bd98097ec2fc8c19c33b2c63) -- Fixing my merge error for PR #1378 Optional event emit instead of function call for action buttons [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/170d7dd43fe047c6caf84ec0f59da6c2c0cdeb6f) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fa4e36606c965504dba609940a2acf24f74ed978) -- 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/af6c31933e3daedf6e5a7f046e971efcf65cc1ea) -- :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/99742021c8c6c2cd860c40b01db6a3dc18095dbb) -- :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ff14a71b5e365f5c93159e759f989a6bbe89b40a) -- :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/92dca439e1b0a0750a7e466bace2c4cb3acd19d8) -- :wrench: Add browser platform back for FCM branch [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4cbc1cb69203c5a0fab250bd49b99a398ce86558) -- Pin FCM to 9.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7075bc8206641aa6459cf6acc4fe447fb1d57f77) -- Add empty google services plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d043c5f9d7872dc4340151c0645a24716391f58f) -- :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f7a7c5c172190acab17fdfd54ad726a7a2fad701) -- :memo: Update to using fcm-node [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/15e68b03956a1dd292fda87e0da4f1ad9700d9c0) -- Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/54aa482fb8af6ac15a60fb06090077e1d68dee6c) -- Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1276d538b80106dd2f3d67996a531e64e7aa4937) -- Refactor GCMIntentService to FCMService [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/504f2dcb5b158e0b2e151b255aad28a659bc2c4d) -- Fix topic subscription and unsubscription on FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/97f0aeaa1099b89076b28282b2d2daac7ec62b33) -- Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e11d89f46572d1e4430f1f6a63945d74b56e574c) -- Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fa66ac99685f1f2b580597a45b16315ab7748028) -- fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c539b041cbe2a2b6e9a360a91ee2a9bfdfd16b03) -- Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/dce5e9fb70e4df45a10fd8348a7def64864fdd24) -- Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6f0182aff86b04c22630d1586d6ac6ca617c7e61) -- Added .framework files as custom frameworks [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/562a22f45bdafa4e2887996e9c0fa295b8bac886) -- Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f1d14b2615d7c8330afbdbf0faa1d2438473a45d) -- Fixed empty token on android first run (#1008) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7e4c47b5c5647866f24e6c2f47e4c98a1f8e2442) -- Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a02580e19d470919ec61ec489cdf4ee6ca2f0d8c) +* 2.0.0-rc3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b393a9d932aee66da277b404c2475cb77195d8d8) +* :bookmark: Bumping plugin version to 2.0.0-rc3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8003110d0757107ad211cd0e0b9c175e60dcd7ed) +* :package: update www/push.js [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c0a3a4c6d578b2ee14a82f167934ecc8a7672557) +* :wrench: Update cordovaDependencies [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/969d546c3dc96efb59a226ee5df38de6e66e4de4) +* Bump requirements [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/85e6419cbad124eaa3eac1c1c515aa684ccf4393) +* Add resource-file way of copying google services files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/46ba2745f0ebc08cc3b12f9c51177247130b592c) +* Merge branch 'v2.0.x' of https://github.com/phonegap/phonegap-plugin-push into v2.0.x [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a5c9e456ce333b3387b2e4412248cdf45d26334c) +* Fixing package.json from failed merge/rebase. [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/974d2e218bcc8ab8ebf779ef18df74622702eb0e) +* Remove hook and use resource-file tag to copy google services file [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/86763c7f2cc15eae39972e4137813edb5cd8b838) +* Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9850b1b180c3b66f64edc1680d358a7b1df58b95) +* :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/15a68ed070d611f0569c90adaa062099120a7817) +* :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/784b7355a62490a5ce6229292213e22e671873c8) +* :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9b9df30cf65a275c0d4727a2854b12792ec905a2) +* :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/620af90cdda85f64aa65cc0fc0de051cb13980ba) +* Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ee9ecc957d8961e2a0ae884f55ee5abc71652885) +* Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c7545607bb23ea801f7a167d3408b112e4a6e812) +* Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2ac7442de047ecedf4a6d2c66591889e14bdafc4) +* Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5c2fc51055343467e51f6facbd690e71273cbac2) +* fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d1b4f51fb2cd6e9ee8447fee0ce4a5e9eba0a52d) +* Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0169587f198d0b44a06f408d803bbdac0fb1d079) +* Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/38bd3581663ccd85b2daed7b9833571a4adbc99e) +* Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9d5dbb196763e399d5177c0d4802ecc043cfc270) +* Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/24f0a77bac10e0d8e4ff837a165a3d69c3447601) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2535a189caddba2a41f9e002930541c55360047d) +* 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8aa6f717db7dd534c97ad559307d391788e13e47) +* Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/740cfe2bda63548a0e9cbf62b1833a4945eb432f) +* :apple::bug: Issue #1497: App crashes after refreshing when using FCM (v2) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/704b3635764700d5fc06f2e9c8c6a657ea4b7f29) +* :pencil2: fixing error in CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/68b045e6e40cdf1d5b9ed84136bebdf5f7874b8a) +* :memo: Using a newer version on the examples [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d8c4d002e4b6c6b399e5c5e5456012a121ee7b20) +* :penguin::memo::bug: Issue #1470: Cannot install phonegap-plugin-push on master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/632a4f1d87ff306bbc8920133e96b84125e44468) +* :bug::apple::wrench: Fixing a merge issue where aps-environment was accidentally removed [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4fb78566b5ebbbf2f04268b91f9c8cbc7193601e) +* :bug::penguin::memo::arrow_up: #1460: Build Issue Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e93f04a87763a762d581a18439b2de808fc81a2c) +* :bug::apple: Issue #1461: App crashes when initialising with topics (v2.0.0-rc1) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8f827a9678dac02887872bd7374fde1c40caeb90) +* Fixing my merge error for PR #1378 Optional event emit instead of function call for action buttons [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/64044115de796c52132e60719d5e93fc16594002) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d1f8f8e55af40a16129cdc362e179f0c7ef60bd0) +* 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/05c52e22945c0405b76a6d10d837ae6b015e661b) +* :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/600f6050a2c3899559148579c5bc32c1e56449fa) +* :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2660a8620874d520e2f3f3217cf20ea369affada) +* :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3f043c21a608fdea4436409b68fbcf2c822d6c0a) +* :wrench: Add browser platform back for FCM branch [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/97a1615a79ab0317a5dae27b7124dbaec7bc71c7) +* Pin FCM to 9.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e04b175c72d0680b3b618fdbcce80f9f9d470055) +* Add empty google services plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d21632fd2acf90847c67b0c70f0b740ed3d367a7) +* :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b41580f7476a34014ceb03976f25989f98cbde6a) +* :memo: Update to using fcm-node [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f84574aeffc958b6ec152ca36c2ea595418e901c) +* Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/326943dadc29fe662ce4925b8141960e31d78dd3) +* Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b5c0156bb13a22e11cf6f174a7307e404ed6d154) +* Refactor GCMIntentService to FCMService [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/006ca17a7482490fbbfc67faa88a4c60d81a49f4) +* Fix topic subscription and unsubscription on FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/102934b167c4e69c9a6a5c7b41d0ca3fba0cfd25) +* Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/bccc1ba887603b8577c01ee5b885bffa0d406028) +* Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7fe0379c6be007817c21355044bcecdd05bcc301) +* fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6c1a5572c420c88772bd3fc89d81fac21027a5be) +* Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/98c100b12613a2885ed1afd417b1e678883d37ee) +* Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7861fd27cd052c7e80736b8da9cba8cfae442e73) +* Added .framework files as custom frameworks [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b3dc189600842c6a8e318b032bdf215ea1c9b81f) +* Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ff2dbe0cc5a2dce0a92b6c16f35b1a67ce6a6f18) +* Fixed empty token on android first run (#1008) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/50285f9193f5e6b33e63c2540b8f3c7a257a5221) +* Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f67e30d41f5ea94a60a53b00ed51b995960f89c9) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cfad83fa420df5ba4ac12f2f3f7fa68fdb22cc03) +* 1.10.3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1e072b351056d453fd1c1d40d5fcac310f3e107c) +* :bookmark: Bumping plugin version to 1.10.3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/29df66eae54e773925e25bd92299957e4d654723) +* :bug: Handle null in getCircleBitmap (#1705) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3acdfa338d7a8b56ec4dc73c50aa9917ecb3be7c) +* :shirt: Issue #1702: The logging tag can be at most 23 characters, was 40 (PushPlugin_BackgroundActionButtonHandler) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2045873acda2e81d54b2da87cd2d10f056bd90f9) +* Shortened log tag PushPlugin_BackgroundActionButtonHandler to bring u… (#1703) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/dd707122b7aa78649fa6f5f73ba9b05436799926) +* Merge branch 'v2.0.x' of https://github.com/phonegap/phonegap-plugin-push into v2.0.x [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/96af63840f28a57d29e21a48cc52533fa0830bea) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7371f3b31ea7a672ec6d43da7ef9475916b6c5c5) +* 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5099c8fe435bda7d8bc7b2648d078a3b63cf19ea) +* Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/72d29bd4372e6043d38835d07839346ea204390a) +* :apple::bug: Issue #1497: App crashes after refreshing when using FCM (v2) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c44be0628bb42ba7ee07456524e9b1fffae64aea) +* :memo: Using a newer version on the examples [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/95cdee193d2977a17e778bf91ca1bcfc240dc266) +* :penguin::memo::bug: Issue #1470: Cannot install phonegap-plugin-push on master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a1fa7cce1168145c77fef2632ad64f8926e71d27) +* :bug::apple::wrench: Fixing a merge issue where aps-environment was accidentally removed [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ef4c7e187f2c5f386d9c844ee7211c8ff1cc214c) +* :bug::penguin::memo::arrow_up: #1460: Build Issue Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5d52fdaf28f0535ef6dab315abd67141b0fcd0f7) +* :bug::apple: Issue #1461: App crashes when initialising with topics (v2.0.0-rc1) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5d9dfdf179b39312a6382a48dd99d675e642a533) +* Fixing my merge error for PR #1378 Optional event emit instead of function call for action buttons [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/057cbd16f10581cd601079a9a10b9338df3c23eb) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/83238fce85413cdd192b5ff33139ba9a0bcd080f) +* 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9ff3929bed6bff911027bef21168e527ff61fd2c) +* :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/94d8cc7ec8ba3a4d466758ffb2c27104c2cc1ca3) +* :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a837c875d8a30fc4175693dff43139569974ec22) +* :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/49da4ea30af1a2fb479110074ddf5f67e2ba370c) +* :wrench: Add browser platform back for FCM branch [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ebc5d9353bab3917f91c775cf13aec47c5ca1e04) +* Pin FCM to 9.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/505c8da8253cb8562ed16659b5ec2a8e73ec1c23) +* Add empty google services plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/46eafb1e5688ade278086a1644d06de4e36849b5) +* :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f3b01f155f6300dc05c625116e0c374af61d6388) +* :memo: Update to using fcm-node [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/453561c8f2dfc4ed09b6a182f6998c90408a3d44) +* Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ba0020349337160f83271b683195693ef0b4f440) +* Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/aee7b93a4d0b0bb0b9c987704c1cde82612e4445) +* Refactor GCMIntentService to FCMService [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5e0e7d107b2c9f4aeeda3a7757213e41ac573798) +* Fix topic subscription and unsubscription on FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/172528ea548174fd7be62d0ab2f9816566447a61) +* Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2727d274ef650fb0b4d25786d42f0ee5f72e9730) +* Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/697e592d8225f4e0853a0ea72a598d10a18c832d) +* fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c2987cbee54f04e7d44eec421b2417be5e7d716e) +* Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f358dba691fb39757003326209a232cefce53adf) +* Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7b7de65c2718eccc1ff0eeb2800973cd440c85a7) +* Added .framework files as custom frameworks [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8bf4343369e6b12f6ec28a104512cb3ab392e834) +* Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3de63bdf9e5a365e3b3e295f2a305ad66b512917) +* Fixed empty token on android first run (#1008) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b9ad4ebdeee6700d9edf95bf051dabda5923e01a) +* Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c119bf08869d51d5fe23f9a0fb78fd8325b35248) +* :memo: Docs for interoperability with Firebase (#1693) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cebb6403143047192462f30c22b9510a8c6dbe21) +* fix headline (#1685) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e2e7993544eed544eb7286868b60e2e3efb6275d) +* Fix changelog date [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3140b2b00388785f8056632376b50a1d1ef67b96) +* :arrow_up: update pluginpub to 0.0.8 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cfab7d91556a38ee81550fe47e13f2662ae810db) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/027ea2c17e4b96b848ab29046efea243e6e2da27) +* 1.10.2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b5a7d4ec6e64abaed65de00be3e9bac9ab25791e) +* :bookmark: Bumping plugin version to 1.10.2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5b700ad9927c401081a5de49f2a6a27ba0dfaa9a) +* :arrow_up: update pluginpub to 0.0.7 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/38564ce55e53e018c91f4063d680eedd2631b825) +* Fix the dates on the CHANGELOG (the last 2 version) (#1676) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c0f26192c906bfc1a60390333c96d5dc07433978) +* Vapid Support (#1675) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/384b60bade628035b21d23f07e284eb6e1557a10) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/97d618fb53084cfae78f397def48df791131358f) +* 1.10.1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6211e8c3df8881a90d19b111a0e63f890d435df6) +* :bookmark: Bumping plugin version to 1.10.1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6d710a06681ad84c13273fe5d20feb3033ac67b6) +* :bug: Issue #1655: App opens on clearing notification (Android) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ff417925f6d6678f0fcd8315d5f4b4b08fbb9085) +* :memo: Issue #1118: Problem with notifications stacking [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d669c44a863d86d0bb73b5ae086bc2fe6f8113a9) +* :memo: Issue #1220: [Question] the hook setting seem not work [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4ef137eea370da7c225ab2a5cf63b1e97a68f4a4) +* Set get badge count android (#1644) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/630907cf3d8802bcd5d91b6bd768c989f6ef897a) +* Add plugin typings from DefinitelyTyped (#1654) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6ea70d9984e176a75602e72e1d26f5404c519e29) +* :arrow_up: Issue #1560: setApplicationIconBadgeNumber not working on Android but firing success function [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/700701fd2151667905d860228cf954301186721a) +* :memo: Issue #1618: No notification when app is closed on Android, not at all on iOS [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7f64bf0ffbddf3ef20de2fe540ec2718be5d0c23) +* :arrow_down: Issue #1560: setApplicationIconBadgeNumber not working on Android but firing success function [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e450fd7b623f27f27858a7537ec7950aa0f618b5) +* :arrow_up: Issue #1560: setApplicationIconBadgeNumber not working on Android but firing success function [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4af3472263a5125cab6f08bbb59b83bf957144ec) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ed25a3e3ad9fb6f2af63fd07957944f974eafaa1) +* 1.10.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6b9b862da8566c7717dfc79dd6b32d8a7e6774d8) +* :bookmark: Bumping plugin version to 1.10.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/626e9615fbff6ea225569ab58353ac7f58aef495) +* :heavy_plus_sign: update pluginpub version [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c3c8058ffee888447017eb5d8c0f4f30cbcd090f) +* Issue #1464: Create round bitmap icon for large icon image passed in from local resource or url (#1635) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0dd0d468868f0b13c8d840c78dd89fca5920cd32) +* Receive notification only from SENDER_ID (#1484) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a0d51e54aac39b8c58e4c67080f174c0228947c9) +* Add no-cache flag to payload (#1620) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/42f8cefbd187c36534e6ab59b6611fb7f15b91f0) +* Add dismiss key to on notification data (#1621) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4259bb3cacfe2561ed44e9f16bd74f8d5ae45ae2) +* return true for old android versions, since AppOpsManager is available starting at 19 (#1634) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/945aa2ad6d266e82683e0bee86f53d258f2b31b6) +* :art: remove reference to unused String [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/75f2191632a7a51eda7510a172ae6cc9d477acb9) +* Ability to use custom keys to find message title and text on Android (#1604) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fd366296773906c91d5f8dfa3e8ba813c7c71b85) +* :memo: Fixed URL of apples custom sound documentation (#1600) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8c93f8622eb1c453cb0c681158a07deca32bf200) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/409020c90edf04e0a37232cff8aadb070d4ccaa9) +* 1.9.4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2241c7431cd60a68d2f35e7b4a5bfd797d5161b6) +* Bumping plugin version to 1.9.4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ec47932bf8fdf9cd96db076fe56306ab230048d9) +* Issue #1591: App crashes with the latest updates of Android SDK with plugin v-1.9.2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/514c21366ab37001ca323bec58261e023edaefd7) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3a218e4c68ebc1088461c2cfec966e57eaa24089) +* 1.9.3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/42723d6609862aa950abce67b2a637736bdd9e99) +* :bookmark: Bumping plugin version to 1.9.3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8f7b7dc003a2bc5bab7a316b0e2b0cf475c5a449) +* :wrench: Add valid SPDX license expression [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4274d0759acd7110ed2592ed1d2ce3bf692711d3) +* :memo: Issue #1587: v2.0.0-rc2: .on('notification') event not fired when background notification in Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7e90853a09a2c49f29e12eed03977b08b1295387) +* :arrow_up: Issue #1560: setApplicationIconBadgeNumber not working on Android but firing success function [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3188a3907f50dcf625b7663ecf74ea9a9209d437) +* :memo: Issue #1557: push.on('notification') not triggered - Ionic [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b91e9420fb68c4efc943cc5f8ecbd81274ffcbec) +* :memo: Issue #1407: Uncaught (in promise): Error: Push plugin not found! [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/adf3eabb8871980d2dead7ecb8185ad0da1d6b46) +* Corrected merges usage to prevent possible conflicts with other plugins (#1538) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/00c67cb2c85e97dfe4f7020f28ad4d954458599f) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3a1806aaec5d3c76f7fcd30ddfd85d576fb6d197) +* 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/471b2aa829cb0ecc93a9a788891602ad17319a47) +* Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7ad471ff45724828fb21630fdfbc244ba037d9d8) +* :apple::bug: Issue #1497: App crashes after refreshing when using FCM (v2) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b80dfb12b5053184936a4c6c881f1af55459348f) +* :pencil2: fixing error in CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/9796292910f2d600b22d4846c128196cfb54ba7c) +* :memo: Using a newer version on the examples [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/297b8d28f2d7bf04420744c445e59a527c52d502) +* :penguin::memo::bug: Issue #1470: Cannot install phonegap-plugin-push on master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/41c8e66483fc0c5f21da7477d2522a2212a8017a) +* :bug::apple::wrench: Fixing a merge issue where aps-environment was accidentally removed [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/08e496fffc7fa082410f7b16e73e6afe12da194c) +* :bug::penguin::memo::arrow_up: #1460: Build Issue Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/156718a5800dfe4b87593e0732f4258c7c148bea) +* :bug::apple: Issue #1461: App crashes when initialising with topics (v2.0.0-rc1) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0add758d08657e22501612ed258033e31c394e6a) +* Fixing my merge error for PR #1378 Optional event emit instead of function call for action buttons [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1f2fd671ae734201b1260bc3d7878ae9ef28673c) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/70c6e04a3ba072b91b3752173ca2287d4e448b8f) +* 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7e07d81dbb47babe161f3204cdd06222a1e2ab3c) +* :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f3dffdcf63c3d19b4717eed89eb911b8aecdd25a) +* :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f5182503b241f519c03c872ae12f3489383f2b83) +* :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/27a101f1d35217e0a1b7f0be9ad0607d31ea6c57) +* :wrench: Add browser platform back for FCM branch [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c25a47bd3b5c2437ce3108656449658568f2c053) +* Pin FCM to 9.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/000bc36a8ce2a00e96212b66d69f1597dac68554) +* Add empty google services plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/aa1cc247fcf8b94c4d60d26b18c9229c112e8185) +* :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7f4bcafafe56be18f6dc64f3e634a6de594bc034) +* :memo: Update to using fcm-node [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a3f0eee774c7f9791f55f85816b0aeadc5c4fb4c) +* Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6c796a49c3a44b47f58237d7e7760f5ebc34c371) +* Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/10c5153672dc478dd072274c220200526c313604) +* Refactor GCMIntentService to FCMService [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/aa6e3ce5449accd5397b4eda8a950fd5cebc4f0e) +* Fix topic subscription and unsubscription on FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b65fe745b5eabbb7437a46b46e747be4aaf5116a) +* Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3b5f3c71657d8af3e4407ac9ea6c36e00988b1cf) +* Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/89040874c530c7f86c2acbcce5c3b88b351e80fb) +* fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a1e90013f8ca8497acc2513f4ce3df1358293d51) +* Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0bc1ca736546242772516334f47fd4ea4f8f5e5f) +* Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f7acf338d5bff2bc25b5c1e2fa681b7e20254cc9) +* Added .framework files as custom frameworks [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a65be290d4176c1c0b51b700d673550ae22cf777) +* Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ed630d481b9035eb9df48738c0e77029937fafe9) +* Fixed empty token on android first run (#1008) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c9c53761fa3d6fc99acaa96601e9abc673a62c23) +* Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6c46880b57aa1dee2bbcfeb5a86b497035f46ebe) +* :penguin: android mixpanel pushnotification suport added (#1523) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/951cb6921a717d847c279ad6896c28772c70103f) +* :memo: Making string replacement clearer [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/abdb656315bd4457c7ae43aaa52e2357df85d139) +* :bug::penguin::memo: Issue #1433: Cordova Push V5 register () crashes App when initialized with topicList [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1d5723c81ad7a1e9d76fdce22161e8e8aa8da262) +* :bug::penguin: Issue #1421: Notification delay caused by icon bitmap timeout [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fb4b533f2b31daebc7ed57c16228458def3d2af9) +* :memo: Issue #1442: CocoaPods support vs requirement [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5912b1ea911fbe3b45a3a47ed005b7048a487ba6) +* 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/67041a994d70fd3a04149003607b88947e8cc994) +* Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7dea689ba17ebb901ee12da62801f051a99cc368) +* :apple::bug: Issue #1497: App crashes after refreshing when using FCM (v2) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ea92e039b1d7640b70ca94e5f8748e7d2abbf13a) +* :pencil2: fixing error in CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/498bb038799bd687d8c492154bd3b34d72edd322) +* :memo: Using a newer version on the examples [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/74aba315b4cbb1e06c902e76891bce5582cbe690) +* :penguin::memo::bug: Issue #1470: Cannot install phonegap-plugin-push on master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e2f8a62c431af26c4d2fa487daa704067a088643) +* :bug::apple::wrench: Fixing a merge issue where aps-environment was accidentally removed [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cb9839740c4cbff5711224eed4b91b55aba77612) +* :bug::penguin::memo::arrow_up: #1460: Build Issue Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1bef8b37ef7bc017571924edc9e05fe09cd25e29) +* :bug::apple: Issue #1461: App crashes when initialising with topics (v2.0.0-rc1) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ca5c281897c664b0bd98097ec2fc8c19c33b2c63) +* Fixing my merge error for PR #1378 Optional event emit instead of function call for action buttons [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/170d7dd43fe047c6caf84ec0f59da6c2c0cdeb6f) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fa4e36606c965504dba609940a2acf24f74ed978) +* 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/af6c31933e3daedf6e5a7f046e971efcf65cc1ea) +* :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/99742021c8c6c2cd860c40b01db6a3dc18095dbb) +* :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ff14a71b5e365f5c93159e759f989a6bbe89b40a) +* :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/92dca439e1b0a0750a7e466bace2c4cb3acd19d8) +* :wrench: Add browser platform back for FCM branch [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4cbc1cb69203c5a0fab250bd49b99a398ce86558) +* Pin FCM to 9.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7075bc8206641aa6459cf6acc4fe447fb1d57f77) +* Add empty google services plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d043c5f9d7872dc4340151c0645a24716391f58f) +* :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f7a7c5c172190acab17fdfd54ad726a7a2fad701) +* :memo: Update to using fcm-node [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/15e68b03956a1dd292fda87e0da4f1ad9700d9c0) +* Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/54aa482fb8af6ac15a60fb06090077e1d68dee6c) +* Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1276d538b80106dd2f3d67996a531e64e7aa4937) +* Refactor GCMIntentService to FCMService [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/504f2dcb5b158e0b2e151b255aad28a659bc2c4d) +* Fix topic subscription and unsubscription on FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/97f0aeaa1099b89076b28282b2d2daac7ec62b33) +* Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e11d89f46572d1e4430f1f6a63945d74b56e574c) +* Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fa66ac99685f1f2b580597a45b16315ab7748028) +* fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c539b041cbe2a2b6e9a360a91ee2a9bfdfd16b03) +* Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/dce5e9fb70e4df45a10fd8348a7def64864fdd24) +* Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6f0182aff86b04c22630d1586d6ac6ca617c7e61) +* Added .framework files as custom frameworks [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/562a22f45bdafa4e2887996e9c0fa295b8bac886) +* Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f1d14b2615d7c8330afbdbf0faa1d2438473a45d) +* Fixed empty token on android first run (#1008) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7e4c47b5c5647866f24e6c2f47e4c98a1f8e2442) +* Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a02580e19d470919ec61ec489cdf4ee6ca2f0d8c) ## [v1.10.3](https://github.com/phonegap/phonegap-plugin-push/tree/v1.10.3) (2017-20-04) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v1.10.2...v1.10.3) -- 1.10.3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1e072b351056d453fd1c1d40d5fcac310f3e107c) -- :bookmark: Bumping plugin version to 1.10.3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/29df66eae54e773925e25bd92299957e4d654723) -- :bug: Handle null in getCircleBitmap (#1705) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3acdfa338d7a8b56ec4dc73c50aa9917ecb3be7c) -- :shirt: Issue #1702: The logging tag can be at most 23 characters, was 40 (PushPlugin_BackgroundActionButtonHandler) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2045873acda2e81d54b2da87cd2d10f056bd90f9) -- Shortened log tag PushPlugin_BackgroundActionButtonHandler to bring u… (#1703) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/dd707122b7aa78649fa6f5f73ba9b05436799926) -- :memo: Docs for interoperability with Firebase (#1693) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cebb6403143047192462f30c22b9510a8c6dbe21) -- fix headline (#1685) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e2e7993544eed544eb7286868b60e2e3efb6275d) -- Fix changelog date [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3140b2b00388785f8056632376b50a1d1ef67b96) -- :arrow_up: update pluginpub to 0.0.8 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cfab7d91556a38ee81550fe47e13f2662ae810db) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/027ea2c17e4b96b848ab29046efea243e6e2da27) +* 1.10.3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1e072b351056d453fd1c1d40d5fcac310f3e107c) +* :bookmark: Bumping plugin version to 1.10.3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/29df66eae54e773925e25bd92299957e4d654723) +* :bug: Handle null in getCircleBitmap (#1705) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3acdfa338d7a8b56ec4dc73c50aa9917ecb3be7c) +* :shirt: Issue #1702: The logging tag can be at most 23 characters, was 40 (PushPlugin_BackgroundActionButtonHandler) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2045873acda2e81d54b2da87cd2d10f056bd90f9) +* Shortened log tag PushPlugin_BackgroundActionButtonHandler to bring u… (#1703) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/dd707122b7aa78649fa6f5f73ba9b05436799926) +* :memo: Docs for interoperability with Firebase (#1693) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cebb6403143047192462f30c22b9510a8c6dbe21) +* fix headline (#1685) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e2e7993544eed544eb7286868b60e2e3efb6275d) +* Fix changelog date [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3140b2b00388785f8056632376b50a1d1ef67b96) +* :arrow_up: update pluginpub to 0.0.8 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cfab7d91556a38ee81550fe47e13f2662ae810db) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/027ea2c17e4b96b848ab29046efea243e6e2da27) ## [v1.10.2](https://github.com/phonegap/phonegap-plugin-push/tree/v1.10.2) (2017-04-12) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v1.10.1...v1.10.2) -- 1.10.2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b5a7d4ec6e64abaed65de00be3e9bac9ab25791e) -- :bookmark: Bumping plugin version to 1.10.2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5b700ad9927c401081a5de49f2a6a27ba0dfaa9a) -- :arrow_up: update pluginpub to 0.0.7 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/38564ce55e53e018c91f4063d680eedd2631b825) -- Fix the dates on the CHANGELOG (the last 2 version) (#1676) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c0f26192c906bfc1a60390333c96d5dc07433978) -- Vapid Support (#1675) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/384b60bade628035b21d23f07e284eb6e1557a10) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/97d618fb53084cfae78f397def48df791131358f) +* 1.10.2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b5a7d4ec6e64abaed65de00be3e9bac9ab25791e) +* :bookmark: Bumping plugin version to 1.10.2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5b700ad9927c401081a5de49f2a6a27ba0dfaa9a) +* :arrow_up: update pluginpub to 0.0.7 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/38564ce55e53e018c91f4063d680eedd2631b825) +* Fix the dates on the CHANGELOG (the last 2 version) (#1676) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c0f26192c906bfc1a60390333c96d5dc07433978) +* Vapid Support (#1675) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/384b60bade628035b21d23f07e284eb6e1557a10) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/97d618fb53084cfae78f397def48df791131358f) ## [v1.10.1](https://github.com/phonegap/phonegap-plugin-push/tree/v1.10.1) (2017-04-07) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v1.10.0...v1.10.1) -- 1.10.1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6211e8c3df8881a90d19b111a0e63f890d435df6) -- :bookmark: Bumping plugin version to 1.10.1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6d710a06681ad84c13273fe5d20feb3033ac67b6) -- :bug: Issue #1655: App opens on clearing notification (Android) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ff417925f6d6678f0fcd8315d5f4b4b08fbb9085) -- :memo: Issue #1118: Problem with notifications stacking [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d669c44a863d86d0bb73b5ae086bc2fe6f8113a9) -- :memo: Issue #1220: [Question] the hook setting seem not work [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4ef137eea370da7c225ab2a5cf63b1e97a68f4a4) -- Set get badge count android (#1644) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/630907cf3d8802bcd5d91b6bd768c989f6ef897a) -- Add plugin typings from DefinitelyTyped (#1654) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6ea70d9984e176a75602e72e1d26f5404c519e29) -- :arrow_up: Issue #1560: setApplicationIconBadgeNumber not working on Android but firing success function [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/700701fd2151667905d860228cf954301186721a) -- :memo: Issue #1618: No notification when app is closed on Android, not at all on iOS [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7f64bf0ffbddf3ef20de2fe540ec2718be5d0c23) -- :arrow_down: Issue #1560: setApplicationIconBadgeNumber not working on Android but firing success function [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e450fd7b623f27f27858a7537ec7950aa0f618b5) -- :arrow_up: Issue #1560: setApplicationIconBadgeNumber not working on Android but firing success function [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4af3472263a5125cab6f08bbb59b83bf957144ec) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ed25a3e3ad9fb6f2af63fd07957944f974eafaa1) +* 1.10.1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6211e8c3df8881a90d19b111a0e63f890d435df6) +* :bookmark: Bumping plugin version to 1.10.1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6d710a06681ad84c13273fe5d20feb3033ac67b6) +* :bug: Issue #1655: App opens on clearing notification (Android) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ff417925f6d6678f0fcd8315d5f4b4b08fbb9085) +* :memo: Issue #1118: Problem with notifications stacking [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d669c44a863d86d0bb73b5ae086bc2fe6f8113a9) +* :memo: Issue #1220: [Question] the hook setting seem not work [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4ef137eea370da7c225ab2a5cf63b1e97a68f4a4) +* Set get badge count android (#1644) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/630907cf3d8802bcd5d91b6bd768c989f6ef897a) +* Add plugin typings from DefinitelyTyped (#1654) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6ea70d9984e176a75602e72e1d26f5404c519e29) +* :arrow_up: Issue #1560: setApplicationIconBadgeNumber not working on Android but firing success function [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/700701fd2151667905d860228cf954301186721a) +* :memo: Issue #1618: No notification when app is closed on Android, not at all on iOS [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7f64bf0ffbddf3ef20de2fe540ec2718be5d0c23) +* :arrow_down: Issue #1560: setApplicationIconBadgeNumber not working on Android but firing success function [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e450fd7b623f27f27858a7537ec7950aa0f618b5) +* :arrow_up: Issue #1560: setApplicationIconBadgeNumber not working on Android but firing success function [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4af3472263a5125cab6f08bbb59b83bf957144ec) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ed25a3e3ad9fb6f2af63fd07957944f974eafaa1) ## [v1.10.0](https://github.com/phonegap/phonegap-plugin-push/tree/v1.10.0) (2017-03-10) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v1.9.4...v1.10.0) -- 1.10.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6b9b862da8566c7717dfc79dd6b32d8a7e6774d8) -- :bookmark: Bumping plugin version to 1.10.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/626e9615fbff6ea225569ab58353ac7f58aef495) -- :heavy_plus_sign: update pluginpub version [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c3c8058ffee888447017eb5d8c0f4f30cbcd090f) -- Issue #1464: Create round bitmap icon for large icon image passed in from local resource or url (#1635) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0dd0d468868f0b13c8d840c78dd89fca5920cd32) -- Receive notification only from SENDER_ID (#1484) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a0d51e54aac39b8c58e4c67080f174c0228947c9) -- Add no-cache flag to payload (#1620) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/42f8cefbd187c36534e6ab59b6611fb7f15b91f0) -- Add dismiss key to on notification data (#1621) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4259bb3cacfe2561ed44e9f16bd74f8d5ae45ae2) -- return true for old android versions, since AppOpsManager is available starting at 19 (#1634) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/945aa2ad6d266e82683e0bee86f53d258f2b31b6) -- :art: remove reference to unused String [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/75f2191632a7a51eda7510a172ae6cc9d477acb9) -- Ability to use custom keys to find message title and text on Android (#1604) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fd366296773906c91d5f8dfa3e8ba813c7c71b85) -- :memo: Fixed URL of apples custom sound documentation (#1600) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8c93f8622eb1c453cb0c681158a07deca32bf200) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/409020c90edf04e0a37232cff8aadb070d4ccaa9) +* 1.10.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6b9b862da8566c7717dfc79dd6b32d8a7e6774d8) +* :bookmark: Bumping plugin version to 1.10.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/626e9615fbff6ea225569ab58353ac7f58aef495) +* :heavy_plus_sign: update pluginpub version [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c3c8058ffee888447017eb5d8c0f4f30cbcd090f) +* Issue #1464: Create round bitmap icon for large icon image passed in from local resource or url (#1635) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0dd0d468868f0b13c8d840c78dd89fca5920cd32) +* Receive notification only from SENDER_ID (#1484) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a0d51e54aac39b8c58e4c67080f174c0228947c9) +* Add no-cache flag to payload (#1620) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/42f8cefbd187c36534e6ab59b6611fb7f15b91f0) +* Add dismiss key to on notification data (#1621) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4259bb3cacfe2561ed44e9f16bd74f8d5ae45ae2) +* return true for old android versions, since AppOpsManager is available starting at 19 (#1634) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/945aa2ad6d266e82683e0bee86f53d258f2b31b6) +* :art: remove reference to unused String [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/75f2191632a7a51eda7510a172ae6cc9d477acb9) +* Ability to use custom keys to find message title and text on Android (#1604) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fd366296773906c91d5f8dfa3e8ba813c7c71b85) +* :memo: Fixed URL of apples custom sound documentation (#1600) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8c93f8622eb1c453cb0c681158a07deca32bf200) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/409020c90edf04e0a37232cff8aadb070d4ccaa9) ## [v1.9.4](https://github.com/phonegap/phonegap-plugin-push/tree/v1.9.4) (2016-07-09) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v1.9.3...v1.9.4) -- 1.9.4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2241c7431cd60a68d2f35e7b4a5bfd797d5161b6) -- Bumping plugin version to 1.9.4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ec47932bf8fdf9cd96db076fe56306ab230048d9) -- Issue #1591: App crashes with the latest updates of Android SDK with plugin v-1.9.2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/514c21366ab37001ca323bec58261e023edaefd7) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3a218e4c68ebc1088461c2cfec966e57eaa24089) +* 1.9.4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2241c7431cd60a68d2f35e7b4a5bfd797d5161b6) +* Bumping plugin version to 1.9.4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ec47932bf8fdf9cd96db076fe56306ab230048d9) +* Issue #1591: App crashes with the latest updates of Android SDK with plugin v-1.9.2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/514c21366ab37001ca323bec58261e023edaefd7) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3a218e4c68ebc1088461c2cfec966e57eaa24089) ## [v1.9.3](https://github.com/phonegap/phonegap-plugin-push/tree/v1.9.3) (2016-07-09) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v1.9.2...v1.9.3) -- 1.9.3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/42723d6609862aa950abce67b2a637736bdd9e99) -- :bookmark: Bumping plugin version to 1.9.3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8f7b7dc003a2bc5bab7a316b0e2b0cf475c5a449) -- :wrench: Add valid SPDX license expression [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4274d0759acd7110ed2592ed1d2ce3bf692711d3) -- :memo: Issue #1587: v2.0.0-rc2: .on('notification') event not fired when background notification in Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7e90853a09a2c49f29e12eed03977b08b1295387) -- :arrow_up: Issue #1560: setApplicationIconBadgeNumber not working on Android but firing success function [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3188a3907f50dcf625b7663ecf74ea9a9209d437) -- :memo: Issue #1557: push.on('notification') not triggered - Ionic [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b91e9420fb68c4efc943cc5f8ecbd81274ffcbec) -- :memo: Issue #1407: Uncaught (in promise): Error: Push plugin not found! [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/adf3eabb8871980d2dead7ecb8185ad0da1d6b46) -- Corrected merges usage to prevent possible conflicts with other plugins (#1538) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/00c67cb2c85e97dfe4f7020f28ad4d954458599f) -- :penguin: android mixpanel pushnotification suport added (#1523) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/951cb6921a717d847c279ad6896c28772c70103f) -- :memo: Making string replacement clearer [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/abdb656315bd4457c7ae43aaa52e2357df85d139) -- :bug::penguin::memo: Issue #1433: Cordova Push V5 register () crashes App when initialized with topicList [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1d5723c81ad7a1e9d76fdce22161e8e8aa8da262) -- :bug::penguin: Issue #1421: Notification delay caused by icon bitmap timeout [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fb4b533f2b31daebc7ed57c16228458def3d2af9) -- :memo: Issue #1442: CocoaPods support vs requirement [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5912b1ea911fbe3b45a3a47ed005b7048a487ba6) -- make google_app_id non translatable string (#1485) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d9890fa52ecdb41b344f06f1dd081d05ea784bea) -- :penguin::bug: Issue #1474: Android: force-start starts the app in Foreground instead of Background [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2bb5f53a8478353ed1f5f97756adff336fb9a710) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e02ff6703a53cb18e53060e2d7f6f64ebc8588b6) +* 1.9.3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/42723d6609862aa950abce67b2a637736bdd9e99) +* :bookmark: Bumping plugin version to 1.9.3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8f7b7dc003a2bc5bab7a316b0e2b0cf475c5a449) +* :wrench: Add valid SPDX license expression [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4274d0759acd7110ed2592ed1d2ce3bf692711d3) +* :memo: Issue #1587: v2.0.0-rc2: .on('notification') event not fired when background notification in Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7e90853a09a2c49f29e12eed03977b08b1295387) +* :arrow_up: Issue #1560: setApplicationIconBadgeNumber not working on Android but firing success function [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3188a3907f50dcf625b7663ecf74ea9a9209d437) +* :memo: Issue #1557: push.on('notification') not triggered - Ionic [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b91e9420fb68c4efc943cc5f8ecbd81274ffcbec) +* :memo: Issue #1407: Uncaught (in promise): Error: Push plugin not found! [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/adf3eabb8871980d2dead7ecb8185ad0da1d6b46) +* Corrected merges usage to prevent possible conflicts with other plugins (#1538) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/00c67cb2c85e97dfe4f7020f28ad4d954458599f) +* :penguin: android mixpanel pushnotification suport added (#1523) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/951cb6921a717d847c279ad6896c28772c70103f) +* :memo: Making string replacement clearer [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/abdb656315bd4457c7ae43aaa52e2357df85d139) +* :bug::penguin::memo: Issue #1433: Cordova Push V5 register () crashes App when initialized with topicList [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1d5723c81ad7a1e9d76fdce22161e8e8aa8da262) +* :bug::penguin: Issue #1421: Notification delay caused by icon bitmap timeout [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fb4b533f2b31daebc7ed57c16228458def3d2af9) +* :memo: Issue #1442: CocoaPods support vs requirement [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5912b1ea911fbe3b45a3a47ed005b7048a487ba6) +* make google_app_id non translatable string (#1485) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d9890fa52ecdb41b344f06f1dd081d05ea784bea) +* :penguin::bug: Issue #1474: Android: force-start starts the app in Foreground instead of Background [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2bb5f53a8478353ed1f5f97756adff336fb9a710) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e02ff6703a53cb18e53060e2d7f6f64ebc8588b6) ## [v2.0.0-rc2](https://github.com/phonegap/phonegap-plugin-push/tree/v2.0.0-rc2) (2016-07-09) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v2.0.0-rc1...v2.0.0-rc2) -- 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/67041a994d70fd3a04149003607b88947e8cc994) -- Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7dea689ba17ebb901ee12da62801f051a99cc368) -- :apple::bug: Issue #1497: App crashes after refreshing when using FCM (v2) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ea92e039b1d7640b70ca94e5f8748e7d2abbf13a) -- :pencil2: fixing error in CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/498bb038799bd687d8c492154bd3b34d72edd322) -- :memo: Using a newer version on the examples [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/74aba315b4cbb1e06c902e76891bce5582cbe690) -- :penguin::memo::bug: Issue #1470: Cannot install phonegap-plugin-push on master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e2f8a62c431af26c4d2fa487daa704067a088643) -- :bug::apple::wrench: Fixing a merge issue where aps-environment was accidentally removed [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cb9839740c4cbff5711224eed4b91b55aba77612) -- :bug::penguin::memo::arrow_up: #1460: Build Issue Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1bef8b37ef7bc017571924edc9e05fe09cd25e29) -- :bug::apple: Issue #1461: App crashes when initialising with topics (v2.0.0-rc1) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ca5c281897c664b0bd98097ec2fc8c19c33b2c63) -- Fixing my merge error for PR #1378 Optional event emit instead of function call for action buttons [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/170d7dd43fe047c6caf84ec0f59da6c2c0cdeb6f) +* 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/67041a994d70fd3a04149003607b88947e8cc994) +* Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7dea689ba17ebb901ee12da62801f051a99cc368) +* :apple::bug: Issue #1497: App crashes after refreshing when using FCM (v2) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ea92e039b1d7640b70ca94e5f8748e7d2abbf13a) +* :pencil2: fixing error in CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/498bb038799bd687d8c492154bd3b34d72edd322) +* :memo: Using a newer version on the examples [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/74aba315b4cbb1e06c902e76891bce5582cbe690) +* :penguin::memo::bug: Issue #1470: Cannot install phonegap-plugin-push on master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e2f8a62c431af26c4d2fa487daa704067a088643) +* :bug::apple::wrench: Fixing a merge issue where aps-environment was accidentally removed [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cb9839740c4cbff5711224eed4b91b55aba77612) +* :bug::penguin::memo::arrow_up: #1460: Build Issue Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1bef8b37ef7bc017571924edc9e05fe09cd25e29) +* :bug::apple: Issue #1461: App crashes when initialising with topics (v2.0.0-rc1) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ca5c281897c664b0bd98097ec2fc8c19c33b2c63) +* Fixing my merge error for PR #1378 Optional event emit instead of function call for action buttons [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/170d7dd43fe047c6caf84ec0f59da6c2c0cdeb6f) ## [v2.0.0-rc1](https://github.com/phonegap/phonegap-plugin-push/tree/v2.0.0-rc1) (2016-07-09) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v1.9.1...v2.0.0-rc1) -- 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/46a44f92ca8f94c991a564a5a8ff1e424c4b7f7f) -- :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b952330124ab76d6a8ec88ebdb7eac0a614f8c38) -- :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6ec1beb2ab13d6333122b76122ae4eb2e60dfb55) -- :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fab033596c66ee1c9594d404fec8473a4dd41e77) -- :wrench: Add browser platform back for FCM branch [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/07f28d8dbc477faeb2a8dd8997fde0d088dd191a) -- Pin FCM to 9.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ba16ce363a198edd0d190e9603a5e1363289a893) -- Add empty google services plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a47af30d32c6921b484c1c129cd60582e1b3047b) -- :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c9f4a5d6d6f18082ae9e5a533a700cf3662c2739) -- :memo: Update to using fcm-node [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/368f6cbb8095fd742bb39308e02fac7f89379f18) -- Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a3e0eefe09359612d6757d4598eba69e3d68a96b) -- Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d6d527628f8811ab6781591b3c186ce2732c9f37) -- Refactor GCMIntentService to FCMService [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/26b0369f148976e4227f73f5883658a726f825dd) -- Fix topic subscription and unsubscription on FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b4d850028b088c38bbd11c1899e28ea69b1c391e) -- Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/417be691c8131f006a7f1bd49bc171faa36ee872) -- Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e34ddc03b01e676382a6d70e1e750a4e64ca6d62) -- fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/732a2bd8efbfbea696db6951439e2472d6dc8e6f) -- Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8d44ccfdfe91831140e4e972d6879b6330a1c613) -- Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a18d50324ab96945db382539ce2ed7a287bed840) -- Added .framework files as custom frameworks [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/72875ac0aef0f9d00de6413e0dea4d7533c5eaef) -- Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2bd37d1b31ca0b2c76c89a04a803b22186d1f8ad) -- Fixed empty token on android first run (#1008) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fda1f905c4364a3ac100486dc639fdd5c3bae9ca) -- Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b6acbfeacf851bab256962616ba2bd93150982ba) -- :memo: Issue #1235: SecurityError: Only secure origins are allowed (see: https://goo.gl/Y0ZkNV) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5241a6f3868b4b15f79c6d5c0b5b5ea45e6301f9) -- :memo: Issue #1415: What is the id in push.finish? [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2660b51da66e791ff342d027ea6afa4313281e28) -- :memo: Issue #1420: Update PLATFORM_SUPPORT.md [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/60ad23affaf2dc4c9c2bf48b6cbb702b0217aeb7) -- :memo: Adding more emoji for commit messages [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/eb6b7b7d52770769719392b9b5226ee9a7caef75) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f38fd3d4d9f5f4f8de602b6aa07089b706884ca5) +* 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/46a44f92ca8f94c991a564a5a8ff1e424c4b7f7f) +* :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b952330124ab76d6a8ec88ebdb7eac0a614f8c38) +* :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6ec1beb2ab13d6333122b76122ae4eb2e60dfb55) +* :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fab033596c66ee1c9594d404fec8473a4dd41e77) +* :wrench: Add browser platform back for FCM branch [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/07f28d8dbc477faeb2a8dd8997fde0d088dd191a) +* Pin FCM to 9.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ba16ce363a198edd0d190e9603a5e1363289a893) +* Add empty google services plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a47af30d32c6921b484c1c129cd60582e1b3047b) +* :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c9f4a5d6d6f18082ae9e5a533a700cf3662c2739) +* :memo: Update to using fcm-node [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/368f6cbb8095fd742bb39308e02fac7f89379f18) +* Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a3e0eefe09359612d6757d4598eba69e3d68a96b) +* Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d6d527628f8811ab6781591b3c186ce2732c9f37) +* Refactor GCMIntentService to FCMService [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/26b0369f148976e4227f73f5883658a726f825dd) +* Fix topic subscription and unsubscription on FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b4d850028b088c38bbd11c1899e28ea69b1c391e) +* Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/417be691c8131f006a7f1bd49bc171faa36ee872) +* Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e34ddc03b01e676382a6d70e1e750a4e64ca6d62) +* fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/732a2bd8efbfbea696db6951439e2472d6dc8e6f) +* Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8d44ccfdfe91831140e4e972d6879b6330a1c613) +* Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a18d50324ab96945db382539ce2ed7a287bed840) +* Added .framework files as custom frameworks [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/72875ac0aef0f9d00de6413e0dea4d7533c5eaef) +* Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2bd37d1b31ca0b2c76c89a04a803b22186d1f8ad) +* Fixed empty token on android first run (#1008) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fda1f905c4364a3ac100486dc639fdd5c3bae9ca) +* Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b6acbfeacf851bab256962616ba2bd93150982ba) +* :memo: Issue #1235: SecurityError: Only secure origins are allowed (see: https://goo.gl/Y0ZkNV) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5241a6f3868b4b15f79c6d5c0b5b5ea45e6301f9) +* :memo: Issue #1415: What is the id in push.finish? [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2660b51da66e791ff342d027ea6afa4313281e28) +* :memo: Issue #1420: Update PLATFORM_SUPPORT.md [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/60ad23affaf2dc4c9c2bf48b6cbb702b0217aeb7) +* :memo: Adding more emoji for commit messages [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/eb6b7b7d52770769719392b9b5226ee9a7caef75) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f38fd3d4d9f5f4f8de602b6aa07089b706884ca5) ## [v2.0.0-rc2](https://github.com/phonegap/phonegap-plugin-push/tree/v2.0.0-rc2) (2016-07-09) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v2.0.0-rc1...v2.0.0-rc2) -- 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/67041a994d70fd3a04149003607b88947e8cc994) -- Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7dea689ba17ebb901ee12da62801f051a99cc368) -- :apple::bug: Issue #1497: App crashes after refreshing when using FCM (v2) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ea92e039b1d7640b70ca94e5f8748e7d2abbf13a) -- :pencil2: fixing error in CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/498bb038799bd687d8c492154bd3b34d72edd322) -- :memo: Using a newer version on the examples [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/74aba315b4cbb1e06c902e76891bce5582cbe690) -- :penguin::memo::bug: Issue #1470: Cannot install phonegap-plugin-push on master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e2f8a62c431af26c4d2fa487daa704067a088643) -- :bug::apple::wrench: Fixing a merge issue where aps-environment was accidentally removed [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cb9839740c4cbff5711224eed4b91b55aba77612) -- :bug::penguin::memo::arrow_up: #1460: Build Issue Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1bef8b37ef7bc017571924edc9e05fe09cd25e29) -- :bug::apple: Issue #1461: App crashes when initialising with topics (v2.0.0-rc1) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ca5c281897c664b0bd98097ec2fc8c19c33b2c63) -- Fixing my merge error for PR #1378 Optional event emit instead of function call for action buttons [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/170d7dd43fe047c6caf84ec0f59da6c2c0cdeb6f) +* 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/67041a994d70fd3a04149003607b88947e8cc994) +* Bumping plugin version to 2.0.0-rc2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7dea689ba17ebb901ee12da62801f051a99cc368) +* :apple::bug: Issue #1497: App crashes after refreshing when using FCM (v2) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ea92e039b1d7640b70ca94e5f8748e7d2abbf13a) +* :pencil2: fixing error in CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/498bb038799bd687d8c492154bd3b34d72edd322) +* :memo: Using a newer version on the examples [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/74aba315b4cbb1e06c902e76891bce5582cbe690) +* :penguin::memo::bug: Issue #1470: Cannot install phonegap-plugin-push on master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e2f8a62c431af26c4d2fa487daa704067a088643) +* :bug::apple::wrench: Fixing a merge issue where aps-environment was accidentally removed [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cb9839740c4cbff5711224eed4b91b55aba77612) +* :bug::penguin::memo::arrow_up: #1460: Build Issue Android [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1bef8b37ef7bc017571924edc9e05fe09cd25e29) +* :bug::apple: Issue #1461: App crashes when initialising with topics (v2.0.0-rc1) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ca5c281897c664b0bd98097ec2fc8c19c33b2c63) +* Fixing my merge error for PR #1378 Optional event emit instead of function call for action buttons [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/170d7dd43fe047c6caf84ec0f59da6c2c0cdeb6f) ## [v2.0.0-rc1](https://github.com/phonegap/phonegap-plugin-push/tree/v2.0.0-rc1) (2016-07-09) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v1.9.1...v2.0.0-rc1) -- 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/46a44f92ca8f94c991a564a5a8ff1e424c4b7f7f) -- :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b952330124ab76d6a8ec88ebdb7eac0a614f8c38) -- :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6ec1beb2ab13d6333122b76122ae4eb2e60dfb55) -- :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fab033596c66ee1c9594d404fec8473a4dd41e77) -- :wrench: Add browser platform back for FCM branch [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/07f28d8dbc477faeb2a8dd8997fde0d088dd191a) -- Pin FCM to 9.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ba16ce363a198edd0d190e9603a5e1363289a893) -- Add empty google services plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a47af30d32c6921b484c1c129cd60582e1b3047b) -- :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c9f4a5d6d6f18082ae9e5a533a700cf3662c2739) -- :memo: Update to using fcm-node [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/368f6cbb8095fd742bb39308e02fac7f89379f18) -- Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a3e0eefe09359612d6757d4598eba69e3d68a96b) -- Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d6d527628f8811ab6781591b3c186ce2732c9f37) -- Refactor GCMIntentService to FCMService [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/26b0369f148976e4227f73f5883658a726f825dd) -- Fix topic subscription and unsubscription on FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b4d850028b088c38bbd11c1899e28ea69b1c391e) -- Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/417be691c8131f006a7f1bd49bc171faa36ee872) -- Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e34ddc03b01e676382a6d70e1e750a4e64ca6d62) -- fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/732a2bd8efbfbea696db6951439e2472d6dc8e6f) -- Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8d44ccfdfe91831140e4e972d6879b6330a1c613) -- Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a18d50324ab96945db382539ce2ed7a287bed840) -- Added .framework files as custom frameworks [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/72875ac0aef0f9d00de6413e0dea4d7533c5eaef) -- Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2bd37d1b31ca0b2c76c89a04a803b22186d1f8ad) -- Fixed empty token on android first run (#1008) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fda1f905c4364a3ac100486dc639fdd5c3bae9ca) -- Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b6acbfeacf851bab256962616ba2bd93150982ba) -- :memo: Issue #1235: SecurityError: Only secure origins are allowed (see: https://goo.gl/Y0ZkNV) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5241a6f3868b4b15f79c6d5c0b5b5ea45e6301f9) -- :memo: Issue #1415: What is the id in push.finish? [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2660b51da66e791ff342d027ea6afa4313281e28) -- :memo: Issue #1420: Update PLATFORM_SUPPORT.md [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/60ad23affaf2dc4c9c2bf48b6cbb702b0217aeb7) -- :memo: Adding more emoji for commit messages [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/eb6b7b7d52770769719392b9b5226ee9a7caef75) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f38fd3d4d9f5f4f8de602b6aa07089b706884ca5) +* 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/46a44f92ca8f94c991a564a5a8ff1e424c4b7f7f) +* :bookmark: Bumping plugin version to 2.0.0-rc1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b952330124ab76d6a8ec88ebdb7eac0a614f8c38) +* :wrench: add tern to gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6ec1beb2ab13d6333122b76122ae4eb2e60dfb55) +* :hammer::wrench::arrow_up: Use Babel to transpile ES2015 code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fab033596c66ee1c9594d404fec8473a4dd41e77) +* :wrench: Add browser platform back for FCM branch [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/07f28d8dbc477faeb2a8dd8997fde0d088dd191a) +* Pin FCM to 9.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ba16ce363a198edd0d190e9603a5e1363289a893) +* Add empty google services plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a47af30d32c6921b484c1c129cd60582e1b3047b) +* :bug: Issue #1188: Strings.xml google_app_id conflict with google-services.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c9f4a5d6d6f18082ae9e5a533a700cf3662c2739) +* :memo: Update to using fcm-node [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/368f6cbb8095fd742bb39308e02fac7f89379f18) +* Issue #689: Remove sender id from PushNotification init iOS options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a3e0eefe09359612d6757d4598eba69e3d68a96b) +* Issue #689: Remove sender id from PushNotification init Android options [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d6d527628f8811ab6781591b3c186ce2732c9f37) +* Refactor GCMIntentService to FCMService [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/26b0369f148976e4227f73f5883658a726f825dd) +* Fix topic subscription and unsubscription on FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b4d850028b088c38bbd11c1899e28ea69b1c391e) +* Fix rebase errors [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/417be691c8131f006a7f1bd49bc171faa36ee872) +* Use CocoaPods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e34ddc03b01e676382a6d70e1e750a4e64ca6d62) +* fixed registration and removed unused code [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/732a2bd8efbfbea696db6951439e2472d6dc8e6f) +* Added hook and resource file to copy GoogleService-Info.plist [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8d44ccfdfe91831140e4e972d6879b6330a1c613) +* Changed code to work with FCM [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a18d50324ab96945db382539ce2ed7a287bed840) +* Added .framework files as custom frameworks [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/72875ac0aef0f9d00de6413e0dea4d7533c5eaef) +* Removed GCM files and added FCM files [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2bd37d1b31ca0b2c76c89a04a803b22186d1f8ad) +* Fixed empty token on android first run (#1008) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/fda1f905c4364a3ac100486dc639fdd5c3bae9ca) +* Added partial Android FCM support (#975) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b6acbfeacf851bab256962616ba2bd93150982ba) +* :memo: Issue #1235: SecurityError: Only secure origins are allowed (see: https://goo.gl/Y0ZkNV) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/5241a6f3868b4b15f79c6d5c0b5b5ea45e6301f9) +* :memo: Issue #1415: What is the id in push.finish? [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2660b51da66e791ff342d027ea6afa4313281e28) +* :memo: Issue #1420: Update PLATFORM_SUPPORT.md [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/60ad23affaf2dc4c9c2bf48b6cbb702b0217aeb7) +* :memo: Adding more emoji for commit messages [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/eb6b7b7d52770769719392b9b5226ee9a7caef75) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f38fd3d4d9f5f4f8de602b6aa07089b706884ca5) ## [v1.9.2](https://github.com/phonegap/phonegap-plugin-push/tree/v1.9.2) (2016-07-09) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v1.9.1...v1.9.2) -- 1.9.2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ef3de3281205b1fd56c57c71db31dc06a95da7a9) -- :bookmark: Bumping plugin version to 1.9.2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/24650bad4db49525505e9a2624ff1b5500e6b3ef) -- Optional event emit instead of function call for action buttons (#1378) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e92e951e759fe64d17d01e152575b6262973380a) -- Ensures foreground is true when inline is set to true and Android version is earlier than N (#1459) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/dd61ec34c0ca5c3fadf6797a8e192b9343324f68) +* 1.9.2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ef3de3281205b1fd56c57c71db31dc06a95da7a9) +* :bookmark: Bumping plugin version to 1.9.2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/24650bad4db49525505e9a2624ff1b5500e6b3ef) +* Optional event emit instead of function call for action buttons (#1378) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e92e951e759fe64d17d01e152575b6262973380a) +* Ensures foreground is true when inline is set to true and Android version is earlier than N (#1459) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/dd61ec34c0ca5c3fadf6797a8e192b9343324f68) ## [v1.9.1](https://github.com/phonegap/phonegap-plugin-push/tree/v1.9.1) (2016-07-09) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v1.9.0...v1.9.1) -- 1.9.1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6178688d10fc9fd5770795e5caa3f402d3fec574) -- Bumping plugin version to 1.9.1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4d0d2d0c0f19305189bbc7db11c56abfcb0e629a) -- :bug: Issue #1412: push.subscribe 'not a function' error [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1c0c0bcac7ae4a0fe8a7c54e2f00fdba90ff5207) -- :memo: Add emoji guide to CONTRIBUTING [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/dce845fde55429c36a885a4711e04a73904ab9c0) -- Issue #1342: Fail to add 1.9.0 to ios platform [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7481e286607dacf01327c9f6d5a7c21acc5eeba1) -- Issue #1402: force-start:1 brings a killed application to foreground, not background [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/256f28fa08da4aab9691d628a3150022b67da02d) -- Issue #1400: Version 1.9.0 on PGB not working [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c45228a892c602b8616d165ccf142eac0ff2f7f2) -- Merge pull request #1398 from getlarky/android-badge-documentation [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6884df95602a15c219846bbcdb01ce1285d660bb) -- Warn about android badge support in documentation [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2842de212b11a76580865c6ee0d6a1b7b42d030e) -- Enahancement : Add custom permission for PushHandlerActivity (#1362) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e15fdc442030648daabc79a44ae72b2d14b7c1d2) -- Issue #1248: upgrade ShortcutBadger version to latest [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4ab1cf0f0747b1f122f1f43c4af67db37dd0e443) -- Merge pull request #1361 from pataar/master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/29ec1e241036611c6a3a2c71d2a61860427be5d0) -- Fix minor typos in INSTALLATION.md [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/840b0e06cb2643635cfb882de9a35202799f3953) -- Add mimimum cordova versions to installation docs [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/dcb528384dfd7f65410545b842e16ef89277ff7b) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e268a0dceff248b703ae75ff7923b7b3d673aeee) +* 1.9.1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6178688d10fc9fd5770795e5caa3f402d3fec574) +* Bumping plugin version to 1.9.1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4d0d2d0c0f19305189bbc7db11c56abfcb0e629a) +* :bug: Issue #1412: push.subscribe 'not a function' error [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1c0c0bcac7ae4a0fe8a7c54e2f00fdba90ff5207) +* :memo: Add emoji guide to CONTRIBUTING [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/dce845fde55429c36a885a4711e04a73904ab9c0) +* Issue #1342: Fail to add 1.9.0 to ios platform [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/7481e286607dacf01327c9f6d5a7c21acc5eeba1) +* Issue #1402: force-start:1 brings a killed application to foreground, not background [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/256f28fa08da4aab9691d628a3150022b67da02d) +* Issue #1400: Version 1.9.0 on PGB not working [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/c45228a892c602b8616d165ccf142eac0ff2f7f2) +* Merge pull request #1398 from getlarky/android-badge-documentation [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6884df95602a15c219846bbcdb01ce1285d660bb) +* Warn about android badge support in documentation [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2842de212b11a76580865c6ee0d6a1b7b42d030e) +* Enahancement : Add custom permission for PushHandlerActivity (#1362) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e15fdc442030648daabc79a44ae72b2d14b7c1d2) +* Issue #1248: upgrade ShortcutBadger version to latest [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4ab1cf0f0747b1f122f1f43c4af67db37dd0e443) +* Merge pull request #1361 from pataar/master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/29ec1e241036611c6a3a2c71d2a61860427be5d0) +* Fix minor typos in INSTALLATION.md [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/840b0e06cb2643635cfb882de9a35202799f3953) +* Add mimimum cordova versions to installation docs [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/dcb528384dfd7f65410545b842e16ef89277ff7b) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e268a0dceff248b703ae75ff7923b7b3d673aeee) ## [v1.9.0](https://github.com/phonegap/phonegap-plugin-push/tree/v1.9.0) (2016-07-09) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v1.8.4...v1.9.0) -- 1.9.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e5b7f22299d900a37064a783da43905ad73c58bf) -- Bumping plugin version to 1.9.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/dc6a11db4157e1070e48e073a8a78401f185d324) -- Prepare for 1.9.0 release [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0f889bfb5e612ef3ffbc1466deabfe9eb99b760b) -- Update gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d70bad64564444c01e59ff494b8ba09d190d3dbb) -- Bumping plugin version to 1.9.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/600993e7739a0a84ef77b60c4a1457f8aea084b6) -- Issue #1154: Register fail iOS 10 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e6013d49ecf0025be10fb6bb87152ee4025b5df4) -- Issue #1337: Build failed, invalid package.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8631666e4654fd6acafa6cf160cc59424e912ceb) -- Set default SENDER_ID [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/82ca365f4d6d91b18fc28c338a647a2622e60f6e) -- Issue #158: Notification Event Not Firing When Closed Through App Launcher [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ca18653d6ff332db41f48824a2d65bd2699ed8bc) -- Merge branch 'master' of https://github.com/hanicker/phonegap-plugin-push into hanicker-master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/43402909d3b2d5c6ff518cc69e401dc918b585aa) -- Update plugin to use GCM Cocoapods reference in plugin.xml (#1183) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b639d83fe125d5b77720d130ccec53af3a5f3d91) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e4779de2a5996703ba70656630f35d79415d1af8) -- feat(forced restart, notify javascript) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8c03beff9a5a83927b7020ee04c3ed541de04edd) -- restart application after force close (#158 #333) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8b7c972dbf617f22218c178d74368b35521eecb9) +* 1.9.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e5b7f22299d900a37064a783da43905ad73c58bf) +* Bumping plugin version to 1.9.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/dc6a11db4157e1070e48e073a8a78401f185d324) +* Prepare for 1.9.0 release [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0f889bfb5e612ef3ffbc1466deabfe9eb99b760b) +* Update gitignore [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d70bad64564444c01e59ff494b8ba09d190d3dbb) +* Bumping plugin version to 1.9.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/600993e7739a0a84ef77b60c4a1457f8aea084b6) +* Issue #1154: Register fail iOS 10 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e6013d49ecf0025be10fb6bb87152ee4025b5df4) +* Issue #1337: Build failed, invalid package.json [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8631666e4654fd6acafa6cf160cc59424e912ceb) +* Set default SENDER_ID [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/82ca365f4d6d91b18fc28c338a647a2622e60f6e) +* Issue #158: Notification Event Not Firing When Closed Through App Launcher [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ca18653d6ff332db41f48824a2d65bd2699ed8bc) +* Merge branch 'master' of https://github.com/hanicker/phonegap-plugin-push into hanicker-master [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/43402909d3b2d5c6ff518cc69e401dc918b585aa) +* Update plugin to use GCM Cocoapods reference in plugin.xml (#1183) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b639d83fe125d5b77720d130ccec53af3a5f3d91) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e4779de2a5996703ba70656630f35d79415d1af8) +* feat(forced restart, notify javascript) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8c03beff9a5a83927b7020ee04c3ed541de04edd) +* restart application after force close (#158 #333) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8b7c972dbf617f22218c178d74368b35521eecb9) ## [v1.8.4](https://github.com/phonegap/phonegap-plugin-push/tree/v1.8.4) (2016-07-09) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v1.8.3...v1.8.4) -- 1.8.4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4b18505a2c30e17564c0e80060f0524968aa0d40) -- Bumping plugin version to 1.8.4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/046c727f58a6fa675a5f49c10334095cd4282884) -- Issue #1251: [Android] deviceId persists between uninstalls, but is invalid after an uninstall [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8a7bbe5cba186d9685f31adc07e25bd908409498) -- Merge pull request #1323 from hung-doan/issue-1319 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/021f0abd9a49fb83d19faca3ffb7d142759bb01a) -- Update GCM to 9.8+ issue #1319 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/450e0e01b9bcd747a49081c4a0d6ce998c37478a) -- Support Twilio Notify (#1306) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a9bb3bf0a2ca57f68eafc39070fc125746bbbb23) -- Cache multiple Android action button pushes if app is not running (#1272) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d0547bab04c292024dc6ed41939590fba01115ff) -- Add sub/unsub tests [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3bf9ff5f04e10622d7d9ff47a9bd57a829ee9eef) -- Add features: push.subscribe, push.unsubscribe (issue #1040) (#1227) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/bb0d3ed087e13e24af57e682776930cea2f577a8) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cf7ce8e716fe60de121634abc164b509100a9d15) +* 1.8.4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4b18505a2c30e17564c0e80060f0524968aa0d40) +* Bumping plugin version to 1.8.4 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/046c727f58a6fa675a5f49c10334095cd4282884) +* Issue #1251: [Android] deviceId persists between uninstalls, but is invalid after an uninstall [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8a7bbe5cba186d9685f31adc07e25bd908409498) +* Merge pull request #1323 from hung-doan/issue-1319 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/021f0abd9a49fb83d19faca3ffb7d142759bb01a) +* Update GCM to 9.8+ issue #1319 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/450e0e01b9bcd747a49081c4a0d6ce998c37478a) +* Support Twilio Notify (#1306) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a9bb3bf0a2ca57f68eafc39070fc125746bbbb23) +* Cache multiple Android action button pushes if app is not running (#1272) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d0547bab04c292024dc6ed41939590fba01115ff) +* Add sub/unsub tests [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3bf9ff5f04e10622d7d9ff47a9bd57a829ee9eef) +* Add features: push.subscribe, push.unsubscribe (issue #1040) (#1227) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/bb0d3ed087e13e24af57e682776930cea2f577a8) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cf7ce8e716fe60de121634abc164b509100a9d15) ## [v1.8.3](https://github.com/phonegap/phonegap-plugin-push/tree/v1.8.3) (2016-07-09) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v1.8.2...v1.8.3) -- 1.8.3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a0cfba9f85b7d7dfa3c244c9e78a03872ff938f9) -- Bumping plugin version to 1.8.3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cc7d5abe55957cebfdd3b39ba670f8093bdac564) -- Update pluginpub version [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0d8548d3166b7b4d34b32944b800c96e4aadf70a) -- Issue#1282 Show app name if title is empty (#1285) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3d7a3a39fb931aafa86be6b1568a682133c36de7) -- Note about background app refresh (#1267) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4f13533deb0c1b927dab9d9cddb13c53fdefd9b0) -- Issue #1213: XDK instructions link for www template is incorrect (#1283) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d2ede2bab4cd6462f7dffc4e2bc733d585107e89) -- Merge pull request #1277 from dannywillems/patch-1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ea5ae88f3fcfa8fc605cf2c974b52d793bd2c4c9) -- Unused variable app. Caused warnings. [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/09dedb43481d207d0b17de4eb26c5a1904d08f65) -- Issue #1254: [Question] Is it possible to get more than 3 action buttons on Android notifications? [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d8ab6665d878c8dec3ff9914c11a9329c8a415e7) -- Use unique pending intent request code to enable multiple... (#1225) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/475883833556eb001e2e0adb986bd96b78bdcb2f) -- Add `cordovaDependencies` section to package.json (#1232) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6b343e78e9bfca921cef78eb504755477ecaeff9) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/14afb94126acb51a6f10a2094f7f391f2f17dee5) +* 1.8.3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a0cfba9f85b7d7dfa3c244c9e78a03872ff938f9) +* Bumping plugin version to 1.8.3 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/cc7d5abe55957cebfdd3b39ba670f8093bdac564) +* Update pluginpub version [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0d8548d3166b7b4d34b32944b800c96e4aadf70a) +* Issue#1282 Show app name if title is empty (#1285) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/3d7a3a39fb931aafa86be6b1568a682133c36de7) +* Note about background app refresh (#1267) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4f13533deb0c1b927dab9d9cddb13c53fdefd9b0) +* Issue #1213: XDK instructions link for www template is incorrect (#1283) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d2ede2bab4cd6462f7dffc4e2bc733d585107e89) +* Merge pull request #1277 from dannywillems/patch-1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ea5ae88f3fcfa8fc605cf2c974b52d793bd2c4c9) +* Unused variable app. Caused warnings. [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/09dedb43481d207d0b17de4eb26c5a1904d08f65) +* Issue #1254: [Question] Is it possible to get more than 3 action buttons on Android notifications? [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d8ab6665d878c8dec3ff9914c11a9329c8a415e7) +* Use unique pending intent request code to enable multiple... (#1225) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/475883833556eb001e2e0adb986bd96b78bdcb2f) +* Add `cordovaDependencies` section to package.json (#1232) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/6b343e78e9bfca921cef78eb504755477ecaeff9) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/14afb94126acb51a6f10a2094f7f391f2f17dee5) ## [v1.8.2](https://github.com/phonegap/phonegap-plugin-push/tree/v1.8.2) (2016-07-09) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v1.8.1...v1.8.2) -- 1.8.2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b47d519abff667400c4863fe90a27ae88e3c0671) -- Bumping plugin version to 1.8.2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/738735ddcd9b60014beb4207c3ccdcd30ba7a803) -- Localization from resources (#1196) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2de9fc2827a18941ae6040e90ea0da5dc97652d8) -- Issue #1199: iOS 10 is not firing the 'notification' event after clicking on a notification when the app is in hibernate [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e711b09b15a8e85156e9158026509522859c7900) -- Use unique pending intent request code to enable multiple simultaneous notifications with action buttons (#1216) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1fe640637fd67ec0ce2cf50ee1cab793ed01cfb7) -- (doc) Fixing `ios.catetories` type in api reference. [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0a93fab9cec5ac2a2b813090958054e8e7b15f9a) -- Issue #1155: [doc] Explain usage of the top level "priority" in GCM notifications [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ddaf48e089dc3cb46f9bd9f5e4678a2118b14a48) -- Issue #1121: Notification is not shown on ios device [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/432761202c43a1f2a4ba9c643df78b81b87d66fa) -- Issue #1160: data.additionalData.[Object] as 'undefined' in iOS [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/946052a895268155f56a7a3a1006d019599b46f9) -- Few edits (#1179) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f90b4bbf0e78adaa029737cf70b146ec97d09015) -- Adding workshop tutorial link to the README (#1169) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/59800a930557bd864e527404e1035c2d8ac149c9) -- added Azure server-side example (#1124) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0bd4d0e612f6f1c62e33d147564b7e495436f15e) -- Update appxmanifests with ToastCapable=true after plugin install (#1158) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/eeefc036a8600bea80135b6b14241509853444ab) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/30d3d5dc733c80bc1687e5eff28d0614a0f38e51) +* 1.8.2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b47d519abff667400c4863fe90a27ae88e3c0671) +* Bumping plugin version to 1.8.2 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/738735ddcd9b60014beb4207c3ccdcd30ba7a803) +* Localization from resources (#1196) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/2de9fc2827a18941ae6040e90ea0da5dc97652d8) +* Issue #1199: iOS 10 is not firing the 'notification' event after clicking on a notification when the app is in hibernate [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e711b09b15a8e85156e9158026509522859c7900) +* Use unique pending intent request code to enable multiple simultaneous notifications with action buttons (#1216) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1fe640637fd67ec0ce2cf50ee1cab793ed01cfb7) +* (doc) Fixing `ios.catetories` type in api reference. [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0a93fab9cec5ac2a2b813090958054e8e7b15f9a) +* Issue #1155: [doc] Explain usage of the top level "priority" in GCM notifications [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ddaf48e089dc3cb46f9bd9f5e4678a2118b14a48) +* Issue #1121: Notification is not shown on ios device [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/432761202c43a1f2a4ba9c643df78b81b87d66fa) +* Issue #1160: data.additionalData.[Object] as 'undefined' in iOS [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/946052a895268155f56a7a3a1006d019599b46f9) +* Few edits (#1179) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f90b4bbf0e78adaa029737cf70b146ec97d09015) +* Adding workshop tutorial link to the README (#1169) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/59800a930557bd864e527404e1035c2d8ac149c9) +* added Azure server-side example (#1124) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/0bd4d0e612f6f1c62e33d147564b7e495436f15e) +* Update appxmanifests with ToastCapable=true after plugin install (#1158) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/eeefc036a8600bea80135b6b14241509853444ab) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/30d3d5dc733c80bc1687e5eff28d0614a0f38e51) ## [v1.8.1](https://github.com/phonegap/phonegap-plugin-push/tree/v1.8.1) (2016-07-09) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v1.8.0...v1.8.1) -- 1.8.1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/95c27d29ef37bfd750972561022db53de256840d) -- Bumping plugin version to 1.8.1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e4ba55ff310d4d931503de2547738cc169b6f968) -- [Windows] Added a check on activation context existence (#1129) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/151c8cd97aa71742798e969dd9e6c2208b8c1f15) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4cd4ee00e2eb081d0d29d001e580009fba5c341a) +* 1.8.1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/95c27d29ef37bfd750972561022db53de256840d) +* Bumping plugin version to 1.8.1 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e4ba55ff310d4d931503de2547738cc169b6f968) +* [Windows] Added a check on activation context existence (#1129) [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/151c8cd97aa71742798e969dd9e6c2208b8c1f15) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4cd4ee00e2eb081d0d29d001e580009fba5c341a) ## [v1.8.0](https://github.com/phonegap/phonegap-plugin-push/tree/v1.8.0) (2016-07-09) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/v1.7.4...v1.8.0) -- 1.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d5a8480e6e230c959d8079554a6366f3605cb97e) -- Bumping plugin version to 1.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f8c784536e40ce6dddf14edeff7ad2a9ee944156) -- Check that serviceWorker exists before unregistering [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ef004002d60d8028ed6aad2cef79d4d8ac6aed49) -- Populate additionalData on browser platform [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/63a29cdbbc0cd0374552d51e0e2d2217f5361f79) -- Issue #683: Support Android N inline reply actions [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e835ca31ac02a3455ece8c96938260935e2e7100) -- Issue #1109: Installation.MD has a mistake [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/89834b78a63ad6c927295eb5699204a0ccb49a73) -- Use push server DELETE route to remove browser keys [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4615ea694bd5858bfdb8553c9a9390e1e30c2c36) -- [chore] fix mis-spelling [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/efdef52deec4f7e8b6b4ee87460bd87cc0479c74) -- Browser: always call success on unimplemented methods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1b8bf267674508361c68fb03b12f97608e87456b) -- Update push url [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e1d8774f760d7a72a547d68e1b2ac367572e2b6d) -- Merge branch 'browser' [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a2ad8da9a25a02a1b674e6adf0a37e18cde185ab) -- Add browser platform support [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e8e0fe47001e461cf7fb7274d4c2b3dc687cd90e) -- Issue #1080: clearAllNotifications not working on iOS [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4bea2a7469ab2bd677e12d440b457e1d5383b1f0) -- [whoops] revert accidental commit of a pluginpub test [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/da301e8a43a0a659947294c9d94f7fd09f5ac4b2) -- [doc] remove deprecation notice on hasPermission [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d4b79a81c5ad85a4b566e5a23a19b10fa78dcf17) -- Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8512a6cb7be3c0bb2b5db813c7aaff4c49fc52a2) -- Bumping plugin version to 1.9.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b015543b8a06526b7b70357407e635c180c473ee) -- Update CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e6f87a50d9f9cb3bd7c9ba599b3d3afbc0fd7aaf) +* 1.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d5a8480e6e230c959d8079554a6366f3605cb97e) +* Bumping plugin version to 1.8.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/f8c784536e40ce6dddf14edeff7ad2a9ee944156) +* Check that serviceWorker exists before unregistering [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/ef004002d60d8028ed6aad2cef79d4d8ac6aed49) +* Populate additionalData on browser platform [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/63a29cdbbc0cd0374552d51e0e2d2217f5361f79) +* Issue #683: Support Android N inline reply actions [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e835ca31ac02a3455ece8c96938260935e2e7100) +* Issue #1109: Installation.MD has a mistake [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/89834b78a63ad6c927295eb5699204a0ccb49a73) +* Use push server DELETE route to remove browser keys [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4615ea694bd5858bfdb8553c9a9390e1e30c2c36) +* [chore] fix mis-spelling [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/efdef52deec4f7e8b6b4ee87460bd87cc0479c74) +* Browser: always call success on unimplemented methods [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/1b8bf267674508361c68fb03b12f97608e87456b) +* Update push url [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e1d8774f760d7a72a547d68e1b2ac367572e2b6d) +* Merge branch 'browser' [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/a2ad8da9a25a02a1b674e6adf0a37e18cde185ab) +* Add browser platform support [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e8e0fe47001e461cf7fb7274d4c2b3dc687cd90e) +* Issue #1080: clearAllNotifications not working on iOS [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/4bea2a7469ab2bd677e12d440b457e1d5383b1f0) +* [whoops] revert accidental commit of a pluginpub test [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/da301e8a43a0a659947294c9d94f7fd09f5ac4b2) +* [doc] remove deprecation notice on hasPermission [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/d4b79a81c5ad85a4b566e5a23a19b10fa78dcf17) +* Updating CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/8512a6cb7be3c0bb2b5db813c7aaff4c49fc52a2) +* Bumping plugin version to 1.9.0 [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/b015543b8a06526b7b70357407e635c180c473ee) +* Update CHANGELOG [view commit](http://github.com/phonegap/phonegap-plugin-push/commit/e6f87a50d9f9cb3bd7c9ba599b3d3afbc0fd7aaf) ## [1.7.4](https://github.com/phonegap/phonegap-plugin-push/tree/v1.7.4) (2016-07-09) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.7.3...v1.7.4) **Closed issues:** -- FYI: Resumed iOS 10 Notifications results in an error (fix problem on iOS) [\#1002](https://github.com/phonegap/phonegap-plugin-push/issues/1002) - +* FYI: Resumed iOS 10 Notifications results in an error (fix problem on iOS) [\#1002](https://github.com/phonegap/phonegap-plugin-push/issues/1002) ## [1.7.3](https://github.com/phonegap/phonegap-plugin-push/tree/1.7.3) (2016-07-06) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.7.2...1.7.3) **Closed issues:** -- Implemented clearBadge for Android [\#1030](https://github.com/phonegap/phonegap-plugin-push/issues/1030) -- update badge number even if the app is totally closed [\#1027](https://github.com/phonegap/phonegap-plugin-push/issues/1027) -- Documentation issue of Android pictures push [\#1028](https://github.com/phonegap/phonegap-plugin-push/issues/1028) -- [iOS] unregister for a topic: parameter is not consistent between ios/android [\#1029](https://github.com/phonegap/phonegap-plugin-push/issues/1029) -- [doc] Error installing in IOS, version requirement: >=4.1.0 [\#1047](https://github.com/phonegap/phonegap-plugin-push/issues/1047) +* Implemented clearBadge for Android [\#1030](https://github.com/phonegap/phonegap-plugin-push/issues/1030) +* update badge number even if the app is totally closed [\#1027](https://github.com/phonegap/phonegap-plugin-push/issues/1027) +* Documentation issue of Android pictures push [\#1028](https://github.com/phonegap/phonegap-plugin-push/issues/1028) +* [iOS] unregister for a topic: parameter is not consistent between ios/android [\#1029](https://github.com/phonegap/phonegap-plugin-push/issues/1029) +* [doc] Error installing in IOS, version requirement: >=4.1.0 [\#1047](https://github.com/phonegap/phonegap-plugin-push/issues/1047) ## [1.7.2](https://github.com/phonegap/phonegap-plugin-push/tree/1.7.2) (2016-06-24) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.7.1...1.7.2) **Closed issues:** -- FYI: Resumed iOS 10 Notifications results in an error [\#1002](https://github.com/phonegap/phonegap-plugin-push/issues/1002) +* FYI: Resumed iOS 10 Notifications results in an error [\#1002](https://github.com/phonegap/phonegap-plugin-push/issues/1002) ## [1.7.1](https://github.com/phonegap/phonegap-plugin-push/tree/1.7.1) (2016-06-17) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.7.0...1.7.1) **Closed issues:** -- Update docs for Android badges [\#982](https://github.com/phonegap/phonegap-plugin-push/issues/982) -- visibility not working [\#987](https://github.com/phonegap/phonegap-plugin-push/issues/982) -- Revert pinning of support-v13 [\#983](https://github.com/phonegap/phonegap-plugin-push/issues/983) +* Update docs for Android badges [\#982](https://github.com/phonegap/phonegap-plugin-push/issues/982) +* visibility not working [\#987](https://github.com/phonegap/phonegap-plugin-push/issues/982) +* Revert pinning of support-v13 [\#983](https://github.com/phonegap/phonegap-plugin-push/issues/983) ## [1.7.0](https://github.com/phonegap/phonegap-plugin-push/tree/1.7.0) (2016-06-06) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.6.4...1.7.0) **Closed issues:** -- disable notification's sounds on a per notification basis [\#885](https://github.com/phonegap/phonegap-plugin-push/issues/885) -- Android GCM Action Buttons lack of documentation [\#884](https://github.com/phonegap/phonegap-plugin-push/issues/884) -- Android double on('notification') fired [\#828](https://github.com/phonegap/phonegap-plugin-push/issues/828) -- Device should register, Push Notification should receive on IOS (IntelXDK) [\#926](https://github.com/phonegap/phonegap-plugin-push/issues/926) -- Use cordova-ios 4.1.0 in Milestone 1.7.0 [\#751](https://github.com/phonegap/phonegap-plugin-push/issues/751) -- Badge on android [\#190](https://github.com/phonegap/phonegap-plugin-push/issues/190) -- JS error in Success callbackId: PushNotifiation###.. whenever a notification is sent to the device [\#824](https://github.com/phonegap/phonegap-plugin-push/issues/824) -- coldstart flag always set to true if the app has been opened through an alert, on ios 9.3.1, plugin version 1.6.2 cordova 6.1.0 cordova ios 4.1.1 [\#795](https://github.com/phonegap/phonegap-plugin-push/issues/795) -- Is there any way to clear notifications out from the app? [\#346](https://github.com/phonegap/phonegap-plugin-push/issues/346) -- Show contents of notification when phone is locked [\#750](https://github.com/phonegap/phonegap-plugin-push/issues/750) -- PushPlugin.m init() should send pending notification when js side is ready [\#658](https://github.com/phonegap/phonegap-plugin-push/issues/658) +* disable notification's sounds on a per notification basis [\#885](https://github.com/phonegap/phonegap-plugin-push/issues/885) +* Android GCM Action Buttons lack of documentation [\#884](https://github.com/phonegap/phonegap-plugin-push/issues/884) +* Android double on('notification') fired [\#828](https://github.com/phonegap/phonegap-plugin-push/issues/828) +* Device should register, Push Notification should receive on IOS (IntelXDK) [\#926](https://github.com/phonegap/phonegap-plugin-push/issues/926) +* Use cordova-ios 4.1.0 in Milestone 1.7.0 [\#751](https://github.com/phonegap/phonegap-plugin-push/issues/751) +* Badge on android [\#190](https://github.com/phonegap/phonegap-plugin-push/issues/190) +* JS error in Success callbackId: PushNotifiation###.. whenever a notification is sent to the device [\#824](https://github.com/phonegap/phonegap-plugin-push/issues/824) +* coldstart flag always set to true if the app has been opened through an alert, on ios 9.3.1, plugin version 1.6.2 cordova 6.1.0 cordova ios 4.1.1 [\#795](https://github.com/phonegap/phonegap-plugin-push/issues/795) +* Is there any way to clear notifications out from the app? [\#346](https://github.com/phonegap/phonegap-plugin-push/issues/346) +* Show contents of notification when phone is locked [\#750](https://github.com/phonegap/phonegap-plugin-push/issues/750) +* PushPlugin.m init() should send pending notification when js side is ready [\#658](https://github.com/phonegap/phonegap-plugin-push/issues/658) ## [1.6.4](https://github.com/phonegap/phonegap-plugin-push/tree/1.6.4) (2016-05-24) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.6.3...1.6.4) **Closed issues:** -- hasPermission() for windows [\#874](https://github.com/phonegap/phonegap-plugin-push/issues/874) -- Latest Play store service breaks phonegap-plugin-push [\#909](https://github.com/phonegap/phonegap-plugin-push/issues/909) +* hasPermission() for windows [\#874](https://github.com/phonegap/phonegap-plugin-push/issues/874) +* Latest Play store service breaks phonegap-plugin-push [\#909](https://github.com/phonegap/phonegap-plugin-push/issues/909) ## [1.6.3](https://github.com/phonegap/phonegap-plugin-push/tree/1.6.3) (2016-04-27) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.6.2...1.6.3) **Fixed bugs:** -- \[Android\] Can't install multiple apps using this plugin \(v1.6.x\) [\#768](https://github.com/phonegap/phonegap-plugin-push/issues/768) -- JS error in "Success callbackId: PushNotifiation\#\#\#.." whenever a notification is sent to the device [\#824](https://github.com/phonegap/phonegap-plugin-push/issues/824) +* \[Android\] Can't install multiple apps using this plugin \(v1.6.x\) [\#768](https://github.com/phonegap/phonegap-plugin-push/issues/768) +* JS error in "Success callbackId: PushNotifiation\#\#\#.." whenever a notification is sent to the device [\#824](https://github.com/phonegap/phonegap-plugin-push/issues/824) **Closed issues:** -- Move example directory to a phonegap template [\#832](https://github.com/phonegap/phonegap-plugin-push/issues/832) -- va [\#830](https://github.com/phonegap/phonegap-plugin-push/issues/830) -- does not create the notification bar [\#821](https://github.com/phonegap/phonegap-plugin-push/issues/821) -- Did not show notification in status bar for Xiomi Redmi Note 3 [\#790](https://github.com/phonegap/phonegap-plugin-push/issues/790) -- PushNotification.hasPermission not working as expected [\#789](https://github.com/phonegap/phonegap-plugin-push/issues/789) - +* Move example directory to a phonegap template [\#832](https://github.com/phonegap/phonegap-plugin-push/issues/832) +* va [\#830](https://github.com/phonegap/phonegap-plugin-push/issues/830) +* does not create the notification bar [\#821](https://github.com/phonegap/phonegap-plugin-push/issues/821) +* Did not show notification in status bar for Xiomi Redmi Note 3 [\#790](https://github.com/phonegap/phonegap-plugin-push/issues/790) +* PushNotification.hasPermission not working as expected [\#789](https://github.com/phonegap/phonegap-plugin-push/issues/789) ## [1.6.2](https://github.com/phonegap/phonegap-plugin-push/tree/1.6.2) (2016-04-06) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.6.1...1.6.2) **Fixed bugs:** -- Unexpected / Broken Android Behavior [\#767](https://github.com/phonegap/phonegap-plugin-push/issues/767) +* Unexpected / Broken Android Behavior [\#767](https://github.com/phonegap/phonegap-plugin-push/issues/767) **Closed issues:** -- Android: JSON Exception No Value Found for Sender [\#781](https://github.com/phonegap/phonegap-plugin-push/issues/781) -- Should I call init\(\) every time the app is launched?? [\#777](https://github.com/phonegap/phonegap-plugin-push/issues/777) -- Request: extend action buttons to wearables [\#776](https://github.com/phonegap/phonegap-plugin-push/issues/776) -- After upgrade: 601 duplicate symbols for architecture i386 [\#769](https://github.com/phonegap/phonegap-plugin-push/issues/769) -- push plugin [\#766](https://github.com/phonegap/phonegap-plugin-push/issues/766) -- Documentation mentions old name for dependency [\#763](https://github.com/phonegap/phonegap-plugin-push/issues/763) -- push.on\('notification'\) callback is not called on coldstart on iOS [\#758](https://github.com/phonegap/phonegap-plugin-push/issues/758) -- plugin doesn't work in background or when app not running on kitkat 4.4.2 [\#754](https://github.com/phonegap/phonegap-plugin-push/issues/754) -- App Icon not displayed in tray using build.phonegap and cli-6.0.0 \[ios\] [\#753](https://github.com/phonegap/phonegap-plugin-push/issues/753) -- push.on\('registration'\) event not called on IOS. [\#752](https://github.com/phonegap/phonegap-plugin-push/issues/752) -- catch 22 when trying to use this plug [\#741](https://github.com/phonegap/phonegap-plugin-push/issues/741) -- push.setApplicationIconBadgeNumber not working in background [\#736](https://github.com/phonegap/phonegap-plugin-push/issues/736) -- Strange issue while debugging in Safari Inspector [\#733](https://github.com/phonegap/phonegap-plugin-push/issues/733) +* Android: JSON Exception No Value Found for Sender [\#781](https://github.com/phonegap/phonegap-plugin-push/issues/781) +* Should I call init\(\) every time the app is launched?? [\#777](https://github.com/phonegap/phonegap-plugin-push/issues/777) +* Request: extend action buttons to wearables [\#776](https://github.com/phonegap/phonegap-plugin-push/issues/776) +* After upgrade: 601 duplicate symbols for architecture i386 [\#769](https://github.com/phonegap/phonegap-plugin-push/issues/769) +* push plugin [\#766](https://github.com/phonegap/phonegap-plugin-push/issues/766) +* Documentation mentions old name for dependency [\#763](https://github.com/phonegap/phonegap-plugin-push/issues/763) +* push.on\('notification'\) callback is not called on coldstart on iOS [\#758](https://github.com/phonegap/phonegap-plugin-push/issues/758) +* plugin doesn't work in background or when app not running on kitkat 4.4.2 [\#754](https://github.com/phonegap/phonegap-plugin-push/issues/754) +* App Icon not displayed in tray using build.phonegap and cli-6.0.0 \[ios\] [\#753](https://github.com/phonegap/phonegap-plugin-push/issues/753) +* push.on\('registration'\) event not called on IOS. [\#752](https://github.com/phonegap/phonegap-plugin-push/issues/752) +* catch 22 when trying to use this plug [\#741](https://github.com/phonegap/phonegap-plugin-push/issues/741) +* push.setApplicationIconBadgeNumber not working in background [\#736](https://github.com/phonegap/phonegap-plugin-push/issues/736) +* Strange issue while debugging in Safari Inspector [\#733](https://github.com/phonegap/phonegap-plugin-push/issues/733) ## [1.6.1](https://github.com/phonegap/phonegap-plugin-push/tree/1.6.1) (2016-03-23) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.6.0...1.6.1) **Fixed bugs:** -- App crashes on notification when in background [\#715](https://github.com/phonegap/phonegap-plugin-push/issues/715) +* App crashes on notification when in background [\#715](https://github.com/phonegap/phonegap-plugin-push/issues/715) **Closed issues:** -- Memory Leak when call `push.on\('registration'`. so `Push Plugin register called` not called [\#743](https://github.com/phonegap/phonegap-plugin-push/issues/743) -- l [\#739](https://github.com/phonegap/phonegap-plugin-push/issues/739) -- \[testing issue template\] ignore me [\#717](https://github.com/phonegap/phonegap-plugin-push/issues/717) -- Incorrect init option "vibration" in a few ios samples on PAYLOAD.md [\#713](https://github.com/phonegap/phonegap-plugin-push/issues/713) -- android M wear case [\#691](https://github.com/phonegap/phonegap-plugin-push/issues/691) -- Incorrect document detailing \(PHONEGAP\_BUILD.md\) [\#686](https://github.com/phonegap/phonegap-plugin-push/issues/686) -- Windows Phone 8.1, not fired plugin methods [\#526](https://github.com/phonegap/phonegap-plugin-push/issues/526) +* Memory Leak when call `push.on\('registration'`. so `Push Plugin register called` not called [\#743](https://github.com/phonegap/phonegap-plugin-push/issues/743) +* l [\#739](https://github.com/phonegap/phonegap-plugin-push/issues/739) +* \[testing issue template\] ignore me [\#717](https://github.com/phonegap/phonegap-plugin-push/issues/717) +* Incorrect init option "vibration" in a few ios samples on PAYLOAD.md [\#713](https://github.com/phonegap/phonegap-plugin-push/issues/713) +* android M wear case [\#691](https://github.com/phonegap/phonegap-plugin-push/issues/691) +* Incorrect document detailing \(PHONEGAP_BUILD.md\) [\#686](https://github.com/phonegap/phonegap-plugin-push/issues/686) +* Windows Phone 8.1, not fired plugin methods [\#526](https://github.com/phonegap/phonegap-plugin-push/issues/526) ## [1.6.0](https://github.com/phonegap/phonegap-plugin-push/tree/1.6.0) (2016-03-09) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.5.3...1.6.0) **Implemented enhancements:** -- Background processing with coldstart on iOS [\#583](https://github.com/phonegap/phonegap-plugin-push/issues/583) +* Background processing with coldstart on iOS [\#583](https://github.com/phonegap/phonegap-plugin-push/issues/583) **Fixed bugs:** -- Android: notification does not dismiss after selection button \(1.6.x dev\) [\#610](https://github.com/phonegap/phonegap-plugin-push/issues/610) +* Android: notification does not dismiss after selection button \(1.6.x dev\) [\#610](https://github.com/phonegap/phonegap-plugin-push/issues/610) **Closed issues:** -- XDK doesn't work with v1.5.x. Are you going to have a non-gradle version for v1.5.x [\#675](https://github.com/phonegap/phonegap-plugin-push/issues/675) -- emoji support [\#668](https://github.com/phonegap/phonegap-plugin-push/issues/668) -- iOS sound not found \[edited with new debug info\] [\#667](https://github.com/phonegap/phonegap-plugin-push/issues/667) -- Push notification register APN to GCM Problem [\#665](https://github.com/phonegap/phonegap-plugin-push/issues/665) -- IOS Never fire the registration event [\#659](https://github.com/phonegap/phonegap-plugin-push/issues/659) -- Badge count inaccurate [\#651](https://github.com/phonegap/phonegap-plugin-push/issues/651) -- Android Icon options in phonegap-plugin-push@1.2.3 [\#648](https://github.com/phonegap/phonegap-plugin-push/issues/648) -- Getting same registration id when re-register [\#641](https://github.com/phonegap/phonegap-plugin-push/issues/641) -- Callback not called unless you register to GCM everytime you open the app [\#626](https://github.com/phonegap/phonegap-plugin-push/issues/626) -- How to make GCM show alert automatically ios [\#602](https://github.com/phonegap/phonegap-plugin-push/issues/602) -- Shoddy image for notification icon,status bar icon? [\#587](https://github.com/phonegap/phonegap-plugin-push/issues/587) -- ERROR: Plugin 'PushNotification' not found [\#568](https://github.com/phonegap/phonegap-plugin-push/issues/568) -- ar [\#533](https://github.com/phonegap/phonegap-plugin-push/issues/533) -- No sound and vibration for GCM when built with Cordova but Ok with PhoneBuild [\#520](https://github.com/phonegap/phonegap-plugin-push/issues/520) +* XDK doesn't work with v1.5.x. Are you going to have a non-gradle version for v1.5.x [\#675](https://github.com/phonegap/phonegap-plugin-push/issues/675) +* emoji support [\#668](https://github.com/phonegap/phonegap-plugin-push/issues/668) +* iOS sound not found \[edited with new debug info\] [\#667](https://github.com/phonegap/phonegap-plugin-push/issues/667) +* Push notification register APN to GCM Problem [\#665](https://github.com/phonegap/phonegap-plugin-push/issues/665) +* IOS Never fire the registration event [\#659](https://github.com/phonegap/phonegap-plugin-push/issues/659) +* Badge count inaccurate [\#651](https://github.com/phonegap/phonegap-plugin-push/issues/651) +* Android Icon options in phonegap-plugin-push@1.2.3 [\#648](https://github.com/phonegap/phonegap-plugin-push/issues/648) +* Getting same registration id when re-register [\#641](https://github.com/phonegap/phonegap-plugin-push/issues/641) +* Callback not called unless you register to GCM everytime you open the app [\#626](https://github.com/phonegap/phonegap-plugin-push/issues/626) +* How to make GCM show alert automatically ios [\#602](https://github.com/phonegap/phonegap-plugin-push/issues/602) +* Shoddy image for notification icon,status bar icon? [\#587](https://github.com/phonegap/phonegap-plugin-push/issues/587) +* ERROR: Plugin 'PushNotification' not found [\#568](https://github.com/phonegap/phonegap-plugin-push/issues/568) +* ar [\#533](https://github.com/phonegap/phonegap-plugin-push/issues/533) +* No sound and vibration for GCM when built with Cordova but Ok with PhoneBuild [\#520](https://github.com/phonegap/phonegap-plugin-push/issues/520) ## [1.5.3](https://github.com/phonegap/phonegap-plugin-push/tree/1.5.3) (2016-01-14) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.5.2...1.5.3) **Fixed bugs:** -- Android 4.1 and AppOpsManager [\#495](https://github.com/phonegap/phonegap-plugin-push/issues/495) +* Android 4.1 and AppOpsManager [\#495](https://github.com/phonegap/phonegap-plugin-push/issues/495) **Closed issues:** -- iOS Building Error [\#507](https://github.com/phonegap/phonegap-plugin-push/issues/507) -- \[FIX\] notification not fired when app is in background/killed ? Check this out [\#502](https://github.com/phonegap/phonegap-plugin-push/issues/502) -- Which Sender ID to use [\#485](https://github.com/phonegap/phonegap-plugin-push/issues/485) -- coldstart not documented [\#483](https://github.com/phonegap/phonegap-plugin-push/issues/483) -- Android: iconColor doesn't work in hexadecimal \(\#RRGGBB\) format [\#480](https://github.com/phonegap/phonegap-plugin-push/issues/480) -- Cannot find symbol variable INSTANCE\_ID\_SCOPE [\#477](https://github.com/phonegap/phonegap-plugin-push/issues/477) -- notification event not fired on cold start on Android 5 [\#469](https://github.com/phonegap/phonegap-plugin-push/issues/469) -- Push notifications not working with iPhone6 + ios 9.2? [\#462](https://github.com/phonegap/phonegap-plugin-push/issues/462) -- UTF8 support on android: the notification text \(on android only\) is shown with "???" [\#461](https://github.com/phonegap/phonegap-plugin-push/issues/461) -- example application? [\#460](https://github.com/phonegap/phonegap-plugin-push/issues/460) -- build fail in ios - version 1.5.2 [\#458](https://github.com/phonegap/phonegap-plugin-push/issues/458) -- Getting NotRegistered error when sending GCM push notification, but the device never unregistered [\#419](https://github.com/phonegap/phonegap-plugin-push/issues/419) -- Changelog neglected [\#412](https://github.com/phonegap/phonegap-plugin-push/issues/412) +* iOS Building Error [\#507](https://github.com/phonegap/phonegap-plugin-push/issues/507) +* \[FIX\] notification not fired when app is in background/killed ? Check this out [\#502](https://github.com/phonegap/phonegap-plugin-push/issues/502) +* Which Sender ID to use [\#485](https://github.com/phonegap/phonegap-plugin-push/issues/485) +* coldstart not documented [\#483](https://github.com/phonegap/phonegap-plugin-push/issues/483) +* Android: iconColor doesn't work in hexadecimal \(\#RRGGBB\) format [\#480](https://github.com/phonegap/phonegap-plugin-push/issues/480) +* Cannot find symbol variable INSTANCE_ID_SCOPE [\#477](https://github.com/phonegap/phonegap-plugin-push/issues/477) +* notification event not fired on cold start on Android 5 [\#469](https://github.com/phonegap/phonegap-plugin-push/issues/469) +* Push notifications not working with iPhone6 + ios 9.2? [\#462](https://github.com/phonegap/phonegap-plugin-push/issues/462) +* UTF8 support on android: the notification text \(on android only\) is shown with "???" [\#461](https://github.com/phonegap/phonegap-plugin-push/issues/461) +* example application? [\#460](https://github.com/phonegap/phonegap-plugin-push/issues/460) +* build fail in ios - version 1.5.2 [\#458](https://github.com/phonegap/phonegap-plugin-push/issues/458) +* Getting NotRegistered error when sending GCM push notification, but the device never unregistered [\#419](https://github.com/phonegap/phonegap-plugin-push/issues/419) +* Changelog neglected [\#412](https://github.com/phonegap/phonegap-plugin-push/issues/412) ## [1.5.2](https://github.com/phonegap/phonegap-plugin-push/tree/1.5.1) (2015-12-21) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.5.1...1.5.2) **Fixed bugs:** -- notification\_applicationDidBecomeActive method [\#447](https://github.com/phonegap/phonegap-plugin-push/issues/447) +* notification_applicationDidBecomeActive method [\#447](https://github.com/phonegap/phonegap-plugin-push/issues/447) ## [1.5.1](https://github.com/phonegap/phonegap-plugin-push/tree/1.5.1) (2015-12-18) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.5.0...1.5.1) **Closed issues:** -- Unsubscribing to topics should not clear event handlers [\#443](https://github.com/phonegap/phonegap-plugin-push/issues/443) +* Unsubscribing to topics should not clear event handlers [\#443](https://github.com/phonegap/phonegap-plugin-push/issues/443) ## [1.5.0](https://github.com/phonegap/phonegap-plugin-push/tree/1.5.0) (2015-12-18) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.4.5...1.5.0) **Fixed bugs:** -- Make sure iOS/Android can receive the same GCM payload [\#401](https://github.com/phonegap/phonegap-plugin-push/issues/401) +* Make sure iOS/Android can receive the same GCM payload [\#401](https://github.com/phonegap/phonegap-plugin-push/issues/401) **Closed issues:** -- Using stacking notifications but only able to process one [\#435](https://github.com/phonegap/phonegap-plugin-push/issues/435) -- Cant find stacking docs [\#430](https://github.com/phonegap/phonegap-plugin-push/issues/430) -- Android Marshmallow 6.0 push icon [\#422](https://github.com/phonegap/phonegap-plugin-push/issues/422) -- Distinguish between 'android' or 'ios' on registration event [\#418](https://github.com/phonegap/phonegap-plugin-push/issues/418) -- Phonegap Build Issues for 1.4.X [\#417](https://github.com/phonegap/phonegap-plugin-push/issues/417) -- using in Ionic [\#416](https://github.com/phonegap/phonegap-plugin-push/issues/416) -- notification event not called on ios [\#414](https://github.com/phonegap/phonegap-plugin-push/issues/414) -- \[docs\] detail on deviceready dependency [\#410](https://github.com/phonegap/phonegap-plugin-push/issues/410) -- iOS: Plugin does not start [\#404](https://github.com/phonegap/phonegap-plugin-push/issues/404) -- Process notifications in background [\#398](https://github.com/phonegap/phonegap-plugin-push/issues/398) -- On iOS 9 the badge does not clear [\#395](https://github.com/phonegap/phonegap-plugin-push/issues/395) -- Background notification OK, but event "notification" never called [\#387](https://github.com/phonegap/phonegap-plugin-push/issues/387) -- Android action button callback not triggered [\#298](https://github.com/phonegap/phonegap-plugin-push/issues/298) +* Using stacking notifications but only able to process one [\#435](https://github.com/phonegap/phonegap-plugin-push/issues/435) +* Cant find stacking docs [\#430](https://github.com/phonegap/phonegap-plugin-push/issues/430) +* Android Marshmallow 6.0 push icon [\#422](https://github.com/phonegap/phonegap-plugin-push/issues/422) +* Distinguish between 'android' or 'ios' on registration event [\#418](https://github.com/phonegap/phonegap-plugin-push/issues/418) +* Phonegap Build Issues for 1.4.X [\#417](https://github.com/phonegap/phonegap-plugin-push/issues/417) +* using in Ionic [\#416](https://github.com/phonegap/phonegap-plugin-push/issues/416) +* notification event not called on ios [\#414](https://github.com/phonegap/phonegap-plugin-push/issues/414) +* \[docs\] detail on deviceready dependency [\#410](https://github.com/phonegap/phonegap-plugin-push/issues/410) +* iOS: Plugin does not start [\#404](https://github.com/phonegap/phonegap-plugin-push/issues/404) +* Process notifications in background [\#398](https://github.com/phonegap/phonegap-plugin-push/issues/398) +* On iOS 9 the badge does not clear [\#395](https://github.com/phonegap/phonegap-plugin-push/issues/395) +* Background notification OK, but event "notification" never called [\#387](https://github.com/phonegap/phonegap-plugin-push/issues/387) +* Android action button callback not triggered [\#298](https://github.com/phonegap/phonegap-plugin-push/issues/298) ## [1.4.5](https://github.com/phonegap/phonegap-plugin-push/tree/1.4.5) (2015-12-03) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.4.4...1.4.5) **Fixed bugs:** -- register -\> unregister lifecycle [\#368](https://github.com/phonegap/phonegap-plugin-push/issues/368) +* register -\> unregister lifecycle [\#368](https://github.com/phonegap/phonegap-plugin-push/issues/368) **Closed issues:** -- jshint support [\#380](https://github.com/phonegap/phonegap-plugin-push/issues/380) -- Platform support [\#379](https://github.com/phonegap/phonegap-plugin-push/issues/379) -- Ionic implemenation [\#364](https://github.com/phonegap/phonegap-plugin-push/issues/364) -- on registration callback getting called repeatedly. [\#353](https://github.com/phonegap/phonegap-plugin-push/issues/353) -- on\("notification"\) dont fire when the app its open [\#351](https://github.com/phonegap/phonegap-plugin-push/issues/351) +* jshint support [\#380](https://github.com/phonegap/phonegap-plugin-push/issues/380) +* Platform support [\#379](https://github.com/phonegap/phonegap-plugin-push/issues/379) +* Ionic implemenation [\#364](https://github.com/phonegap/phonegap-plugin-push/issues/364) +* on registration callback getting called repeatedly. [\#353](https://github.com/phonegap/phonegap-plugin-push/issues/353) +* on\("notification"\) dont fire when the app its open [\#351](https://github.com/phonegap/phonegap-plugin-push/issues/351) ## [1.4.4](https://github.com/phonegap/phonegap-plugin-push/tree/1.4.4) (2015-11-20) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.4.3...1.4.4) **Fixed bugs:** -- InstanceID.getToken\(\) not called in an Intent [\#354](https://github.com/phonegap/phonegap-plugin-push/issues/354) -- Handle both data and notification payloads in the same GCM push [\#343](https://github.com/phonegap/phonegap-plugin-push/issues/343) -- \[INSTALL\_FAILED\_CONFLICTING\_PROVIDER\] [\#320](https://github.com/phonegap/phonegap-plugin-push/issues/320) -- Getting "Error : Empty registration ID received from GCM" [\#315](https://github.com/phonegap/phonegap-plugin-push/issues/315) +* InstanceID.getToken\(\) not called in an Intent [\#354](https://github.com/phonegap/phonegap-plugin-push/issues/354) +* Handle both data and notification payloads in the same GCM push [\#343](https://github.com/phonegap/phonegap-plugin-push/issues/343) +* \[INSTALL_FAILED_CONFLICTING_PROVIDER\] [\#320](https://github.com/phonegap/phonegap-plugin-push/issues/320) +* Getting "Error : Empty registration ID received from GCM" [\#315](https://github.com/phonegap/phonegap-plugin-push/issues/315) **Closed issues:** -- xcode build fails with phonegap-plugin-push [\#358](https://github.com/phonegap/phonegap-plugin-push/issues/358) -- App crashes after adding push plugin and wikipedia app installed [\#357](https://github.com/phonegap/phonegap-plugin-push/issues/357) -- Conflict when compiling with com.google.maps [\#355](https://github.com/phonegap/phonegap-plugin-push/issues/355) +* xcode build fails with phonegap-plugin-push [\#358](https://github.com/phonegap/phonegap-plugin-push/issues/358) +* App crashes after adding push plugin and wikipedia app installed [\#357](https://github.com/phonegap/phonegap-plugin-push/issues/357) +* Conflict when compiling with com.google.maps [\#355](https://github.com/phonegap/phonegap-plugin-push/issues/355) ## [1.4.3](https://github.com/phonegap/phonegap-plugin-push/tree/1.4.3) (2015-11-18) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.4.2...1.4.3) **Closed issues:** -- \[Question\] about the action's icon color [\#348](https://github.com/phonegap/phonegap-plugin-push/issues/348) -- Can I access Web API's from 'notification' handler? [\#335](https://github.com/phonegap/phonegap-plugin-push/issues/335) -- Init Error: Missing Instance ID Service [\#334](https://github.com/phonegap/phonegap-plugin-push/issues/334) -- Install issue [\#332](https://github.com/phonegap/phonegap-plugin-push/issues/332) -- Multiple Apps gets error [\#330](https://github.com/phonegap/phonegap-plugin-push/issues/330) -- Can't find variable PushNotification [\#328](https://github.com/phonegap/phonegap-plugin-push/issues/328) -- When app is in background, clicking on Android notification in shade opens app but does not trigger the on\('notification'\) event handler [\#326](https://github.com/phonegap/phonegap-plugin-push/issues/326) -- "Missing Command Error" when running in browser [\#318](https://github.com/phonegap/phonegap-plugin-push/issues/318) -- Small icon not working [\#316](https://github.com/phonegap/phonegap-plugin-push/issues/316) -- Duplicate push notifications happening on iOS when phone is unlocked [\#309](https://github.com/phonegap/phonegap-plugin-push/issues/309) -- Is it possible to add badge on Android portion. [\#308](https://github.com/phonegap/phonegap-plugin-push/issues/308) -- \[just a question\] about the priority [\#306](https://github.com/phonegap/phonegap-plugin-push/issues/306) -- Android - After unregister and reregister no notifications [\#304](https://github.com/phonegap/phonegap-plugin-push/issues/304) -- Amazon-Fireos and Blackberry 10 support [\#300](https://github.com/phonegap/phonegap-plugin-push/issues/300) -- 1.4.x not showing notification on Android [\#299](https://github.com/phonegap/phonegap-plugin-push/issues/299) -- "push.unregister" not really work in iOS [\#296](https://github.com/phonegap/phonegap-plugin-push/issues/296) +* \[Question\] about the action's icon color [\#348](https://github.com/phonegap/phonegap-plugin-push/issues/348) +* Can I access Web API's from 'notification' handler? [\#335](https://github.com/phonegap/phonegap-plugin-push/issues/335) +* Init Error: Missing Instance ID Service [\#334](https://github.com/phonegap/phonegap-plugin-push/issues/334) +* Install issue [\#332](https://github.com/phonegap/phonegap-plugin-push/issues/332) +* Multiple Apps gets error [\#330](https://github.com/phonegap/phonegap-plugin-push/issues/330) +* Can't find variable PushNotification [\#328](https://github.com/phonegap/phonegap-plugin-push/issues/328) +* When app is in background, clicking on Android notification in shade opens app but does not trigger the on\('notification'\) event handler [\#326](https://github.com/phonegap/phonegap-plugin-push/issues/326) +* "Missing Command Error" when running in browser [\#318](https://github.com/phonegap/phonegap-plugin-push/issues/318) +* Small icon not working [\#316](https://github.com/phonegap/phonegap-plugin-push/issues/316) +* Duplicate push notifications happening on iOS when phone is unlocked [\#309](https://github.com/phonegap/phonegap-plugin-push/issues/309) +* Is it possible to add badge on Android portion. [\#308](https://github.com/phonegap/phonegap-plugin-push/issues/308) +* \[just a question\] about the priority [\#306](https://github.com/phonegap/phonegap-plugin-push/issues/306) +* Android - After unregister and reregister no notifications [\#304](https://github.com/phonegap/phonegap-plugin-push/issues/304) +* Amazon-Fireos and Blackberry 10 support [\#300](https://github.com/phonegap/phonegap-plugin-push/issues/300) +* 1.4.x not showing notification on Android [\#299](https://github.com/phonegap/phonegap-plugin-push/issues/299) +* "push.unregister" not really work in iOS [\#296](https://github.com/phonegap/phonegap-plugin-push/issues/296) ## [1.4.2](https://github.com/phonegap/phonegap-plugin-push/tree/1.4.2) (2015-11-03) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.4.1...1.4.2) **Closed issues:** -- data.registrationId is empty string "" on register event callback [\#295](https://github.com/phonegap/phonegap-plugin-push/issues/295) +* data.registrationId is empty string "" on register event callback [\#295](https://github.com/phonegap/phonegap-plugin-push/issues/295) ## [1.4.1](https://github.com/phonegap/phonegap-plugin-push/tree/1.4.1) (2015-11-02) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.4.0...1.4.1) ## [1.4.0](https://github.com/phonegap/phonegap-plugin-push/tree/1.4.0) (2015-10-27) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.3.0...1.4.0) **Implemented enhancements:** -- Use Google's InstanceID API [\#188](https://github.com/phonegap/phonegap-plugin-push/issues/188) +* Use Google's InstanceID API [\#188](https://github.com/phonegap/phonegap-plugin-push/issues/188) **Closed issues:** -- How to handle a re-installed app? [\#203](https://github.com/phonegap/phonegap-plugin-push/issues/203) -- interactive push notifications? [\#266](https://github.com/phonegap/phonegap-plugin-push/issues/266) -- Empty registrationId Android [\#265](https://github.com/phonegap/phonegap-plugin-push/issues/265) -- Run callback when clicking of notification body [\#261](https://github.com/phonegap/phonegap-plugin-push/issues/261) -- Android BUILD FAILED [\#251](https://github.com/phonegap/phonegap-plugin-push/issues/251) -- Re-register [\#250](https://github.com/phonegap/phonegap-plugin-push/issues/250) -- how to work in background ? [\#249](https://github.com/phonegap/phonegap-plugin-push/issues/249) -- installing plugin [\#244](https://github.com/phonegap/phonegap-plugin-push/issues/244) -- No Sound and vibration [\#242](https://github.com/phonegap/phonegap-plugin-push/issues/242) -- Unable to build apk [\#241](https://github.com/phonegap/phonegap-plugin-push/issues/241) -- still having problems with build. [\#239](https://github.com/phonegap/phonegap-plugin-push/issues/239) -- Registering on iOS 9 [\#238](https://github.com/phonegap/phonegap-plugin-push/issues/238) -- Custom sound repeated multiple times on Android [\#237](https://github.com/phonegap/phonegap-plugin-push/issues/237) -- Android: status bar notification is not shown [\#236](https://github.com/phonegap/phonegap-plugin-push/issues/236) -- Multiple Push Notifications - phonegap build [\#234](https://github.com/phonegap/phonegap-plugin-push/issues/234) -- error: cannot find symbol String token = InstanceID.getInstance\(getApplicationContext\(\)\).getToken\(senderID, GCM\); [\#231](https://github.com/phonegap/phonegap-plugin-push/issues/231) -- Problem using "ledColor" and "VibrationPattern" [\#229](https://github.com/phonegap/phonegap-plugin-push/issues/229) -- Notificaction event receive, but not notification showing on android [\#228](https://github.com/phonegap/phonegap-plugin-push/issues/228) -- Events for registration not being fired [\#227](https://github.com/phonegap/phonegap-plugin-push/issues/227) -- 'registration' event not firing on windows phone [\#224](https://github.com/phonegap/phonegap-plugin-push/issues/224) -- Can i subscribe to a topic in using plugin? [\#219](https://github.com/phonegap/phonegap-plugin-push/issues/219) -- GCMIntentService.java:472: error: cannot find symbol iconColor [\#217](https://github.com/phonegap/phonegap-plugin-push/issues/217) -- Push Plugin registering on iOS 9 Devices but not showing Notification [\#216](https://github.com/phonegap/phonegap-plugin-push/issues/216) -- Receiving a notification "outside app" while in it? [\#213](https://github.com/phonegap/phonegap-plugin-push/issues/213) -- iOS push not working for device tokens when spaces removed [\#212](https://github.com/phonegap/phonegap-plugin-push/issues/212) -- Error: Plugin PushPlugin failed to install. [\#210](https://github.com/phonegap/phonegap-plugin-push/issues/210) -- Build error [\#205](https://github.com/phonegap/phonegap-plugin-push/issues/205) -- Android push.on\('registration', cb\) fires correctly on device, but not in emulator. [\#204](https://github.com/phonegap/phonegap-plugin-push/issues/204) -- 1.3.0 version not compatible with "crosswalk" by PGB [\#199](https://github.com/phonegap/phonegap-plugin-push/issues/199) -- How to get data on didReceiveNotification Background Process [\#198](https://github.com/phonegap/phonegap-plugin-push/issues/198) -- PushNotification is not defined in some devices [\#196](https://github.com/phonegap/phonegap-plugin-push/issues/196) -- not getting notifications on the Android device [\#195](https://github.com/phonegap/phonegap-plugin-push/issues/195) -- Installation Errors [\#186](https://github.com/phonegap/phonegap-plugin-push/issues/186) -- IOS: on registration fired twice [\#185](https://github.com/phonegap/phonegap-plugin-push/issues/185) -- Build failed with exit code 8 [\#184](https://github.com/phonegap/phonegap-plugin-push/issues/184) -- iOS: Not able to schedule local notification after adding the plugin [\#183](https://github.com/phonegap/phonegap-plugin-push/issues/183) -- How to show multiple notifications individually in android? [\#181](https://github.com/phonegap/phonegap-plugin-push/issues/181) -- iOS init option type [\#180](https://github.com/phonegap/phonegap-plugin-push/issues/180) -- Building for Android is a quest [\#179](https://github.com/phonegap/phonegap-plugin-push/issues/179) -- How do i tell if the user open the app by tapping the notification? [\#176](https://github.com/phonegap/phonegap-plugin-push/issues/176) -- IOS custom push sound when app is in background [\#175](https://github.com/phonegap/phonegap-plugin-push/issues/175) -- Hi guys please post full working procedure, I'm not able to get registration id also. Please help [\#174](https://github.com/phonegap/phonegap-plugin-push/issues/174) -- Has anyone tested this plugin on windows? [\#173](https://github.com/phonegap/phonegap-plugin-push/issues/173) +* How to handle a re-installed app? [\#203](https://github.com/phonegap/phonegap-plugin-push/issues/203) +* interactive push notifications? [\#266](https://github.com/phonegap/phonegap-plugin-push/issues/266) +* Empty registrationId Android [\#265](https://github.com/phonegap/phonegap-plugin-push/issues/265) +* Run callback when clicking of notification body [\#261](https://github.com/phonegap/phonegap-plugin-push/issues/261) +* Android BUILD FAILED [\#251](https://github.com/phonegap/phonegap-plugin-push/issues/251) +* Re-register [\#250](https://github.com/phonegap/phonegap-plugin-push/issues/250) +* how to work in background ? [\#249](https://github.com/phonegap/phonegap-plugin-push/issues/249) +* installing plugin [\#244](https://github.com/phonegap/phonegap-plugin-push/issues/244) +* No Sound and vibration [\#242](https://github.com/phonegap/phonegap-plugin-push/issues/242) +* Unable to build apk [\#241](https://github.com/phonegap/phonegap-plugin-push/issues/241) +* still having problems with build. [\#239](https://github.com/phonegap/phonegap-plugin-push/issues/239) +* Registering on iOS 9 [\#238](https://github.com/phonegap/phonegap-plugin-push/issues/238) +* Custom sound repeated multiple times on Android [\#237](https://github.com/phonegap/phonegap-plugin-push/issues/237) +* Android: status bar notification is not shown [\#236](https://github.com/phonegap/phonegap-plugin-push/issues/236) +* Multiple Push Notifications - phonegap build [\#234](https://github.com/phonegap/phonegap-plugin-push/issues/234) +* error: cannot find symbol String token = InstanceID.getInstance\(getApplicationContext\(\)\).getToken\(senderID, GCM\); [\#231](https://github.com/phonegap/phonegap-plugin-push/issues/231) +* Problem using "ledColor" and "VibrationPattern" [\#229](https://github.com/phonegap/phonegap-plugin-push/issues/229) +* Notificaction event receive, but not notification showing on android [\#228](https://github.com/phonegap/phonegap-plugin-push/issues/228) +* Events for registration not being fired [\#227](https://github.com/phonegap/phonegap-plugin-push/issues/227) +* 'registration' event not firing on windows phone [\#224](https://github.com/phonegap/phonegap-plugin-push/issues/224) +* Can i subscribe to a topic in using plugin? [\#219](https://github.com/phonegap/phonegap-plugin-push/issues/219) +* GCMIntentService.java:472: error: cannot find symbol iconColor [\#217](https://github.com/phonegap/phonegap-plugin-push/issues/217) +* Push Plugin registering on iOS 9 Devices but not showing Notification [\#216](https://github.com/phonegap/phonegap-plugin-push/issues/216) +* Receiving a notification "outside app" while in it? [\#213](https://github.com/phonegap/phonegap-plugin-push/issues/213) +* iOS push not working for device tokens when spaces removed [\#212](https://github.com/phonegap/phonegap-plugin-push/issues/212) +* Error: Plugin PushPlugin failed to install. [\#210](https://github.com/phonegap/phonegap-plugin-push/issues/210) +* Build error [\#205](https://github.com/phonegap/phonegap-plugin-push/issues/205) +* Android push.on\('registration', cb\) fires correctly on device, but not in emulator. [\#204](https://github.com/phonegap/phonegap-plugin-push/issues/204) +* 1.3.0 version not compatible with "crosswalk" by PGB [\#199](https://github.com/phonegap/phonegap-plugin-push/issues/199) +* How to get data on didReceiveNotification Background Process [\#198](https://github.com/phonegap/phonegap-plugin-push/issues/198) +* PushNotification is not defined in some devices [\#196](https://github.com/phonegap/phonegap-plugin-push/issues/196) +* not getting notifications on the Android device [\#195](https://github.com/phonegap/phonegap-plugin-push/issues/195) +* Installation Errors [\#186](https://github.com/phonegap/phonegap-plugin-push/issues/186) +* IOS: on registration fired twice [\#185](https://github.com/phonegap/phonegap-plugin-push/issues/185) +* Build failed with exit code 8 [\#184](https://github.com/phonegap/phonegap-plugin-push/issues/184) +* iOS: Not able to schedule local notification after adding the plugin [\#183](https://github.com/phonegap/phonegap-plugin-push/issues/183) +* How to show multiple notifications individually in android? [\#181](https://github.com/phonegap/phonegap-plugin-push/issues/181) +* iOS init option type [\#180](https://github.com/phonegap/phonegap-plugin-push/issues/180) +* Building for Android is a quest [\#179](https://github.com/phonegap/phonegap-plugin-push/issues/179) +* How do i tell if the user open the app by tapping the notification? [\#176](https://github.com/phonegap/phonegap-plugin-push/issues/176) +* IOS custom push sound when app is in background [\#175](https://github.com/phonegap/phonegap-plugin-push/issues/175) +* Hi guys please post full working procedure, I'm not able to get registration id also. Please help [\#174](https://github.com/phonegap/phonegap-plugin-push/issues/174) +* Has anyone tested this plugin on windows? [\#173](https://github.com/phonegap/phonegap-plugin-push/issues/173) ## [1.3.0](https://github.com/phonegap/phonegap-plugin-push/tree/1.3.0) (2015-09-21) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.2.3...1.3.0) **Implemented enhancements:** -- How to use GCM 3.0 with this plugin? [\#127](https://github.com/phonegap/phonegap-plugin-push/issues/127) -- Android: possibility to send a notification with a title and without message [\#122](https://github.com/phonegap/phonegap-plugin-push/issues/122) -- Enhancement - Led, Vibration Pattern, Priority on Android [\#105](https://github.com/phonegap/phonegap-plugin-push/issues/105) +* How to use GCM 3.0 with this plugin? [\#127](https://github.com/phonegap/phonegap-plugin-push/issues/127) +* Android: possibility to send a notification with a title and without message [\#122](https://github.com/phonegap/phonegap-plugin-push/issues/122) +* Enhancement - Led, Vibration Pattern, Priority on Android [\#105](https://github.com/phonegap/phonegap-plugin-push/issues/105) **Fixed bugs:** -- It is using in gcm data.additionalData ? [\#126](https://github.com/phonegap/phonegap-plugin-push/issues/126) -- iOS notification from cold boot [\#117](https://github.com/phonegap/phonegap-plugin-push/issues/117) -- Notification LED is not working [\#97](https://github.com/phonegap/phonegap-plugin-push/issues/97) +* It is using in gcm data.additionalData ? [\#126](https://github.com/phonegap/phonegap-plugin-push/issues/126) +* iOS notification from cold boot [\#117](https://github.com/phonegap/phonegap-plugin-push/issues/117) +* Notification LED is not working [\#97](https://github.com/phonegap/phonegap-plugin-push/issues/97) **Closed issues:** -- Know which version is used in build service [\#151](https://github.com/phonegap/phonegap-plugin-push/issues/151) -- Registration is not working in IOS9 [\#150](https://github.com/phonegap/phonegap-plugin-push/issues/150) -- build fail on android [\#149](https://github.com/phonegap/phonegap-plugin-push/issues/149) -- iconColor does not set icon background on Android [\#146](https://github.com/phonegap/phonegap-plugin-push/issues/146) -- Prevent windows toast notification when in foreground [\#145](https://github.com/phonegap/phonegap-plugin-push/issues/145) -- How to implement push notification for ios with this plug-in? [\#143](https://github.com/phonegap/phonegap-plugin-push/issues/143) -- After installing this plugin I can't build on Android [\#141](https://github.com/phonegap/phonegap-plugin-push/issues/141) -- version 1.2.3 [\#134](https://github.com/phonegap/phonegap-plugin-push/issues/134) -- New inbox style on android [\#131](https://github.com/phonegap/phonegap-plugin-push/issues/131) -- impossible to install the phonegap-plugin-push Error [\#130](https://github.com/phonegap/phonegap-plugin-push/issues/130) -- Hello, i am developing a cordova app which requires push notifications to be sent to users android phone, so i tried using this new phonegap push plugin as old one is deprecated, and it keeps giving me an error in console: Uncaught ReferenceError: module is not defined --- Line 154 Push.js and i dont have much experience with cordova, so can anyone assist me ? [\#128](https://github.com/phonegap/phonegap-plugin-push/issues/128) -- INVALID\_REGISTRATION when http post request with to IOS [\#123](https://github.com/phonegap/phonegap-plugin-push/issues/123) -- Andriod :More than 2 notifications in status bar it is not works. [\#121](https://github.com/phonegap/phonegap-plugin-push/issues/121) -- Release notes for 1.2.x [\#119](https://github.com/phonegap/phonegap-plugin-push/issues/119) -- Google cloud messaging GCM - Push Notification not being sent \(Server Side\) [\#110](https://github.com/phonegap/phonegap-plugin-push/issues/110) +* Know which version is used in build service [\#151](https://github.com/phonegap/phonegap-plugin-push/issues/151) +* Registration is not working in IOS9 [\#150](https://github.com/phonegap/phonegap-plugin-push/issues/150) +* build fail on android [\#149](https://github.com/phonegap/phonegap-plugin-push/issues/149) +* iconColor does not set icon background on Android [\#146](https://github.com/phonegap/phonegap-plugin-push/issues/146) +* Prevent windows toast notification when in foreground [\#145](https://github.com/phonegap/phonegap-plugin-push/issues/145) +* How to implement push notification for ios with this plug-in? [\#143](https://github.com/phonegap/phonegap-plugin-push/issues/143) +* After installing this plugin I can't build on Android [\#141](https://github.com/phonegap/phonegap-plugin-push/issues/141) +* version 1.2.3 [\#134](https://github.com/phonegap/phonegap-plugin-push/issues/134) +* New inbox style on android [\#131](https://github.com/phonegap/phonegap-plugin-push/issues/131) +* impossible to install the phonegap-plugin-push Error [\#130](https://github.com/phonegap/phonegap-plugin-push/issues/130) +* Hello, i am developing a cordova app which requires push notifications to be sent to users android phone, so i tried using this new phonegap push plugin as old one is deprecated, and it keeps giving me an error in console: Uncaught ReferenceError: module is not defined --- Line 154 Push.js and i dont have much experience with cordova, so can anyone assist me ? [\#128](https://github.com/phonegap/phonegap-plugin-push/issues/128) +* INVALID_REGISTRATION when http post request with to IOS [\#123](https://github.com/phonegap/phonegap-plugin-push/issues/123) +* Andriod :More than 2 notifications in status bar it is not works. [\#121](https://github.com/phonegap/phonegap-plugin-push/issues/121) +* Release notes for 1.2.x [\#119](https://github.com/phonegap/phonegap-plugin-push/issues/119) +* Google cloud messaging GCM - Push Notification not being sent \(Server Side\) [\#110](https://github.com/phonegap/phonegap-plugin-push/issues/110) ## [1.2.3](https://github.com/phonegap/phonegap-plugin-push/tree/1.2.3) (2015-09-08) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.2.2...1.2.3) **Fixed bugs:** -- Notification not showing..... [\#101](https://github.com/phonegap/phonegap-plugin-push/issues/101) -- Same data payload for messages with action buttons [\#90](https://github.com/phonegap/phonegap-plugin-push/issues/90) +* Notification not showing..... [\#101](https://github.com/phonegap/phonegap-plugin-push/issues/101) +* Same data payload for messages with action buttons [\#90](https://github.com/phonegap/phonegap-plugin-push/issues/90) **Closed issues:** -- Notification doesn't show the app icon [\#112](https://github.com/phonegap/phonegap-plugin-push/issues/112) -- Notification doesn't show the app icon [\#111](https://github.com/phonegap/phonegap-plugin-push/issues/111) -- Issue with plugin facebook connect [\#107](https://github.com/phonegap/phonegap-plugin-push/issues/107) -- Cordova Support [\#99](https://github.com/phonegap/phonegap-plugin-push/issues/99) -- Uncaught ReferenceError: cordova is not defined, http://localhost:8100/lib/push.js, Line: 7 [\#98](https://github.com/phonegap/phonegap-plugin-push/issues/98) -- Notifications never received on Android [\#96](https://github.com/phonegap/phonegap-plugin-push/issues/96) -- How know the way the app was launched [\#95](https://github.com/phonegap/phonegap-plugin-push/issues/95) -- Android, example doesn't work when it goes into background [\#94](https://github.com/phonegap/phonegap-plugin-push/issues/94) -- Utilizing push plugin [\#91](https://github.com/phonegap/phonegap-plugin-push/issues/91) +* Notification doesn't show the app icon [\#112](https://github.com/phonegap/phonegap-plugin-push/issues/112) +* Notification doesn't show the app icon [\#111](https://github.com/phonegap/phonegap-plugin-push/issues/111) +* Issue with plugin facebook connect [\#107](https://github.com/phonegap/phonegap-plugin-push/issues/107) +* Cordova Support [\#99](https://github.com/phonegap/phonegap-plugin-push/issues/99) +* Uncaught ReferenceError: cordova is not defined, http://localhost:8100/lib/push.js, Line: 7 [\#98](https://github.com/phonegap/phonegap-plugin-push/issues/98) +* Notifications never received on Android [\#96](https://github.com/phonegap/phonegap-plugin-push/issues/96) +* How know the way the app was launched [\#95](https://github.com/phonegap/phonegap-plugin-push/issues/95) +* Android, example doesn't work when it goes into background [\#94](https://github.com/phonegap/phonegap-plugin-push/issues/94) +* Utilizing push plugin [\#91](https://github.com/phonegap/phonegap-plugin-push/issues/91) ## [1.2.2](https://github.com/phonegap/phonegap-plugin-push/tree/1.2.2) (2015-08-31) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.2.1...1.2.2) **Closed issues:** -- PushPlugin notification icon is too big [\#88](https://github.com/phonegap/phonegap-plugin-push/issues/88) +* PushPlugin notification icon is too big [\#88](https://github.com/phonegap/phonegap-plugin-push/issues/88) ## [1.2.1](https://github.com/phonegap/phonegap-plugin-push/tree/1.2.1) (2015-08-31) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.2.0...1.2.1) **Implemented enhancements:** -- Question about GCM Notifications and data in the message payload [\#87](https://github.com/phonegap/phonegap-plugin-push/issues/87) +* Question about GCM Notifications and data in the message payload [\#87](https://github.com/phonegap/phonegap-plugin-push/issues/87) **Fixed bugs:** -- Notification callback for pushes without a message [\#80](https://github.com/phonegap/phonegap-plugin-push/issues/80) +* Notification callback for pushes without a message [\#80](https://github.com/phonegap/phonegap-plugin-push/issues/80) **Closed issues:** -- Android: No notification displayed on device. Notification event never called. [\#86](https://github.com/phonegap/phonegap-plugin-push/issues/86) -- it seem no wp8 version for now [\#56](https://github.com/phonegap/phonegap-plugin-push/issues/56) +* Android: No notification displayed on device. Notification event never called. [\#86](https://github.com/phonegap/phonegap-plugin-push/issues/86) +* it seem no wp8 version for now [\#56](https://github.com/phonegap/phonegap-plugin-push/issues/56) ## [1.2.0](https://github.com/phonegap/phonegap-plugin-push/tree/1.2.0) (2015-08-25) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.1.1...1.2.0) **Implemented enhancements:** -- Implement Inbox style for Android [\#74](https://github.com/phonegap/phonegap-plugin-push/issues/74) -- multi-line text support [\#63](https://github.com/phonegap/phonegap-plugin-push/issues/63) +* Implement Inbox style for Android [\#74](https://github.com/phonegap/phonegap-plugin-push/issues/74) +* multi-line text support [\#63](https://github.com/phonegap/phonegap-plugin-push/issues/63) **Fixed bugs:** -- Pushes being deleted from notification bar when cold start [\#67](https://github.com/phonegap/phonegap-plugin-push/issues/67) +* Pushes being deleted from notification bar when cold start [\#67](https://github.com/phonegap/phonegap-plugin-push/issues/67) **Closed issues:** -- oficial push plugin and windows and wp8 compatibility [\#71](https://github.com/phonegap/phonegap-plugin-push/issues/71) -- On Android, GCMIntentService.onError\(\) doesn't get passed to the JavaScript "error" event [\#65](https://github.com/phonegap/phonegap-plugin-push/issues/65) -- Android: add property to vibrate phone on received notification [\#61](https://github.com/phonegap/phonegap-plugin-push/issues/61) -- push.on =\> "registration" will trigger twice times that only in iOS [\#57](https://github.com/phonegap/phonegap-plugin-push/issues/57) +* oficial push plugin and windows and wp8 compatibility [\#71](https://github.com/phonegap/phonegap-plugin-push/issues/71) +* On Android, GCMIntentService.onError\(\) doesn't get passed to the JavaScript "error" event [\#65](https://github.com/phonegap/phonegap-plugin-push/issues/65) +* Android: add property to vibrate phone on received notification [\#61](https://github.com/phonegap/phonegap-plugin-push/issues/61) +* push.on =\> "registration" will trigger twice times that only in iOS [\#57](https://github.com/phonegap/phonegap-plugin-push/issues/57) ## [1.1.1](https://github.com/phonegap/phonegap-plugin-push/tree/1.1.1) (2015-07-27) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.1.0...1.1.1) ## [1.1.0](https://github.com/phonegap/phonegap-plugin-push/tree/1.1.0) (2015-07-27) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.0.1...1.1.0) **Implemented enhancements:** -- iOS doesn't add foreground key [\#41](https://github.com/phonegap/phonegap-plugin-push/issues/41) -- Android: Notification icon problem [\#20](https://github.com/phonegap/phonegap-plugin-push/issues/20) -- iOS badge number [\#18](https://github.com/phonegap/phonegap-plugin-push/issues/18) -- How i can set icons for push notifications in status bar and push view in android [\#14](https://github.com/phonegap/phonegap-plugin-push/issues/14) -- Support Win8.1 + Phone 8.1 Universal Apps \(WNS\), drop support for WP8.0 \(MPNS\) [\#13](https://github.com/phonegap/phonegap-plugin-push/issues/13) +* iOS doesn't add foreground key [\#41](https://github.com/phonegap/phonegap-plugin-push/issues/41) +* Android: Notification icon problem [\#20](https://github.com/phonegap/phonegap-plugin-push/issues/20) +* iOS badge number [\#18](https://github.com/phonegap/phonegap-plugin-push/issues/18) +* How i can set icons for push notifications in status bar and push view in android [\#14](https://github.com/phonegap/phonegap-plugin-push/issues/14) +* Support Win8.1 + Phone 8.1 Universal Apps \(WNS\), drop support for WP8.0 \(MPNS\) [\#13](https://github.com/phonegap/phonegap-plugin-push/issues/13) **Fixed bugs:** -- iOS only reads out "aps" payload [\#29](https://github.com/phonegap/phonegap-plugin-push/issues/29) -- Event not fired when in background [\#24](https://github.com/phonegap/phonegap-plugin-push/issues/24) -- Custom notification sound in background mode? [\#17](https://github.com/phonegap/phonegap-plugin-push/issues/17) +* iOS only reads out "aps" payload [\#29](https://github.com/phonegap/phonegap-plugin-push/issues/29) +* Event not fired when in background [\#24](https://github.com/phonegap/phonegap-plugin-push/issues/24) +* Custom notification sound in background mode? [\#17](https://github.com/phonegap/phonegap-plugin-push/issues/17) **Closed issues:** -- iOS only receives first notification in foreground [\#42](https://github.com/phonegap/phonegap-plugin-push/issues/42) -- Cannot register on iOS [\#30](https://github.com/phonegap/phonegap-plugin-push/issues/30) -- Fix Android paths in src folder [\#23](https://github.com/phonegap/phonegap-plugin-push/issues/23) -- PushNotification not defined [\#21](https://github.com/phonegap/phonegap-plugin-push/issues/21) -- Error trying to remove the plugin [\#19](https://github.com/phonegap/phonegap-plugin-push/issues/19) -- Handling multiple notifications on Android devices [\#12](https://github.com/phonegap/phonegap-plugin-push/issues/12) -- PGB \(build.phonegap.com\) problem [\#11](https://github.com/phonegap/phonegap-plugin-push/issues/11) -- reporting location via gcm [\#6](https://github.com/phonegap/phonegap-plugin-push/issues/6) +* iOS only receives first notification in foreground [\#42](https://github.com/phonegap/phonegap-plugin-push/issues/42) +* Cannot register on iOS [\#30](https://github.com/phonegap/phonegap-plugin-push/issues/30) +* Fix Android paths in src folder [\#23](https://github.com/phonegap/phonegap-plugin-push/issues/23) +* PushNotification not defined [\#21](https://github.com/phonegap/phonegap-plugin-push/issues/21) +* Error trying to remove the plugin [\#19](https://github.com/phonegap/phonegap-plugin-push/issues/19) +* Handling multiple notifications on Android devices [\#12](https://github.com/phonegap/phonegap-plugin-push/issues/12) +* PGB \(build.phonegap.com\) problem [\#11](https://github.com/phonegap/phonegap-plugin-push/issues/11) +* reporting location via gcm [\#6](https://github.com/phonegap/phonegap-plugin-push/issues/6) **Merged pull requests:** -- Updating Readme to document toast capable setting [\#47](https://github.com/phonegap/phonegap-plugin-push/pull/47) ([rakatyal](https://github.com/rakatyal)) -- fix issue \#41 [\#44](https://github.com/phonegap/phonegap-plugin-push/pull/44) ([Deminetix](https://github.com/Deminetix)) -- fix issue \#42 [\#43](https://github.com/phonegap/phonegap-plugin-push/pull/43) ([Deminetix](https://github.com/Deminetix)) -- Adding hyperlinks to README [\#40](https://github.com/phonegap/phonegap-plugin-push/pull/40) ([rakatyal](https://github.com/rakatyal)) -- Updating Readme [\#37](https://github.com/phonegap/phonegap-plugin-push/pull/37) ([rakatyal](https://github.com/rakatyal)) -- Adding windows support to plugin [\#36](https://github.com/phonegap/phonegap-plugin-push/pull/36) ([rakatyal](https://github.com/rakatyal)) -- Raghav/update [\#35](https://github.com/phonegap/phonegap-plugin-push/pull/35) ([rakatyal](https://github.com/rakatyal)) -- Adding behavior for different notification types [\#28](https://github.com/phonegap/phonegap-plugin-push/pull/28) ([rakatyal](https://github.com/rakatyal)) -- Initial commit to add support for windows universal platform [\#15](https://github.com/phonegap/phonegap-plugin-push/pull/15) ([rakatyal](https://github.com/rakatyal)) +* Updating Readme to document toast capable setting [\#47](https://github.com/phonegap/phonegap-plugin-push/pull/47) ([rakatyal](https://github.com/rakatyal)) +* fix issue \#41 [\#44](https://github.com/phonegap/phonegap-plugin-push/pull/44) ([Deminetix](https://github.com/Deminetix)) +* fix issue \#42 [\#43](https://github.com/phonegap/phonegap-plugin-push/pull/43) ([Deminetix](https://github.com/Deminetix)) +* Adding hyperlinks to README [\#40](https://github.com/phonegap/phonegap-plugin-push/pull/40) ([rakatyal](https://github.com/rakatyal)) +* Updating Readme [\#37](https://github.com/phonegap/phonegap-plugin-push/pull/37) ([rakatyal](https://github.com/rakatyal)) +* Adding windows support to plugin [\#36](https://github.com/phonegap/phonegap-plugin-push/pull/36) ([rakatyal](https://github.com/rakatyal)) +* Raghav/update [\#35](https://github.com/phonegap/phonegap-plugin-push/pull/35) ([rakatyal](https://github.com/rakatyal)) +* Adding behavior for different notification types [\#28](https://github.com/phonegap/phonegap-plugin-push/pull/28) ([rakatyal](https://github.com/rakatyal)) +* Initial commit to add support for windows universal platform [\#15](https://github.com/phonegap/phonegap-plugin-push/pull/15) ([rakatyal](https://github.com/rakatyal)) ## [1.0.1](https://github.com/phonegap/phonegap-plugin-push/tree/1.0.1) (2015-06-08) + [Full Changelog](https://github.com/phonegap/phonegap-plugin-push/compare/1.0.0...1.0.1) **Closed issues:** -- documentation "senderId" correction [\#10](https://github.com/phonegap/phonegap-plugin-push/issues/10) -- add to our ci page [\#9](https://github.com/phonegap/phonegap-plugin-push/issues/9) -- Update installation instructions [\#7](https://github.com/phonegap/phonegap-plugin-push/issues/7) +* documentation "senderId" correction [\#10](https://github.com/phonegap/phonegap-plugin-push/issues/10) +* add to our ci page [\#9](https://github.com/phonegap/phonegap-plugin-push/issues/9) +* Update installation instructions [\#7](https://github.com/phonegap/phonegap-plugin-push/issues/7) ## [1.0.0](https://github.com/phonegap/phonegap-plugin-push/tree/1.0.0) (2015-06-05) -**Closed issues:** - -- Update code using enabledRemoteNotificationTypes because it is β€œnot supported in iOS 8” [\#8](https://github.com/phonegap/phonegap-plugin-push/issues/8) -- Register method not working [\#4](https://github.com/phonegap/phonegap-plugin-push/issues/4) -- Publish plugin to npm [\#3](https://github.com/phonegap/phonegap-plugin-push/issues/3) -- Update example to use new API [\#2](https://github.com/phonegap/phonegap-plugin-push/issues/2) -- Lowercase Example/ directory [\#1](https://github.com/phonegap/phonegap-plugin-push/issues/1) +**Closed issues:** +* Update code using enabledRemoteNotificationTypes because it is β€œnot supported in iOS 8” [\#8](https://github.com/phonegap/phonegap-plugin-push/issues/8) +* Register method not working [\#4](https://github.com/phonegap/phonegap-plugin-push/issues/4) +* Publish plugin to npm [\#3](https://github.com/phonegap/phonegap-plugin-push/issues/3) +* Update example to use new API [\#2](https://github.com/phonegap/phonegap-plugin-push/issues/2) +* Lowercase Example/ directory [\#1](https://github.com/phonegap/phonegap-plugin-push/issues/1) -\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* +\* _This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)_ diff --git a/README.md b/README.md index f0b018cfe..777051649 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,6 @@ of the `Firebase Cloud Messaging` library. More details are available in the # Do you like tutorial? You get tutorial! * [PhoneGap Day US Push Workshop 2016 (using node-gcm)](http://macdonst.github.io/push-workshop/) -* [PhoneGap Day EU Push Workshop 2016 (using PhoneGap Push)](http://macdonst.github.io/push-workshop-eu/) # Thanks to all our contributors diff --git a/_config.yml b/_config.yml new file mode 100644 index 000000000..c74188174 --- /dev/null +++ b/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-slate \ No newline at end of file diff --git a/docs/API.md b/docs/API.md index 364208565..0b1a9ea86 100644 --- a/docs/API.md +++ b/docs/API.md @@ -17,6 +17,7 @@ - [push.getApplicationIconBadgeNumber() - iOS & Android only](#pushgetapplicationiconbadgenumbersuccesshandler-errorhandler---ios--android-only) - [push.finish() - iOS only](#pushfinishsuccesshandler-errorhandler-id---ios-only) - [push.clearAllNotifications() - iOS & Android only](#pushclearallnotificationssuccesshandler-errorhandler---ios--android-only) +- [push.clearNotification() - iOS & Android only](#pushclearnotificationid-successhandler-errorhandler---ios--android-only) ## PushNotification.init(options) @@ -28,59 +29,59 @@ Initializes the plugin on the native side. ### Returns -- Instance of `PushNotification`. +* Instance of `PushNotification`. ### Parameters -Parameter | Type | Default | Description ---------- | ---- | ------- | ----------- -`options` | `Object` | `{}` | An object describing relevant specific options for all target platforms. +| Parameter | Type | Default | Description | +| --------- | -------- | ------- | ------------------------------------------------------------------------ | +| `options` | `Object` | `{}` | An object describing relevant specific options for all target platforms. | All available option attributes are described bellow. Currently, there are no Windows specific options. #### Android -Attribute | Type | Default | Description ---------- | ---- | ------- | ----------- -`android.icon` | `string` | | Optional. The name of a drawable resource to use as the small-icon. The name should not include the extension. -`android.iconColor` | `string` | | Optional. Sets the background color of the small icon on Android 5.0 and greater. [Supported Formats](http://developer.android.com/reference/android/graphics/Color.html#parseColor(java.lang.String)) -`android.sound` | `boolean` | `true` | Optional. If `true` it plays the sound specified in the push data or the default system sound. -`android.vibrate` | `boolean` | `true` | Optional. If `true` the device vibrates on receipt of notification. -`android.clearBadge` | `boolean` | `false` | Optional. If `true` the icon badge will be cleared on init and before push messages are processed. -`android.clearNotifications` | `boolean` | `true` | Optional. If `true` the app clears all pending notifications when it is closed. -`android.forceShow` | `boolean` | `false` | Optional. Controls the behavior of the notification when app is in foreground. If `true` and app is in foreground, it will show a notification in the notification drawer, the same way as when the app is in background (and `on('notification')` callback will be called *only when the user clicks the notification*). When `false` and app is in foreground, the `on('notification')` callback will be called immediately. -`android.topics` | `array` | `[]` | Optional. If the array contains one or more strings each string will be used to subscribe to a FcmPubSub topic. -`android.messageKey` | `string` | `message` | Optional. The key to search for text of notification. -`android.titleKey` | `string` | `'title'` | Optional. The key to search for title of notification. +| Attribute | Type | Default | Description | +| ---------------------------- | --------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `android.icon` | `string` | | Optional. The name of a drawable resource to use as the small-icon. The name should not include the extension. | +| `android.iconColor` | `string` | | Optional. Sets the background color of the small icon on Android 5.0 and greater. [Supported Formats]() | +| `android.sound` | `boolean` | `true` | Optional. If `true` it plays the sound specified in the push data or the default system sound. | +| `android.vibrate` | `boolean` | `true` | Optional. If `true` the device vibrates on receipt of notification. | +| `android.clearBadge` | `boolean` | `false` | Optional. If `true` the icon badge will be cleared on init and before push messages are processed. | +| `android.clearNotifications` | `boolean` | `true` | Optional. If `true` the app clears all pending notifications when it is closed. | +| `android.forceShow` | `boolean` | `false` | Optional. Controls the behavior of the notification when app is in foreground. If `true` and app is in foreground, it will show a notification in the notification drawer, the same way as when the app is in background (and `on('notification')` callback will be called _only when the user clicks the notification_). When `false` and app is in foreground, the `on('notification')` callback will be called immediately. | +| `android.topics` | `array` | `[]` | Optional. If the array contains one or more strings each string will be used to subscribe to a FcmPubSub topic. | +| `android.messageKey` | `string` | `message` | Optional. The key to search for text of notification. | +| `android.titleKey` | `string` | `'title'` | Optional. The key to search for title of notification. | #### Browser -Attribute | Type | Default | Description ---------- | ---- | ------- | ----------- -`browser.pushServiceURL` | `string` | `http://push.api.phonegap.com/v1/push` | Optional. URL for the push server you want to use. -`browser.applicationServerKey` | `string` | `` | Optional. Your GCM API key if you are using VAPID keys. +| Attribute | Type | Default | Description | +| ------------------------------ | -------- | ------------------------------------------------------------ | -------------------------------------------------- | +| `browser.pushServiceURL` | `string` | `http://push.api.phonegap.com/v1/push` | Optional. URL for the push server you want to use. | +| `browser.applicationServerKey` | `string` | `` | Optional. Your GCM API key if you are using VAPID keys. | #### iOS All iOS boolean options can also be specified as `string` -Attribute | Type | Default | Description ---------- | ---- | ------- | ----------- -`ios.alert` | `boolean` | `false` | Optional. If `true` the device shows an alert on receipt of notification. **Note:** the value you set this option to the first time you call the init method will be how the application always acts. Once this is set programmatically in the init method it can only be changed manually by the user in Settings>Notifications>`App Name`. This is normal iOS behaviour. -`ios.badge` | `boolean` | `false` | Optional. If `true` the device sets the badge number on receipt of notification. **Note:** the value you set this option to the first time you call the init method will be how the application always acts. Once this is set programmatically in the init method it can only be changed manually by the user in Settings>Notifications>`App Name`. This is normal iOS behaviour. -`ios.sound` | `boolean` | `false` | Optional. If `true` the device plays a sound on receipt of notification. **Note:** the value you set this option to the first time you call the init method will be how the application always acts. Once this is set programmatically in the init method it can only be changed manually by the user in Settings>Notifications>`App Name`. This is normal iOS behaviour. -`ios.clearBadge` | `boolean` | `false` | Optional. If `true` the badge will be cleared on app startup. -`ios.categories` | `Object` | `{}` | Optional. The data required in order to enabled Action Buttons for iOS. See [Action Buttons on iOS](https://github.com/phonegap/phonegap-plugin-push/blob/master/docs/PAYLOAD.md#action-buttons-1) for more details. +| Attribute | Type | Default | Description | +| ---------------- | --------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ios.voip` | `boolean` | `false` | Optional. If `true` the device will be set up to receive VoIP Push notifications and the other options will be ignored since VoIP notifications are silent notifications that should be handled in the "notification" event. | +| `ios.alert` | `boolean` | `false` | Optional. If `true` the device shows an alert on receipt of notification. **Note:** the value you set this option to the first time you call the init method will be how the application always acts. Once this is set programmatically in the init method it can only be changed manually by the user in Settings>Notifications>`App Name`. This is normal iOS behaviour. | +| `ios.badge` | `boolean` | `false` | Optional. If `true` the device sets the badge number on receipt of notification. **Note:** the value you set this option to the first time you call the init method will be how the application always acts. Once this is set programmatically in the init method it can only be changed manually by the user in Settings>Notifications>`App Name`. This is normal iOS behaviour. | +| `ios.sound` | `boolean` | `false` | Optional. If `true` the device plays a sound on receipt of notification. **Note:** the value you set this option to the first time you call the init method will be how the application always acts. Once this is set programmatically in the init method it can only be changed manually by the user in Settings>Notifications>`App Name`. This is normal iOS behaviour. | +| `ios.clearBadge` | `boolean` | `false` | Optional. If `true` the badge will be cleared on app startup. | +| `ios.categories` | `Object` | `{}` | Optional. The data required in order to enabled Action Buttons for iOS. See [Action Buttons on iOS](https://github.com/phonegap/phonegap-plugin-push/blob/master/docs/PAYLOAD.md#action-buttons-1) for more details. | #### iOS GCM support The following properties are used if you want use GCM on iOS. -Attribute | Type | Default | Description ---------- | ---- | ------- | ----------- -`ios.fcmSandbox` | `boolean` | `false` | Whether to use prod or sandbox GCM setting. Defaults to false. -options -`ios.topics` | `array` | `[]` | Optional. If the array contains one or more strings each string will be used to subscribe to a FcmPubSub topic. +| Attribute | Type | Default | Description | +| ---------------- | --------- | ------- | -------------------------------------------------------------- | +| `ios.fcmSandbox` | `boolean` | `false` | Whether to use prod or sandbox GCM setting. Defaults to false. | +| `ios.topics` | `array` | `[]` | Optional. If the array contains one or more strings each string will be used to subscribe to a FcmPubSub topic. | ##### How GCM on iOS works. @@ -92,28 +93,61 @@ When you send a message to GCM using that ID, what it does is look up the APNS r Make sure that the certificate you build with matches your `fcmSandbox` value. -- If you build your app as development and set `fcmSandbox: false` it will fail. -- If you build your app as production and set `fcmSandbox: true` it will fail. -- If you build your app as development and set `fcmSandbox: true` but haven't uploaded the development certs to Google it will fail. -- If you build your app as production and set `fcmSandbox: false` but haven't uploaded the production certs to Google it will fail. +* If you build your app as development and set `fcmSandbox: false` it will fail. +* If you build your app as production and set `fcmSandbox: true` it will fail. +* If you build your app as development and set `fcmSandbox: true` but haven't uploaded the development certs to Google it will fail. +* If you build your app as production and set `fcmSandbox: false` but haven't uploaded the production certs to Google it will fail. > Note: The integration between GCM and APNS is a bit finicky. Personally, I feel it is much better to send pushes to Android using GCM and pushes to iOS using APNS which this plugin does support. +#### iOS VoIP Notifications + +It is possible to receive VoIP Notifications in iOS that can execute the "notification" event also when the application is in background or closed. + +This type of notifications consist only of payload data, so the developer is the responsible of handling the event and do whatever the aplication should do when receiving one of them. The cordova-plugin-local-notifications is a good complement for the VoIP feature. + +In order to use the VoIP Notifications, you have to create a VoIP Services Certificate. There are a lot of tutorials on the web to achieve this. Once created, you must use this certificate in order to communicate with the APN Service. + +To set up the VoIP Notification in ios do: + +```javascript +const push = PushNotification.init({ + ios: { + voip: true + } +}); +``` + +Once set up the voip parameter to true, the rest of the options will be ignored. + +You will also need to setup your app to receive `voip` messages in the apps pList. In your apps config.xml add the following in the `` tag. Only do this if you are setup to receive `voip` messages. If your app does not use `voip` messages the Apple App Store will reject your app. + +```xml + + + voip + + +``` + +The "hasPermission" success callback will return data.isEnabled to false since there is no need to approve to use this type of notifications. + +The "finish" method has not use too when the VoIP notifications are enabled. + ### Example ```javascript const push = PushNotification.init({ - android: { - }, - browser: { - pushServiceURL: 'http://push.api.phonegap.com/v1/push' - }, - ios: { - alert: "true", - badge: true, - sound: 'false' - }, - windows: {} + android: {}, + browser: { + pushServiceURL: 'http://push.api.phonegap.com/v1/push' + }, + ios: { + alert: 'true', + badge: true, + sound: 'false' + }, + windows: {} }); ``` @@ -123,25 +157,25 @@ Checks whether the push notification permission has been granted. ### Parameters -Parameter | Type | Default | Description ---------- | ---- | ------- | ----------- -`successHandler` | `Function` | | Is called when the api successfully retrieves the details on the permission. +| Parameter | Type | Default | Description | +| ---------------- | ---------- | ------- | ---------------------------------------------------------------------------- | +| `successHandler` | `Function` | | Is called when the api successfully retrieves the details on the permission. | ### Callback parameters #### `successHandler` -Parameter | Type | Description ---------- | ---- | ----------- -`data.isEnabled` | `Boolean` | Whether the permission for push notifications has been granted. +| Parameter | Type | Description | +| ---------------- | --------- | --------------------------------------------------------------- | +| `data.isEnabled` | `Boolean` | Whether the permission for push notifications has been granted. | ### Example ```javascript -PushNotification.hasPermission((data) => { - if (data.isEnabled) { - console.log('isEnabled'); - } +PushNotification.hasPermission(data => { + if (data.isEnabled) { + console.log('isEnabled'); + } }); ``` @@ -151,27 +185,45 @@ Create a new notification channel for Android O and above. ### Parameters -Parameter | Type | Default | Description ---------- | ---- | ------- | ----------- -`successHandler` | `Function` | | Is called when the api successfully creates a channel. -`failureHandler` | `Function` | | Is called when the api fails to create a channel. -`channel` | `Object` | | The options for the channel. +| Parameter | Type | Default | Description | +| ---------------- | ---------- | ------- | ------------------------------------------------------ | +| `successHandler` | `Function` | | Is called when the api successfully creates a channel. | +| `failureHandler` | `Function` | | Is called when the api fails to create a channel. | +| `channel` | `Object` | | The options for the channel. | ### Example ```javascript -PushNotification.createChannel(() => { - console.log('success'); -}, () => { - console.log('error'); -}, { - id: "testchannel1", - description: "My first test channel", - importance: 3 -}); +PushNotification.createChannel( + () => { + console.log('success'); + }, + () => { + console.log('error'); + }, + { + id: 'testchannel1', + description: 'My first test channel', + importance: 3, + vibration: true + } +); ``` -The above will create a channel for your app. You'll need to provide the `id`, `description` and `importance` properties. The importance property goes from 1 = Lowest, 2 = Low, 3 = Normal, 4 = High and 5 = Highest. +The above will create a channel for your app. You'll need to provide the `id`, `description` and `importance` properties. + +A default channel with the id "PushPluginChannel" is created automatically. To make changes to the default channel's settings, create a channel with the id "PushPluginChannel" before calling the PushNotification.init function. + +### Channel properties + +| Property | Type | Description | +| -------------------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | `String` | The id of the channel. Must be unique per package. The value may be truncated if it is too long. | +| `description` | `String` | The user visible name of the channel. The recommended maximum length is 40 characters; the value may be truncated if it is too long. | +| `importance` | `Int` | The importance of the channel. This controls how interruptive notifications posted to this channel are. The importance property goes from 1 = Lowest, 2 = Low, 3 = Normal, 4 = High and 5 = Highest. | +| `sound` | `String` | The name of the sound file to be played upon receipt of the notification in this channel. Cannot be changed after channel is created. | +| `vibration` | `Boolean` or `Array` | Boolean sets whether notification posted to this channel should vibrate. Array sets custom vibration pattern. Example - vibration: `[2000, 1000, 500, 500]`. Cannot be changed after channel is created. | +| `visibility` | `Int` | Sets whether notifications posted to this channel appear on the lockscreen or not, and if so, whether they appear in a redacted form. 0 = Private, 1 = Public, -1 = Secret. | ## PushNotification.deleteChannel(successHandler, failureHandler, channelId) @@ -179,20 +231,24 @@ Delete a notification channel for Android O and above. ### Parameters -Parameter | Type | Default | Description ---------- | ---- | ------- | ----------- -`successHandler` | `Function` | | Is called when the api successfully creates a channel. -`failureHandler` | `Function` | | Is called when the api fails to create a channel. -`channelId` | `String` | | The ID of the channel. +| Parameter | Type | Default | Description | +| ---------------- | ---------- | ------- | ------------------------------------------------------ | +| `successHandler` | `Function` | | Is called when the api successfully creates a channel. | +| `failureHandler` | `Function` | | Is called when the api fails to create a channel. | +| `channelId` | `String` | | The ID of the channel. | ### Example ```javascript -PushNotification.deleteChannel(() => { - console.log('success'); -}, () => { - console.log('error'); -}, 'testchannel1'); +PushNotification.deleteChannel( + () => { + console.log('success'); + }, + () => { + console.log('error'); + }, + 'testchannel1' +); ``` ## PushNotification.listChannels(successHandler) @@ -201,25 +257,25 @@ Returns a list of currently configured channels. ### Parameters -Parameter | Type | Default | Description ---------- | ---- | ------- | ----------- -`successHandler` | `Function` | | Is called when the api successfully retrieves the list of channels. +| Parameter | Type | Default | Description | +| ---------------- | ---------- | ------- | ------------------------------------------------------------------- | +| `successHandler` | `Function` | | Is called when the api successfully retrieves the list of channels. | ### Callback parameters #### `successHandler` -Parameter | Type | Description ---------- | ---- | ----------- -`channels` | `JSONArrary` | List of channel objects. +| Parameter | Type | Description | +| ---------- | ------------ | ------------------------ | +| `channels` | `JSONArrary` | List of channel objects. | ### Example ```javascript -PushNotification.listChannels((channels) => { - for(let channel of channels) { - console.log(`ID: ${channel.id} Description: ${channel.description}`); - } +PushNotification.listChannels(channels => { + for (let channel of channels) { + console.log(`ID: ${channel.id} Description: ${channel.description}`); + } }); ``` @@ -227,10 +283,10 @@ PushNotification.listChannels((channels) => { ### Parameters -Parameter | Type | Default | Description ---------- | ---- | ------- | ----------- -`event` | `string` | | Name of the event to listen to. See below for all the event names. -`callback` | `Function` | | Is called when the event is triggered. +| Parameter | Type | Default | Description | +| ---------- | ---------- | ------- | ------------------------------------------------------------------ | +| `event` | `string` | | Name of the event to listen to. See below for all the event names. | +| `callback` | `Function` | | Is called when the event is triggered. | ## push.on('registration', callback) @@ -238,15 +294,15 @@ The event `registration` will be triggered on each successful registration with ### Callback parameters -Parameter | Type | Description ---------- | ---- | ----------- -`data.registrationId` | `string` | The registration ID provided by the 3rd party remote push service. -`data.registrationType` | `string` | The registration type of the 3rd party remote push service. Either FCM or APNS. +| Parameter | Type | Description | +| ----------------------- | -------- | ------------------------------------------------------------------------------- | +| `data.registrationId` | `string` | The registration ID provided by the 3rd party remote push service. | +| `data.registrationType` | `string` | The registration type of the 3rd party remote push service. Either FCM or APNS. | ### Example ```javascript -push.on('registration', (data) => { +push.on('registration', data => { console.log(data.registrationId); console.log(data.registrationType); }); @@ -256,8 +312,6 @@ For APNS users: the `registrationId` you will get will be a production or sandbo > Note: There is a separate persistent connection to the push service for each environment. The operating system establishes a persistent connection to the sandbox environment for development builds; ad hoc and distribution builds connect to the production environment. - - ### Common Problems #### Got JSON Exception TIMEOUT @@ -276,47 +330,49 @@ The event `notification` will be triggered each time a push notification is rece ### Callback parameters -Parameter | Type | Description ---------- | ---- | ----------- -`data.message` | `string` | The text of the push message sent from the 3rd party service. -`data.title` | `string` | The optional title of the push message sent from the 3rd party service. -`data.count` | `string` | The number of messages to be displayed in the badge in iOS/Android or message count in the notification shade in Android. For windows, it represents the value in the badge notification which could be a number or a status glyph. -`data.sound` | `string` | The name of the sound file to be played upon receipt of the notification. -`data.image` | `string` | The path of the image file to be displayed in the notification. -`data.launchArgs` | `string` | The args to be passed to the application on launch from push notification. This works when notification is received in background. (Windows Only) -`data.additionalData` | `Object` | An optional collection of data sent by the 3rd party push service that does not fit in the above properties. -`data.additionalData.foreground` | `boolean` | Whether the notification was received while the app was in the foreground -`data.additionalData.coldstart` | `boolean` | Will be `true` if the application is started by clicking on the push notification, `false` if the app is already started. -`data.additionalData.dismissed` | `boolean` | Is set to `true` if the notification was dismissed by the user +| Parameter | Type | Description | +| -------------------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `data.message` | `string` | The text of the push message sent from the 3rd party service. | +| `data.title` | `string` | The optional title of the push message sent from the 3rd party service. | +| `data.count` | `string` | The number of messages to be displayed in the badge in iOS/Android or message count in the notification shade in Android. For windows, it represents the value in the badge notification which could be a number or a status glyph. | +| `data.sound` | `string` | The name of the sound file to be played upon receipt of the notification. | +| `data.image` | `string` | The path of the image file to be displayed in the notification. | +| `data.launchArgs` | `string` | The args to be passed to the application on launch from push notification. This works when notification is received in background. (Windows Only) | +| `data.additionalData` | `Object` | An optional collection of data sent by the 3rd party push service that does not fit in the above properties. | +| `data.additionalData.foreground` | `boolean` | Whether the notification was received while the app was in the foreground | +| `data.additionalData.coldstart` | `boolean` | Will be `true` if the application is started by clicking on the push notification, `false` if the app is already started. | +| `data.additionalData.dismissed` | `boolean` | Is set to `true` if the notification was dismissed by the user | ### Example ```javascript -push.on('notification', (data) => { - console.log(data.message); - console.log(data.title); - console.log(data.count); - console.log(data.sound); - console.log(data.image); - console.log(data.additionalData); +push.on('notification', data => { + console.log(data.message); + console.log(data.title); + console.log(data.count); + console.log(data.sound); + console.log(data.image); + console.log(data.additionalData); }); ``` +Android quirk: Please note that some payloads may cause this event not to be always fired: [data vs notification payloads](https://github.com/phonegap/phonegap-plugin-push/blob/master/docs/PAYLOAD.md#notification-vs-data-payloads) + ## push.on('error', callback) The event `error` will trigger when an internal error occurs and the cache is aborted. ### Callback parameters -Parameter | Type | Description ---------- | ---- | ----------- -`e` | `Error` | Standard JavaScript error object that describes the error. +| Parameter | Type | Description | +| --------- | ------- | ---------------------------------------------------------- | +| `e` | `Error` | Standard JavaScript error object that describes the error. | ### Example ```javascript -push.on('error', (e) => { - console.log(e.message); +push.on('error', e => { + console.log(e.message); }); ``` @@ -326,14 +382,17 @@ Removes a previously registered callback for an event. ### Parameters -Parameter | Type | Default | Description ---------- | ---- | ------- | ----------- -`event` | `string` | | Name of the event type. The possible event names are the same as for the `push.on` function. -`callback` | `Function` | | The same callback used to register with `push.on`. +| Parameter | Type | Default | Description | +| ---------- | ---------- | ------- | -------------------------------------------------------------------------------------------- | +| `event` | `string` | | Name of the event type. The possible event names are the same as for the `push.on` function. | +| `callback` | `Function` | | The same callback used to register with `push.on`. | ### Example + ```javascript -const callback = (data) => { /*...*/}; +const callback = data => { + /*...*/ +}; //Adding handler for notification event push.on('notification', callback); @@ -352,20 +411,23 @@ If you provide a list of topics as an optional parameter then the application wi ### Parameters -Parameter | Type | Default | Description ---------- | ---- | ------- | ----------- -`successHandler` | `Function` | | Is called when the api successfully unregisters. -`errorHandler` | `Function` | | Is called when the api encounters an error while unregistering. -`topics` | `Array` | | A list of topics to unsubscribe from. +| Parameter | Type | Default | Description | +| ---------------- | ---------- | ------- | --------------------------------------------------------------- | +| `successHandler` | `Function` | | Is called when the api successfully unregisters. | +| `errorHandler` | `Function` | | Is called when the api encounters an error while unregistering. | +| `topics` | `Array` | | A list of topics to unsubscribe from. | ### Example ```javascript -push.unregister(() => { - console.log('success'); -}, () => { - console.log('error'); -}); +push.unregister( + () => { + console.log('success'); + }, + () => { + console.log('error'); + } +); ``` ## push.subscribe(topic, successHandler, errorHandler) @@ -374,41 +436,50 @@ The subscribe method is used when the application wants to subscribe a new topic ### Parameters -Parameter | Type | Default | Description ---------- | ---- | ------- | ----------- -`topic` | `String` | | Topic to subscribe to. -`successHandler` | `Function` | | Is called when the api successfully subscribes. -`errorHandler` | `Function` | | Is called when the api encounters an error while subscribing. +| Parameter | Type | Default | Description | +| ---------------- | ---------- | ------- | ------------------------------------------------------------- | +| `topic` | `String` | | Topic to subscribe to. | +| `successHandler` | `Function` | | Is called when the api successfully subscribes. | +| `errorHandler` | `Function` | | Is called when the api encounters an error while subscribing. | ### Example ```javascript -push.subscribe('my-topic', () => { - console.log('success'); -}, (e) => { - console.log('error:', e); -}); +push.subscribe( + 'my-topic', + () => { + console.log('success'); + }, + e => { + console.log('error:', e); + } +); ``` + ## push.unsubscribe(topic, successHandler, errorHandler) The unsubscribe method is used when the application no longer wants to receive push notifications from a specific topic but continue to receive other push messages. ### Parameters -Parameter | Type | Default | Description ---------- | ---- | ------- | ----------- -`topic` | `String` | | Topic to unsubscribe from. -`successHandler` | `Function` | | Is called when the api successfully unsubscribe. -`errorHandler` | `Function` | | Is called when the api encounters an error while unsubscribing. +| Parameter | Type | Default | Description | +| ---------------- | ---------- | ------- | --------------------------------------------------------------- | +| `topic` | `String` | | Topic to unsubscribe from. | +| `successHandler` | `Function` | | Is called when the api successfully unsubscribe. | +| `errorHandler` | `Function` | | Is called when the api encounters an error while unsubscribing. | ### Example ```javascript -push.unsubscribe('my-topic', () => { - console.log('success'); -}, (e) => { - console.log('error:', e); -}); +push.unsubscribe( + 'my-topic', + () => { + console.log('success'); + }, + e => { + console.log('error:', e); + } +); ``` ## push.setApplicationIconBadgeNumber(successHandler, errorHandler, count) - iOS & Android only @@ -419,20 +490,24 @@ Set the badge count visible when the app is not running ### Parameters -Parameter | Type | Default | Description ---------- | ---- | ------- | ----------- -`successHandler` | `Function` | | Is called when the api successfully sets the icon badge number. -`errorHandler` | `Function` | | Is called when the api encounters an error while trying to set the icon badge number. -`count` | `number` | | Indicates what number should show up in the badge. Passing 0 will clear the badge. Each `notification` event contains a `data.count` value which can be used to set the badge to correct number. +| Parameter | Type | Default | Description | +| ---------------- | ---------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `successHandler` | `Function` | | Is called when the api successfully sets the icon badge number. | +| `errorHandler` | `Function` | | Is called when the api encounters an error while trying to set the icon badge number. | +| `count` | `number` | | Indicates what number should show up in the badge. Passing 0 will clear the badge. Each `notification` event contains a `data.count` value which can be used to set the badge to correct number. | ### Example ```javascript -push.setApplicationIconBadgeNumber(() => { - console.log('success'); -}, () => { - console.log('error'); -}, 2); +push.setApplicationIconBadgeNumber( + () => { + console.log('success'); + }, + () => { + console.log('error'); + }, + 2 +); ``` ## push.getApplicationIconBadgeNumber(successHandler, errorHandler) - iOS & Android only @@ -441,27 +516,30 @@ Get the current badge count visible when the app is not running ### Parameters -Parameter | Type | Default | Description ---------- | ---- | ------- | ----------- -`successHandler` | `Function` | | Is called when the api successfully retrieves the icon badge number. -`errorHandler` | `Function` | | Is called when the api encounters an error while trying to retrieve the icon badge number. +| Parameter | Type | Default | Description | +| ---------------- | ---------- | ------- | ------------------------------------------------------------------------------------------ | +| `successHandler` | `Function` | | Is called when the api successfully retrieves the icon badge number. | +| `errorHandler` | `Function` | | Is called when the api encounters an error while trying to retrieve the icon badge number. | ### Callback parameters #### `successHandler` -Parameter | Type | Description ---------- | ---- | ----------- -`n` | `number` | An integer which is the current badge count. +| Parameter | Type | Description | +| --------- | -------- | -------------------------------------------- | +| `n` | `number` | An integer which is the current badge count. | ### Example ```javascript -push.getApplicationIconBadgeNumber((n) => { - console.log('success', n); -}, () => { - console.log('error'); -}); +push.getApplicationIconBadgeNumber( + n => { + console.log('success', n); + }, + () => { + console.log('error'); + } +); ``` ## push.finish(successHandler, errorHandler, id) - iOS only @@ -470,20 +548,24 @@ Tells the OS that you are done processing a background push notification. ### Parameters -Parameter | Type | Default | Description ---------- | ---- | ------- | ----------- -`successHandler` | `Function` | | Is called when the api successfully completes background push processing. -`errorHandler` | `Function` | | Is called when the api encounters an error while processing and completing the background push. -`id` | `String` | | Tells the OS which background process is complete. +| Parameter | Type | Default | Description | +| ---------------- | ---------- | ------- | ----------------------------------------------------------------------------------------------- | +| `successHandler` | `Function` | | Is called when the api successfully completes background push processing. | +| `errorHandler` | `Function` | | Is called when the api encounters an error while processing and completing the background push. | +| `id` | `String` | | Tells the OS which background process is complete. | ### Example ```javascript -push.finish(() => { - console.log('success'); -}, () => { - console.log('error'); -}, 'push-1'); +push.finish( + () => { + console.log('success'); + }, + () => { + console.log('error'); + }, + 'push-1' +); ``` ## push.clearAllNotifications(successHandler, errorHandler) - iOS & Android only @@ -495,14 +577,39 @@ Tells the OS to clear all notifications from the Notification Center Parameter | Type | Default | Description --------- | ---- | ------- | ----------- `successHandler` | `Function` | | Is called when the api successfully clears the notifications. -`errorHandler` | `Function` | | Is called when the api encounters an error when attempting to clears the notifications. +`errorHandler` | `Function` | | Is called when the api encounters an error when attempting to clear the notifications. + +### Example + +```javascript +push.clearAllNotifications( + () => { + console.log('success'); + }, + () => { + console.log('error'); + } +); +``` + +## push.clearNotification(id, successHandler, errorHandler) - iOS & Android only + +Tells the OS to clear the notification that corresponds to the id argument, from the Notification Center + +### Parameters + +Parameter | Type | Default | Description +--------- | ---- | ------- | ----------- +`successHandler` | `Function` | | Is called when the api successfully clears the notification. +`errorHandler` | `Function` | | Is called when the api encounters an error when attempting to clear the notification. +`id` | `number` | | The ID of the notification that will be cleared. | ### Example ```javascript -push.clearAllNotifications(() => { +push.clearNotification(() => { console.log('success'); }, () => { console.log('error'); -}); -``` +}, 145); +``` \ No newline at end of file diff --git a/docs/INSTALLATION.md b/docs/INSTALLATION.md index c36efa4bd..ceb4c60fe 100644 --- a/docs/INSTALLATION.md +++ b/docs/INSTALLATION.md @@ -1,56 +1,58 @@ # Installation -- [Installation Requirements](#installation-requirements) -- [Android details](#android-details) - - [Compilation](#compilation) - - [Co-existing with Facebook Plugin](#co-existing-with-facebook-plugin) - - [Co-existing with plugins that use Firebase](#co-existing-with-plugins-that-use-firebase) - - [Common errors](#common-errors) - - [minSdkVersion === 14](#minsdkversion--14) - - [Multidex](#multidex) - - [More than one library with package name 'com.google.android.gms'](#more-than-one-library-with-package-name-comgoogleandroidgms) -- [Browser details](#browser-details) - - [Browser quirks](#browser-quirks) - - [Browser Support](#browser-support) -- [iOS details](#ios-details) - - [Xcode](#xcode) - - [Bitcode](#bitcode) - - [CocoaPods](#cocoapods) - - [Common CocoaPod Installation issues](#common-cocoapod-installation-issues) - - [CocoaPod Disk Space](#cocoapod-disk-space) - - [Library not found for -lPods-Appname](#library-not-found-for--lpods-appname) - - [Library not found for -lGoogleToolboxForMac](#library-not-found-for--lgoogletoolboxformac) - - [Module FirebaseInstanceID not found](#module-firebaseinstanceid-not-found) -- [Additional Resources](#additional-resources) +* [Installation Requirements](#installation-requirements) +* [Android details](#android-details) + * [Compilation](#compilation) + * [Co-existing with Facebook Plugin](#co-existing-with-facebook-plugin) + * [Co-existing with plugins that use Firebase](#co-existing-with-plugins-that-use-firebase) + * [Common errors](#common-errors) + * [minSdkVersion === 14](#minsdkversion--14) - [Multidex](#multidex) - [More than one library with package name 'com.google.android.gms'](#more-than-one-library-with-package-name-comgoogleandroidgms) +* [Browser details](#browser-details) + * [Browser quirks](#browser-quirks) + * [Browser Support](#browser-support) +* [iOS details](#ios-details) + * [Xcode](#xcode) + * [Bitcode](#bitcode) + * [CocoaPods](#cocoapods) + * [Common CocoaPod Installation issues](#common-cocoapod-installation-issues) + * [CocoaPod Disk Space](#cocoapod-disk-space) + * [Library not found for -lPods-Appname](#library-not-found-for--lpods-appname) + * [Library not found for -lGoogleToolboxForMac](#library-not-found-for--lgoogletoolboxformac) + * [Module FirebaseInstanceID not found](#module-firebaseinstanceid-not-found) +* [Additional Resources](#additional-resources) ## Installation Requirements -Plugin version | Cordova CLI | Cordova Android | Cordova iOS | CocoaPods ----- | ---- | ---- | ---- | ---- -2.0.0 | 7.0.0 | 6.2.1 | 4.4.0 | 1.1.1 -1.9.0 | 6.4.0 | 6.0.0 | 4.3.0 | 1.1.1 -1.8.0 | 3.6.3 | 4.0.0 | 4.1.0 | N/A +| Plugin version | Cordova CLI | Cordova Android | Cordova iOS | CocoaPods | +| -------------- | ----------- | --------------- | ----------- | --------- | +| 2.2.0 | 7.1.0 | 7.1.0 | 4.5.0 | 1.1.1 | +| 2.1.2 | 7.1.0 | 6.3.0 | 4.5.0 | 1.1.1 | +| 2.1.0 | 7.1.0 | 6.3.0 | 4.4.0 | 1.1.1 | +| 2.0.0 | 7.0.0 | 6.2.1 | 4.4.0 | 1.1.1 | +| 1.9.0 | 6.4.0 | 6.0.0 | 4.3.0 | 1.1.1 | +| 1.8.0 | 3.6.3 | 4.0.0 | 4.1.0 | N/A | To install from the command line: -``` +```bash phonegap plugin add phonegap-plugin-push ``` + or -``` +```bash cordova plugin add phonegap-plugin-push ``` It is also possible to install via repo url directly ( unstable ) -``` +```bash phonegap plugin add https://github.com/phonegap/phonegap-plugin-push ``` or -``` +```bash cordova plugin add https://github.com/phonegap/phonegap-plugin-push ``` @@ -58,7 +60,7 @@ As of version 2.0.0 the SENDER_ID parameter has been removed at install time. In In the platform tag for Android add the following resource-file tag if you are using cordova-android 7.0 or greater: -``` +```xml @@ -66,7 +68,7 @@ In the platform tag for Android add the following resource-file tag if you are u If you are using cordova-android 6.x or earlier, add the following resource-file tag: -``` +```xml @@ -74,7 +76,7 @@ If you are using cordova-android 6.x or earlier, add the following resource-file By default, on iOS, the plugin will register with APNS. If you want to use FCM on iOS, in the platform tag for iOS add the resource-file tag: -``` +```xml @@ -82,7 +84,7 @@ By default, on iOS, the plugin will register with APNS. If you want to use FCM o > Note: if you are using Ionic you may need to specify the SENDER_ID variable in your package.json. -``` +```json "cordovaPlugins": [ { "locator": "phonegap-plugin-push" @@ -90,9 +92,9 @@ By default, on iOS, the plugin will register with APNS. If you want to use FCM o ] ``` -> Note: You need to specify the SENDER_ID variable in your config.xml if you plan on installing/restoring plugins using the prepare method. The prepare method will skip installing the plugin otherwise. +> Note: You need to specify the SENDER_ID variable in your config.xml if you plan on installing/restoring plugins using the prepare method. The prepare method will skip installing the plugin otherwise. -``` +```xml ``` @@ -102,15 +104,15 @@ By default, on iOS, the plugin will register with APNS. If you want to use FCM o As of version 2.1.0 the plugin has been switched to using pinned version of Gradle libraries. You will need to ensure that you have installed the following items through the Android SDK Manager: -- Android Support Repository version 47+ +* Android Support Repository version 47+ ![android support library](https://user-images.githubusercontent.com/353180/33042340-7ea60aaa-ce0f-11e7-99f7-4631e4c3d7be.png) For more detailed instructions on how to install the Android Support Library visit [Google's documentation](https://developer.android.com/tools/support-library/setup.html). -*Note:* if you are using an IDE to like Eclipse, Xamarin, etc. then the Android SDK installed by those tools may not be the same version as the one used by the Cordova/PhoneGap CLI while building. Please make sure your command line tooling is up to date with the software versions above. An easy way to make sure you up to date is to run the following command: +_Note:_ if you are using an IDE to like Eclipse, Xamarin, etc. then the Android SDK installed by those tools may not be the same version as the one used by the Cordova/PhoneGap CLI while building. Please make sure your command line tooling is up to date with the software versions above. An easy way to make sure you up to date is to run the following command: -``` +```bash android update sdk --no-ui --filter "extra" ``` @@ -120,38 +122,32 @@ There are a number of Cordova Facebook Plugins available but the one that we rec To add to your app: -``` +```bash phonegap plugin add --save cordova-plugin-facebook4 --variable APP_ID="App ID" --variable APP_NAME="App Name" ``` + or -``` +```bash cordova plugin add --save cordova-plugin-facebook4 --variable APP_ID="App ID" --variable APP_NAME="App Name" ``` ### Co-existing with plugins that use Firebase -Problems may arise when push plugin is used along plugins that implement Firebase functionality (cordova-plugin-firebase-analytics, for example). Firebase uses `@string/google_app_id`, as does the push plugin, though the value format differs, causing problems like this: `Invalid google_app_id. Firebase Analytics disabled`. +Problems may arise when push plugin is used along plugins that implement Firebase functionality (cordova-plugin-firebase-analytics, for example). Both plugins include a version of the FCM libraries. To make the two work together, you need to migrate your GCM project from Google console to Firebase console: -1) In Firebase console - [import your existing GCM project](https://firebase.google.com/support/guides/google-android#migrate_your_console_project), don't create a new one. -2) Set your `SENDER_ID` variable to match the id of your imported Firebase project. In case of cordova, your `config.xml` would look something like this: +1. In Firebase console - [import your existing GCM project](https://firebase.google.com/support/guides/google-android#migrate_your_console_project), don't create a new one. +2. Set your `FCM_VERSION` variable to match the version used in the other plugin. In case of cordova, your `config.xml` would look something like this: + ```xml - - + + ``` -3) In your JavaScript, when you init the PushPlugin, senderID remains the same format as before: -```javascript -PushNotification.init({ - android: { - senderID: 956432534015 - } -}); -``` -*Note:* No changes on the back-end side are needed: [even though recommended](https://developers.google.com/cloud-messaging/android/android-migrate-fcm#update_server_endpoints), it isn't yet required and sending messages through GCM gateway should work just fine. +_Note:_ No changes on the back-end side are needed: [even though recommended](https://developers.google.com/cloud-messaging/android/android-migrate-fcm#update_server_endpoints), it isn't yet required and sending messages through GCM gateway should work just fine. ### Common errors @@ -206,7 +202,7 @@ Then at least one other plugin you have installed is using an outdated way to de This causes gradle to fail, and you'll need to identify which plugin is causing it and request an update to the plugin author, so that it uses the proper way to declare dependencies for cordova. See [this for the reference on the cordova plugin specification](https://cordova.apache.org/docs/en/5.4.0/plugin_ref/spec.html#link-18), it'll be usefull to mention it when creating an issue or requesting that plugin to be updated. -Common plugins to suffer from this outdated dependency management are plugins related to *facebook*, *google+*, *notifications*, *crosswalk* and *google maps*. +Common plugins to suffer from this outdated dependency management are plugins related to _facebook_, _google+_, _notifications_, _crosswalk_ and _google maps_. #### More than one library with package name 'com.google.android.gms' @@ -238,7 +234,7 @@ When you run `phonegap serve` to test browser push point your browser at `http:/ ### Browser Support -Chrome 49+ +Chrome 49+ Firefox 46+ ## iOS details @@ -269,14 +265,12 @@ Required `cordova-ios` minimum version: `4.3.0` Required `CocoaPods` minimum version: `1.0.1` - To install CocoaPods, please follow the installation instructions [here](https://guides.cocoapods.org/using/getting-started). After installing CocoaPods, please run: pod setup This will clone the required CocoaPods specs-repo into your home folder at `~/.cocoapods/repos`, so it might take a while. See the [CocoaPod Disk Space](#cocoapod-disk-space) section below for more information. - Version `2.0.0` (and above) of this plugin supports [CocoaPods](https://cocoapods.org) installation of the [Firebase Cloud Messaging](https://cocoapods.org/pods/FirebaseMessaging) library. If you are installing this plugin using `npm`, and you are using version `6.1.0` or greater of the `cordova-cli`, it will automatically download the right version of this plugin for both your platform and cli. @@ -284,7 +278,8 @@ If you are installing this plugin using `npm`, and you are using version `6.1.0` If you are on a `cordova-cli` version less than `6.1.0`, you will either have to upgrade your `cordova-cli` version, or install the plugin explicitly: i.e. -``` + +```bash cordova plugin add phonegap-plugin-push@1.8.1 ``` @@ -311,7 +306,7 @@ Please run the command `pod repo update` and re-install the plugin. You would on Running `pod setup` can take over 1 GB of disk space and that can take quite some time to download over a slow internet connection. If you are having issues with disk space/network try this neat hack from @VinceOPS. -``` +```bash git clone --verbose --depth=1 https://github.com/CocoaPods/Specs.git ~/.cocoapods/repos/master pod setup --verbose ``` @@ -337,6 +332,8 @@ ld: library not found for -lGoogleToolboxForMac Workarounds are to add the platform first and install the plugins later, or to manually run pod install on projectName/platforms/ios. +Another workaround is to go to build phases in your project at Link Binary Libraries and add `libPods-PROJECTNAME.a` and `libGoogleToolboxForMac.a` + ##### Module FirebaseInstanceID not found If you run into an error like: @@ -347,7 +344,7 @@ module FirebaseInstanceID not found You may be running into a bug in cordova-ios. The current workaround is to run `pod install` manually. -``` +```bash cd platforms/ios pod install ``` @@ -358,7 +355,7 @@ The push plugin enables you to play sounds and display different icons during pu You can now use the `resource-file` tag to deliver the image and sound files to your application. For example if you wanted to include an extra image file for only your Android build you would add the `resource-file` tag to your android `platform` tag: -``` +```xml @@ -366,8 +363,7 @@ You can now use the `resource-file` tag to deliver the image and sound files to or if you wanted to include a sound file for iOS: - -``` +```xml diff --git a/docs/PAYLOAD.md b/docs/PAYLOAD.md index 37f35d9c7..0ed58608d 100644 --- a/docs/PAYLOAD.md +++ b/docs/PAYLOAD.md @@ -1,7 +1,8 @@ - [Overview](#overview) - - [Foreground Events](#push-message-arrives-with-app-in-foreground) - - [Background Events](#push-message-arrives-with-app-in-background) - - [Tap Events](#user-clicks-on-notification-in-notification-center) + - [Foreground Events](#push-message-arrives-with-app-in-foreground) + - [Background Events](#push-message-arrives-with-app-in-background) + - [Tap Events](#user-clicks-on-notification-in-notification-center) +- [Push Notification Message Format Overview](#push-notification-message-format-overview) - [Android Behaviour](#android-behaviour) - [Notification vs Data Payloads](#notification-vs-data-payloads) - [Localization](#localization) @@ -16,9 +17,9 @@ - [Priority in Notifications](#priority-in-notifications) - [Picture Messages](#picture-messages) - [Background Notifications](#background-notifications) - - [Use of content_available: true](#use-of-content-available-true) + - [Use of content_available: true](#use-of-content_available-true) - [Caching](#caching) - - [Huawei and Xiaomi Phones](#huawei-and-xiaomi-phones) + - [Chinese Android Phones](#chinese-android-phones) - [Application force closed](#application-force-closed) - [Visibility](#visibility-of-notifications) - [Ongoing Notifications](#ongoing-notifications) @@ -30,16 +31,17 @@ - [iOS Behaviour](#ios-behaviour) - [Sound](#sound-1) - [Background Notifications](#background-notifications-1) + - [VoIP Notifications](#voip-notifications) - [Action Buttons](#action-buttons-1) - - [Action Buttons using GCM on iOS](#action-buttons-using-gcm-on-ios) - - [GCM and Additional Data](#gcm-and-additional-data) + - [Action Buttons using FCM on iOS](#action-buttons-using-fcm-on-ios) + - [FCM and Additional Data](#fcm-and-additional-data) +- [FCM Payload Details](#fcm-payload-details) - [Windows Behaviour](#windows-behaviour) - [Notifications](#notifications) - [Setting Toast Capable Option for Windows](#setting-toast-capable-option-for-windows) - [Disabling the default processing of notifications by Windows](#disabling-the-default-processing-of-notifications-by-windows) - [Background Notifications](#background-notifications-2) - # Overview The following flowchart attempts to give you a picture of what happens when a push message arrives on your device when you have an app using phonegap-plugin-push. @@ -48,8 +50,8 @@ The following flowchart attempts to give you a picture of what happens when a pu ## Push message arrives with app in foreground -- The push plugin receives the data from the remote push service and calls all of your `on('notification')` event handlers. -- The message is *not* displayed in the devices' notification center, as that is not normal behaviour for Android or iOS. +- The push plugin receives the data from the remote push service and calls all of your `on('notification')` event handlers. +- The message is _not_ displayed in the devices' notification center, as that is not normal behaviour for Android or iOS. ## Push message arrives with app in background @@ -58,6 +60,8 @@ The following flowchart attempts to give you a picture of what happens when a pu - If the app is running in the background the push plugin then checks to see if `content-available` exists in the push data. - If `content-available` is set to `1`, then the plugin calls all of your `notification` event handlers. +> Note: if `count` is given as `0` then all notifications are first cleared: always on Android, and if the `count` has gone down on iOS + ## User clicks on notification in notification center - The app starts. @@ -65,12 +69,149 @@ The following flowchart attempts to give you a picture of what happens when a pu > Note: if the push payload contained `content-available: 1` then your `notification` event handler has already been called. It is up to you to handle the double event. -Some ways to handle this *double* event are: +Some ways to handle this _double_ event are: - don't include title/message in the push so it doesn't show up in the shader. - send two pushes, one to be processed in the background, and the other to show up in the shade. - include a unique ID in your push so you can check to see if you've already processed this event. +# Push Notification Message Format Overview + +## Android Message Format + +The JSON push message can contain the following fields, see https://developers.google.com/cloud-messaging/http-server-ref for a complete list. + +```javascript +var content = { + priority: 'normal', // Valid values are "normal" and "high." + data: { + title: 'A short string describing the purpose of the notification', + message: 'The text of the alert message', // "body" can be used as alias, is converted to "message" + // localization of message is possible + count: 5, // set the badge notification count at app icon + sound: 'default', // play default sound ... or "soundname", see [Android Sound](#sound) section + notId: 1, // unique ID for the message, used for grouping, see below + 'content-available': '0', // configure background updates, see below + custom_key1: 'value1', + custom_key2: 'value2' + } +}; +``` + +### Using AWS-SNS with GCM + +This is the JSON-encoded format you can e.g. send via AWS-SNS's web UI. +Note, that the core message is json-encoded twice, so if we take the `content` from above you convert it this way + +```javascript +var gcm_message = JSON.stringify({ + GCM: JSON.stringify(content), + default: 'plain text message again' +}); +``` + +```json +{ + "GCM": "{\"priority\":\"normal\",\"data\":{\"title\":\"A short string describing the purpose of the notification\",\"message\":\"The text of the alert message\",\"count\":5,\"sound\": \"default\",\"notId\":1,\"content-available\":\"0\",\"custom_key1\":\"value1\",\"custom_key2\":\"value2\"}}", + "default": "plain text message again" +} +``` + +### Message Received in JavaScript + +This message is received in the `push.on("notification")` handler as follows. +Note that the properties are "normalized" across platforms, so this is passed to the app on android: + +```json +{ + "count": "5", + "message": "The text of the alert message", + "sound": "default", + "title": "A short string describing the purpose of the notification", + "additionalData": { + "custom_key1": "value1", + "custom_key2": "value2", + "notId": "1", + "content_available": "0", + "dismissed": false, + "google.message_id": "...", + "coldstart": false, + "foreground": false + } +} +``` + +## iOS Message Format + +The JSON message can contain the following fields, see [Apple developer docs](https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/PayloadKeyReference.html#//apple_ref/doc/uid/TP40008194-CH17-SW5) for a complete list + +```json +{ + "aps": { + "alert": { + // alternatively just a string: "Your Message", + "title": "A short string describing the purpose of the notification", + "body": "The text of the alert message", + // localization of message is possible + "launch-image": "The filename of an image file in the app bundle, with or without the filename extension. The image is used as the launch image when users tap the action button or move the action slider" + }, + "badge": 5, // Number to show at App icon + "content-available": "0", // configure background updates, see below + "category": "identifier", // Provide this key with a string value that represents the notification’s type + "thread-id": "id", // Provide this key with a string value that represents the app-specific identifier for grouping notifications + "sound": "default" // play default sound, or custom sound, see [iOS Sound](#sound-1) section + }, + "notId": 1, + "custom_key1": "value1", + "custom_key2": "value2" +} +``` + +### Using AWS-SNS with APNS + +This is the JSON-encoded format you can send via AWS-SNS's web UI: + +```json +{ + "APNS_SANDBOX": "{\"aps\":{\"alert\":{\"title\":\"A short string describing the purpose of the notification\",\"body\":\"The text of the alert message\",\"launch-image\":\"The filename of an image file in the app bundle, with or without the filename extension. The image is used as the launch image when users tap the action button or move the action slider\"},\"badge\":5,\"content-available\":\"0\",\"category\":\"identifier\",\"thread-id\":\"id\",\"sound\":\"default\"},\"notId\":1,\"custom_key1\":\"value1\",\"custom_key2\":\"value2\"}" +} +``` + +Note: use "APNS" to send to an app signed and released to production or "APNS_SANDBOX" or to send to an app signed and released for development. You can include both keys (APNS and APNS_SANDBOX) in the message if you want to send both to apps signed for production and apps signed for development. + +```json +{ + "APNS": "{\"aps\":...}", + "APNS_SANDBOX": "{\"aps\":...}", + "default": "plain text message again" +} +``` + +### Message Received in JavaScript + +This message is received in the `push.on("notification")` handler as follows. +Note that the properties are "normalized" accross platforms, so this is passed to the app on iOS: + +```json +{ + "count": 5, // "badge" is converted to "count" + "message": "The text of the alert message", + "sound": "default", + "title": "A short string describing the purpose of the notification", + "additionalData": { + "category": "identifier", + "coldstart": false, + "foreground": false, + "content-available": "0", + "notId": 1, + "custom_key1": "value1", + "custom_key2": "value2", + "launch-image": "The filename of an image file in the app bundle, with or without the filename extension. The image is used as the launch image when users tap the action button or move the action slider", + "thread-id": "id" + } +} +``` + # Android Behaviour ## Notification vs Data Payloads @@ -79,13 +220,13 @@ Notifications behave differently depending on the foreground/background state of For instance if you send the following payload: -``` +```json { - "notification": { - "title": "Test Notification", - "body": "This offer expires at 11:30 or whatever", - "notId": 10 - } + "notification": { + "title": "Test Notification", + "body": "This offer expires at 11:30 or whatever", + "notId": 10 + } } ``` @@ -93,16 +234,16 @@ When your app is in the foreground, any `on('notification')` handlers you have r If you send a payload with a mix of `notification` & `data` objects like this: -``` +```json { - "notification": { - "title": "Test Notification", - "body": "This offer expires at 11:30 or whatever", - "notId": 10 - }, - "data" : { - "surveyID": "ewtawgreg-gragrag-rgarhthgbad" - } + "notification": { + "title": "Test Notification", + "body": "This offer expires at 11:30 or whatever", + "notId": 10 + }, + "data": { + "surveyID": "ewtawgreg-gragrag-rgarhthgbad" + } } ``` @@ -110,26 +251,26 @@ When your app is in the foreground any `on('notification')` handlers you have re My recommended format for your push payload when using this plugin (while it differs from Google's docs) works 100% of the time: -``` +```json { - "data" : { - "title": "Test Notification", - "body": "This offer expires at 11:30 or whatever", - "notId": 10, - "surveyID": "ewtawgreg-gragrag-rgarhthgbad" - } + "data": { + "title": "Test Notification", + "body": "This offer expires at 11:30 or whatever", + "notId": 10, + "surveyID": "ewtawgreg-gragrag-rgarhthgbad" + } } ``` When your app is in the foreground any `on('notification')` handlers you have registered will be called. If your app is in the background, then the notification will show up in the system tray. Clicking on the notification in the system tray will start the app, and your `on('notification')` handler will be called with the following data: -``` +```json { - "message": "This offer expires at 11:30 or whatever", - "title": "Test Notification", - "additionalData": { - "surveyID": "ewtawgreg-gragrag-rgarhthgbad" - } + "message": "This offer expires at 11:30 or whatever", + "title": "Test Notification", + "additionalData": { + "surveyID": "ewtawgreg-gragrag-rgarhthgbad" + } } ``` @@ -139,25 +280,25 @@ Plugin supported localization from resources for: title, message and summaryText You may use simple link to locale constant. -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": {"locKey": "push_app_title"}, - "message": "Simple non-localizable text for message!" - } + "registration_ids": ["my device id"], + "data": { + "title": { "locKey": "push_app_title" }, + "message": "Simple non-localizable text for message!" + } } ``` Or use localization with formatted constants. -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": {"locKey": "push_app_title"}, - "message": {"locKey": "push_message_fox", "locData": ["fox", "dog"]} - } + "registration_ids": ["my device id"], + "data": { + "title": { "locKey": "push_app_title" }, + "message": { "locKey": "push_message_fox", "locData": ["fox", "dog"] } + } } ``` @@ -166,26 +307,26 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - to: deviceID, - data: { - title: {"locKey": "push_app_title"}, - message: 'Simple non-localizable text for message!' - // Constant with formatted params - // message: {"locKey": "push_message_fox", "locData": ["fox", "dog"]}); - } + to: deviceID, + data: { + title: { locKey: 'push_app_title' }, + message: 'Simple non-localizable text for message!' + // Constant with formatted params + // message: {"locKey": "push_message_fox", "locData": ["fox", "dog"]}); + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` @@ -204,17 +345,16 @@ By default the icon displayed in your push notification will be your apps icon. ```javascript const push = PushNotification.init({ - "android": { - }, - "browser": { - pushServiceURL: 'http://push.api.phonegap.com/v1/push' - }, - "ios": { - "alert": "true", - "badge": "true", - "sound": "true" - }, - "windows": {} + android: {}, + browser: { + pushServiceURL: 'http://push.api.phonegap.com/v1/push' + }, + ios: { + alert: 'true', + badge: 'true', + sound: 'true' + }, + windows: {} }); ``` @@ -222,30 +362,54 @@ The result will look much like this: ![2015-07-24 02 52 00](https://cloud.githubusercontent.com/assets/353180/8866899/2df00c3c-3190-11e5-8552-96201fb4424b.png) -This is because Android now uses Material design and the default icon for push will be completely white. +Note that the notification icon has gone from the default, rich, multicolored cordova icon, to a white-on-gray one. What's going on here? -In order to get a better user experience, you can specify an alternate icon and background color to be shown when receiving a push notification. The code would look like this: +With Android now greatly using Material design since 5.0 (Lollipop), push notification icons are forced to be monochromatic - this can be difficult to diagnose, as a lot of icons just show as a white square if not properly designed. + +You should design one with these guidelines in mind: + +- 96x96 pixels +- Transparent background +- White foreground + +For more details, please read: + +- https://material.io/tools/icons +- https://material.io/design/iconography/ + +**Note:** any color foreground will work - any non-transparent pixels are just rendered white. + +To specify an alternate icon and background color to be shown when receiving a push notification, use the following: ```javascript const push = PushNotification.init({ - "android": { - "icon": "phonegap", - "iconColor": "blue" - }, - "browser": { - pushServiceURL: 'http://push.api.phonegap.com/v1/push' - }, - "ios": { - "alert": "true", - "badge": "true", - "sound": "true" - }, - "windows": {} + android: { + icon: 'phonegap', + iconColor: 'blue' + }, + browser: { + pushServiceURL: 'http://push.api.phonegap.com/v1/push' + }, + ios: { + alert: 'true', + badge: 'true', + sound: 'true' + }, + windows: {} }); ``` -Where *icon* is the name of an `.png` image file in the Android `res/drawable` folder. For example: `platforms/android/res/drawable/phonegap.png` -Writing a hook to describe how to copy an image to the Android `res/drawable` folder is out of scope for this README but there is an [excellent tutorial](http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/) that you can copy. +Where _icon_ is the name of an `.png` image file in the Android `res/drawable` folder. For example: `platforms/android/res/drawable/phonegap.png` + +You can use a `resource-file` tag to copy the image to the `res/drawable` folder like this: + +```xml + + + + + +``` `iconColor` is one of the supported formats #RRGGBB or #AARRGGBB or one of the following names: 'red', 'blue', 'green', 'black', 'white', 'gray', 'cyan', 'magenta', 'yellow', 'lightgray', 'darkgray', 'grey', 'lightgrey', 'darkgrey', 'aqua', 'fuchsia', 'lime', 'maroon', 'navy', 'olive', 'purple', 'silver', 'teal'. `iconColor` is supported on Android 5.0 and greater. @@ -255,7 +419,7 @@ Please follow the [Android icon design guidelines](https://www.google.com/design Additionally, each push can include a large icon which is used to personalize each push. The location of the image may be one of three types. -The first is the `res/drawable` folder in your app. This JSON is sent from GCM: +The first is the `res/drawable` folder in your app. This JSON is sent from FCM: ```javascript { @@ -273,43 +437,53 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - to: deviceID, - data: { - title: 'Large Icon', - message: 'Loaded from drawables folder.', - image: 'twitter' - } + to: deviceID, + data: { + title: 'Large Icon', + message: 'Loaded from drawables folder.', + image: 'twitter' + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` -Would look for the *twitter* image in the `res/drawable` folder and produce the following notification. +Would look for the _twitter_ image in the `res/drawable` folder and produce the following notification. ![2015-07-24 02 34 41](https://cloud.githubusercontent.com/assets/353180/8866903/2df48028-3190-11e5-8176-fe8b3f7c5aab.png) -The second is the *assets* folder in your app. This JSON sent from GCM: +Again you can use a `resource-file` tag to copy the image to the `res/drawable` folder like this: -```javascript +```xml + + + + + +``` + +The second is the _assets_ folder in your app. This JSON sent from FCM: + +```json { - "registration_ids": ["my device id"], - "data": { - "title": "Large Icon", - "message": "Loaded from assets folder", - "image": "www/image/logo.png" - } + "registration_ids": ["my device id"], + "data": { + "title": "Large Icon", + "message": "Loaded from assets folder", + "image": "www/image/logo.png" + } } ``` @@ -318,44 +492,43 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - to: deviceID, - data: { - title: 'Large Icon', - message: 'Loaded from assets folder.', - image: 'www/image/logo.png' - } + to: deviceID, + data: { + title: 'Large Icon', + message: 'Loaded from assets folder.', + image: 'www/image/logo.png' + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` -Would look for the *logo.png* file in the assets/www/img folder. Since your apps www folder gets copied into the Android assets folder it is an excellent spot to store the images without needing to write a hook to copy them to the `res/drawable` folder. It produces the following notification. +Would look for the _logo.png_ file in the assets/www/img folder. Since your apps www folder gets copied into the Android assets folder it is an excellent spot to store the images without needing to write a hook to copy them to the `res/drawable` folder. It produces the following notification. ![2015-07-24 02 20 02](https://cloud.githubusercontent.com/assets/353180/8866901/2df19052-3190-11e5-8c16-a355c59209f3.png) +The third is the remote _URL_. This JSON sent from FCM: -The third is the remote *URL*. This JSON sent from GCM: - -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "Large Icon", - "message": "Loaded from URL", - "image": "https://dl.dropboxusercontent.com/u/887989/antshot.png" - } + "registration_ids": ["my device id"], + "data": { + "title": "Large Icon", + "message": "Loaded from URL", + "image": "https://dl.dropboxusercontent.com/u/887989/antshot.png" + } } ``` @@ -364,25 +537,25 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - to: deviceID, - data: { - title: 'Large Icon', - message: 'Loaded from URL', - image: 'https://dl.dropboxusercontent.com/u/887989/antshot.png' - } + to: deviceID, + data: { + title: 'Large Icon', + message: 'Loaded from URL', + image: 'https://dl.dropboxusercontent.com/u/887989/antshot.png' + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` @@ -391,36 +564,47 @@ Produces the following notification. ![2015-07-24 02 17 55](https://cloud.githubusercontent.com/assets/353180/8866900/2df0ab06-3190-11e5-9a81-fdb85bb0f5a4.png) -Finally, the Material UI guidelines recommend using a circular icon for the large icon if the subject of the image is a person. This JSON sent from GCM: +Finally, the Material UI guidelines recommend using a circular icon for the large icon if the subject of the image is a person. This JSON sent from FCM: -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "Large Circular Icon", - "message": "Loaded from URL", - "image": "https://pbs.twimg.com/profile_images/837060031895896065/VHIQ4oUf_400x400.jpg", - "image-type": "circle" - } + "registration_ids": ["my device id"], + "data": { + "title": "Large Circular Icon", + "message": "Loaded from URL", + "image": "https://pbs.twimg.com/profile_images/837060031895896065/VHIQ4oUf_400x400.jpg", + "image-type": "circle" + } } ``` -Here is an example using node-gcm that sends the above JSON: +Here is an example using fcm-node that sends the above JSON: ```javascript -const gcm = require('node-gcm'); +const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; -const service = new gcm.Sender(apiKey); -const message = new gcm.Message(); -message.addData('title', 'Large Circular Icon'); -message.addData('message', 'Loaded from URL'); -message.addData('image', 'https://pbs.twimg.com/profile_images/837060031895896065/VHIQ4oUf_400x400.jpg'); -message.addData('image-type', 'circular'); -service.send(message, { registrationTokens: [ deviceID ] }, (err, response) => { - if(err) console.error(err); - else console.log(response); +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; +const fcm = new FCM(apiKey); + +const message = { + to: deviceID, + data: { + title: 'Large Circular Icon', + message: 'Loaded from URL', + image: + 'https://pbs.twimg.com/profile_images/837060031895896065/VHIQ4oUf_400x400.jpg', + 'image-type': 'circular' + } +}; + +fcm.send(message, (err, response) => { + if (err) { + console.log(err); + console.log('Something has gone wrong!'); + } else { + console.log('Successfully sent with response: ', response); + } }); ``` @@ -432,52 +616,59 @@ Produces the following notification. For Android there are three special values for sound you can use. The first is `default` which will play the phones default notification sound. -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "Default", - "message": "Plays default notification sound", - "soundname": "default" - } + "registration_ids": ["my device id"], + "data": { + "title": "Default", + "message": "Plays default notification sound", + "soundname": "default" + } } ``` Then second is `ringtone` which will play the phones default ringtone sound. -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "Ringtone", - "message": "Plays default ringtone sound", - "soundname": "ringtone" - } + "registration_ids": ["my device id"], + "data": { + "title": "Ringtone", + "message": "Plays default ringtone sound", + "soundname": "ringtone" + } } ``` + The third is the empty string which will cause for the playing of sound to be skipped. -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "Silece", - "message": "Skips playing any sound", - "soundname": "" - } + "registration_ids": ["my device id"], + "data": { + "title": "Silece", + "message": "Skips playing any sound", + "soundname": "" + } } ``` -In order for your your notification to play a custom sound you will need to add the files to your Android project's `res/raw` directory. Then send the follow JSON from GCM: +In order for your your notification to play a custom sound you will need to add the files to your Android project's `res/raw` directory. The best way to do this is by using a `resource-file` tag in your `config.xml`. -```javascript +```xml + +``` + +Then send the follow JSON from FCM: + +```json { - "registration_ids": ["my device id"], - "data": { - "title": "Sound Test", - "message": "Loaded res/raw", - "soundname": "test" - } + "registration_ids": ["my device id"], + "data": { + "title": "Sound Test", + "message": "Loaded res/raw", + "soundname": "test" + } } ``` @@ -486,30 +677,30 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - to: deviceID, - data: { - title: 'Sound Test', - message: 'Loaded res/raw', - soundname: 'test' - } + to: deviceID, + data: { + title: 'Sound Test', + message: 'Loaded res/raw', + soundname: 'test' + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` -*Note:* when you specify the custom sound file name omit the file's extension. +_Note:_ when you specify the custom sound file name omit the file's extension. ## Stacking @@ -517,13 +708,13 @@ By default when using this plugin on Android each notification that your app rec If you want to see multiple notifications in the shade you will need to provide a notification ID as part of the push data sent to the app. For instance if you send: -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "Test Push", - "message": "Push number 1" - } + "registration_ids": ["my device id"], + "data": { + "title": "Test Push", + "message": "Push number 1" + } } ``` @@ -532,37 +723,37 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - to: deviceID, - data: { - title: 'Test Push', - message: 'Push number 1' - } + to: deviceID, + data: { + title: 'Test Push', + message: 'Push number 1' + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` Followed by: -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "Test Push", - "message": "Push number 2" - } + "registration_ids": ["my device id"], + "data": { + "title": "Test Push", + "message": "Push number 2" + } } ``` @@ -571,38 +762,38 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - to: deviceID, - data: { - title: 'Test Push', - message: 'Push number 2' - } + to: deviceID, + data: { + title: 'Test Push', + message: 'Push number 2' + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` You will only see "Push number 2" in the shade. However, if you send: -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "Test Push", - "message": "Push number 1", - "notId": 1 - } + "registration_ids": ["my device id"], + "data": { + "title": "Test Push", + "message": "Push number 1", + "notId": 1 + } } ``` @@ -611,39 +802,39 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - to: deviceID, - data: { - title: 'Test Push', - message: 'Push number 1', - notId: 1 - } + to: deviceID, + data: { + title: 'Test Push', + message: 'Push number 1', + notId: 1 + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` and: -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "Test Push", - "message": "Push number 2", - "notId": 2 - } + "registration_ids": ["my device id"], + "data": { + "title": "Test Push", + "message": "Push number 2", + "notId": 2 + } } ``` @@ -652,25 +843,25 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - to: deviceID, - data: { - title: 'Test Push', - message: 'Push number 2', - notId: 2 - } + to: deviceID, + data: { + title: 'Test Push', + message: 'Push number 2', + notId: 2 + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` @@ -679,17 +870,17 @@ You will see both "Push number 1" and "Push number 2" in the shade. ## Inbox Stacking -A better alternative to stacking your notifications is to use the inbox style to have up to 8 lines of notification text in a single notification. If you send the following JSON from GCM you will see: +A better alternative to stacking your notifications is to use the inbox style to have up to 8 lines of notification text in a single notification. If you send the following JSON from FCM you will see: -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "My Title", - "message": "My first message", - "style": "inbox", - "summaryText": "There are %n% notifications" - } + "registration_ids": ["my device id"], + "data": { + "title": "My Title", + "message": "My first message", + "style": "inbox", + "summaryText": "There are %n% notifications" + } } ``` @@ -698,26 +889,26 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - to: deviceID, - data: { - title: 'My Title', - message: 'My first message', - style: 'inbox', - summaryText: 'There are %n% notifications' - } + to: deviceID, + data: { + title: 'My Title', + message: 'My first message', + style: 'inbox', + summaryText: 'There are %n% notifications' + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` @@ -728,15 +919,15 @@ It will produce a normal looking notification: But, if you follow it up with subsequent notifications like: -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "My Title", - "message": "My second message", - "style": "inbox", - "summaryText": "There are %n% notifications" - } + "registration_ids": ["my device id"], + "data": { + "title": "My Title", + "message": "My second message", + "style": "inbox", + "summaryText": "There are %n% notifications" + } } ``` @@ -745,26 +936,26 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - to: deviceID, - data: { - title: 'My Title', - message: 'My second message', - style: 'inbox', - summaryText: 'There are %n% notifications' - } + to: deviceID, + data: { + title: 'My Title', + message: 'My second message', + style: 'inbox', + summaryText: 'There are %n% notifications' + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` @@ -773,7 +964,7 @@ You will get an inbox view so you can display multiple notifications in a single ![2015-08-25 14 01 35](https://cloud.githubusercontent.com/assets/353180/9468727/2d658bee-4b11-11e5-90fa-248d54c8f3f6.png) -If you use `%n%` in the `summaryText` of the JSON coming down from GCM it will be replaced by the number of messages that are currently in the queue. +If you use `%n%` in the `summaryText` of the JSON coming down from FCM it will be replaced by the number of messages that are currently in the queue. ## Action Buttons @@ -781,33 +972,42 @@ Your notification can include a maximum of three action buttons. You register th ```javascript const push = PushNotification.init({ - "android": { - } + android: {} }); // data contains the push payload just like a notification event -push.on('emailGuests', (data) => { +push.on('emailGuests', data => { console.log('I should email my guests'); }); -push.on('snooze', (data) => { +push.on('snooze', data => { console.log('Remind me later'); }); ``` -If you wish to include an icon along with the button name, they must be placed in the `res/drawable` directory of your Android project. Then you can send the following JSON from GCM: +If you wish to include an icon along with the button name, they must be placed in the `res/drawable` directory of your Android project. Then you can send the following JSON from FCM: -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "AUX Scrum", - "message": "Scrum: Daily touchbase @ 10am Please be on time so we can cover everything on the agenda.", - "actions": [ - { "icon": "emailGuests", "title": "EMAIL GUESTS", "callback": "emailGuests", "foreground": true}, - { "icon": "snooze", "title": "SNOOZE", "callback": "snooze", "foreground": false} - ] - } + "registration_ids": ["my device id"], + "data": { + "title": "AUX Scrum", + "message": "Scrum: Daily touchbase @ 10am Please be on time so we can cover everything on the agenda.", + "actions": [ + { + "icon": "emailGuests", + "title": "EMAIL GUESTS", + "callback": "emailGuests", + "foreground": true + }, + { + "icon": "snooze", + "title": "SNOOZE", + "callback": "snooze", + "foreground": false + } + ] + } } ``` @@ -816,28 +1016,34 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - to: deviceID, - data: { - title: 'AUX Scrum', - message: 'Scrum: Daily touchbase @ 10am Please be on time so we can cover everything on the agenda.', - actions: [ - { icon: "emailGuests", title: "EMAIL GUESTS", callback: "emailGuests", foreground: true}, - { icon: "snooze", title: "SNOOZE", callback: "snooze", foreground: false}, - ] - } + to: deviceID, + data: { + title: 'AUX Scrum', + message: + 'Scrum: Daily touchbase @ 10am Please be on time so we can cover everything on the agenda.', + actions: [ + { + icon: 'emailGuests', + title: 'EMAIL GUESTS', + callback: 'emailGuests', + foreground: true + }, + { icon: 'snooze', title: 'SNOOZE', callback: 'snooze', foreground: false } + ] + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` @@ -852,19 +1058,31 @@ If your user clicks on the main body of the notification, then your app will be Android N introduces a new capability for push notifications, the in line reply text field. If you wish to get some text data from the user when the action button is called send the following type of payload. -Your notification can include action buttons. If you wish to include an icon along with the button name they must be placed in the `res/drawable` directory of your Android project. Then you can send the following JSON from GCM: +Your notification can include action buttons. If you wish to include an icon along with the button name they must be placed in the `res/drawable` directory of your Android project. Then you can send the following JSON from FCM: -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "AUX Scrum", - "message": "Scrum: Daily touchbase @ 10am Please be on time so we can cover everything on the agenda.", - "actions": [ - { "icon": "emailGuests", "title": "EMAIL GUESTS", "callback": "emailGuests", "foreground": false, "inline": true, "replyLabel": "Enter your reply here" }, - { "icon": "snooze", "title": "SNOOZE", "callback": "snooze", "foreground": false} - ] - } + "registration_ids": ["my device id"], + "data": { + "title": "AUX Scrum", + "message": "Scrum: Daily touchbase @ 10am Please be on time so we can cover everything on the agenda.", + "actions": [ + { + "icon": "emailGuests", + "title": "EMAIL GUESTS", + "callback": "emailGuests", + "foreground": false, + "inline": true, + "replyLabel": "Enter your reply here" + }, + { + "icon": "snooze", + "title": "SNOOZE", + "callback": "snooze", + "foreground": false + } + ] + } } ``` @@ -873,28 +1091,36 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - to: deviceID, - data: { - title: 'AUX Scrum', - message: 'Scrum: Daily touchbase @ 10am Please be on time so we can cover everything on the agenda.', - actions: [ - { "icon": "emailGuests", "title": "EMAIL GUESTS", "callback": "emailGuests", "foreground": false, "inline": true, "replyLabel": "Enter your reply here" }, - { "icon": "snooze", "title": "SNOOZE", "callback": "snooze", "foreground": false}, - ] - } + to: deviceID, + data: { + title: 'AUX Scrum', + message: + 'Scrum: Daily touchbase @ 10am Please be on time so we can cover everything on the agenda.', + actions: [ + { + icon: 'emailGuests', + title: 'EMAIL GUESTS', + callback: 'emailGuests', + foreground: false, + inline: true, + replyLabel: 'Enter your reply here' + }, + { icon: 'snooze', title: 'SNOOZE', callback: 'snooze', foreground: false } + ] + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` @@ -905,7 +1131,7 @@ when the user clicks on the Email Guests button whilst using Android N and great Then your app's `on('notification')` event handler will be called without the app being brought to the foreground and the event data would be: -``` +```json { "title": "AUX Scrum", "message": "Scrum: Daily touchbase @ 10am Please be on time so we can cover everything on the agenda.", @@ -939,27 +1165,27 @@ and the text data that the user typed would be located in `data.additionalData.i #### Attributes -Attribute | Type | Default | Description ---------- | ---- | ------- | ----------- -`icon` | `string` | | Optional. The name of a drawable resource to use as the small-icon. The name should not include the extension. -`title` | `string` | | Required. The label to display for the action button. -`callback` | `string` | | Required. The event to be emitted when the action button is pressed. -`foreground` | `boolean` | `true` | Optional. Whether or not to bring the app to the foreground when the action button is pressed. -`inline` | `boolean` | `false` | Optional. Whether or not to provide a quick reply text field to the user when the button is clicked. -`replyLabel` | `string` | `Enter your reply here` | Optional. If you don't include a `replyLabel` in your action the default will be used. +| Attribute | Type | Default | Description | +| ------------ | --------- | ----------------------- | -------------------------------------------------------------------------------------------------------------- | +| `icon` | `string` | | Optional. The name of a drawable resource to use as the small-icon. The name should not include the extension. | +| `title` | `string` | | Required. The label to display for the action button. | +| `callback` | `string` | | Required. The event to be emitted when the action button is pressed. | +| `foreground` | `boolean` | `true` | Optional. Whether or not to bring the app to the foreground when the action button is pressed. | +| `inline` | `boolean` | `false` | Optional. Whether or not to provide a quick reply text field to the user when the button is clicked. | +| `replyLabel` | `string` | `Enter your reply here` | Optional. If you don't include a `replyLabel` in your action the default will be used. | ## Led in Notifications You can use a Led notifcation and choose the color of it. Just add a `ledColor` field in your notification in the ARGB format array: -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "Green LED", - "message": "This is my message with a Green LED", - "ledColor": [0, 0, 255, 0] - } + "registration_ids": ["my device id"], + "data": { + "title": "Green LED", + "message": "This is my message with a Green LED", + "ledColor": [0, 0, 255, 0] + } } ``` @@ -968,25 +1194,25 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - to: deviceID, - data: { - title: 'Green LED', - message: 'This is my message with a Green LED', - ledColor: [0, 0, 255, 0] - } + to: deviceID, + data: { + title: 'Green LED', + message: 'This is my message with a Green LED', + ledColor: [0, 0, 255, 0] + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` @@ -995,14 +1221,14 @@ fcm.send(message, (err, response) => { You can set a Vibration Pattern for your notifications. Just add a `vibrationPattern` field in your notification: -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "Vibration Pattern", - "message": "Device should wait for 2 seconds, vibrate for 1 second then be silent for 500 ms then vibrate for 500 ms", - "vibrationPattern": [2000, 1000, 500, 500] - } + "registration_ids": ["my device id"], + "data": { + "title": "Vibration Pattern", + "message": "Device should wait for 2 seconds, vibrate for 1 second then be silent for 500 ms then vibrate for 500 ms", + "vibrationPattern": [2000, 1000, 500, 500] + } } ``` @@ -1011,25 +1237,26 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - to: deviceID, - data: { - title: 'Vibration Pattern', - message: 'Device should wait for 2 seconds, vibrate for 1 second then be silent for 500 ms then vibrate for 500 ms', - vibrationPattern: [2000, 1000, 500, 500] - } + to: deviceID, + data: { + title: 'Vibration Pattern', + message: + 'Device should wait for 2 seconds, vibrate for 1 second then be silent for 500 ms then vibrate for 500 ms', + vibrationPattern: [2000, 1000, 500, 500] + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` @@ -1038,14 +1265,14 @@ fcm.send(message, (err, response) => { You can set a priority parameter for your notifications. This priority value determines where the push notification will be put in the notification shade. Low-priority notifications may be hidden from the user in certain situations, while the user might be interrupted for a higher-priority notification. Add a `priority` field in your notification. -2: minimum, -1: low, 0: default , 1: high, 2: maximum priority. -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "This is a maximum priority Notification", - "message": "This notification should appear in front of all others", - "priority": 2 - } + "registration_ids": ["my device id"], + "data": { + "title": "This is a maximum priority Notification", + "message": "This notification should appear in front of all others", + "priority": 2 + } } ``` @@ -1054,45 +1281,45 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - to: deviceID, - data: { - title: 'This is a maximum priority Notification', - message: 'This notification should appear in front of all others', - priority: 2 - } + to: deviceID, + data: { + title: 'This is a maximum priority Notification', + message: 'This notification should appear in front of all others', + priority: 2 + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` -Do not confuse this with the GCM option of setting the [delivery priority of the message](https://developers.google.com/cloud-messaging/concept-options#setting-the-priority-of-a-message). Which is used by GCM to tell the device whether or not it should wake up to deal with the message. +Do not confuse this with the FCM option of setting the [delivery priority of the message](https://developers.google.com/cloud-messaging/concept-options#setting-the-priority-of-a-message). Which is used by FCM to tell the device whether or not it should wake up to deal with the message. ## Picture Messages -Perhaps you want to include a large picture in the notification that you are sending to your users. Luckily you can do that too by sending the following JSON from GCM. +Perhaps you want to include a large picture in the notification that you are sending to your users. Luckily you can do that too by sending the following JSON from FCM. -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "Big Picture", - "message": "This is my big picture message", - "style": "picture", - "picture": "http://36.media.tumblr.com/c066cc2238103856c9ac506faa6f3bc2/tumblr_nmstmqtuo81tssmyno1_1280.jpg", - "summaryText": "The internet is built on cat pictures" - } + "registration_ids": ["my device id"], + "data": { + "title": "Big Picture", + "message": "This is my big picture message", + "style": "picture", + "picture": "http://36.media.tumblr.com/c066cc2238103856c9ac506faa6f3bc2/tumblr_nmstmqtuo81tssmyno1_1280.jpg", + "summaryText": "The internet is built on cat pictures" + } } ``` @@ -1101,26 +1328,27 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - to: deviceID, - data: { - title: 'Big Picture', - message: 'This is my big picture message', - picture: 'http://36.media.tumblr.com/c066cc2238103856c9ac506faa6f3bc2/tumblr_nmstmqtuo81tssmyno1_1280.jpg', - summaryText: 'The internet is built on cat pictures' - } + to: deviceID, + data: { + title: 'Big Picture', + message: 'This is my big picture message', + picture: + 'http://36.media.tumblr.com/c066cc2238103856c9ac506faa6f3bc2/tumblr_nmstmqtuo81tssmyno1_1280.jpg', + summaryText: 'The internet is built on cat pictures' + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` @@ -1135,17 +1363,17 @@ This will produce the following notification in your tray: On Android if you want your `on('notification')` event handler to be called when your app is in the background it is relatively simple. -First the JSON you send from GCM will need to include `"content-available": "1"`. This will tell the push plugin to call your `on('notification')` event handler no matter what other data is in the push notification. +First the JSON you send from FCM will need to include `"content-available": "1"`. This will tell the push plugin to call your `on('notification')` event handler no matter what other data is in the push notification. -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "Test Push", - "message": "Push number 1", - "info": "super secret info", - "content-available": "1" - } + "registration_ids": ["my device id"], + "data": { + "title": "Test Push", + "message": "Push number 1", + "info": "super secret info", + "content-available": "1" + } } ``` @@ -1154,40 +1382,39 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - "to": deviceID, - "data": { - "title": 'Test Push', - "message": 'Push number 1', - "info": 'super secret info', - "content-available": '1' - } + to: deviceID, + data: { + title: 'Test Push', + message: 'Push number 1', + info: 'super secret info', + 'content-available': '1' + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` or if you want the payload to be delivered directly to your app without anything showing up in the notification center, just omit the tite/message from the payload like so: - -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "info": "super secret info", - "content-available": "1" - } + "registration_ids": ["my device id"], + "data": { + "info": "super secret info", + "content-available": "1" + } } ``` @@ -1196,24 +1423,24 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - "to": deviceID, - "data": { - "info": 'super secret info', - "content-available": '1' - } + to: deviceID, + data: { + info: 'super secret info', + 'content-available': '1' + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` @@ -1222,37 +1449,39 @@ If you do not want this type of behaviour, just omit `"content-available": 1` fr ### Use of content_available: true -The [GCM docs](https://developers.google.com/cloud-messaging/http-server-ref#downstream-http-messages-json) will tell you to send a data payload of: +The FCM docs will tell you to send a data payload of: -```javascript +```json { - "registration_ids": ["my device id"], - "content_available": true, - "data": { - "title": "Test Push", - "message": "Push number 1", - "info": "super secret info", - } + "registration_ids": ["my device id"], + "content_available": true, + "data": { + "title": "Test Push", + "message": "Push number 1", + "info": "super secret info" + } } ``` Where the `content_available` property is part of the main payload object. Setting the property in this part of the payload will result in the PushPlugin not getting the data correctly. Setting `content_available: true` will cause the Android OS to handle the push payload for you and not pass the data to the PushPlugin. -Instead move `content_available: true` into the `data` object of the payload. The property name changes slightly to use a `-` instead of an `_`. So, `content_available` becomes `content-available` and `true` becomes `1` as per the example below: +Instead move `content_available: true` into the `data` object of the payload. The property name changes slightly to use a `-` instead of an `_`. So, `content_available` becomes `content-available` and `true` becomes `1` as per the example below: -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "Test Push", - "message": "Push number 1", - "info": "super secret info", - "content-available": "1" - } + "registration_ids": ["my device id"], + "data": { + "title": "Test Push", + "message": "Push number 1", + "info": "super secret info", + "content-available": "1" + } } ``` -### Huawei and Xiaomi Phones +### Chinese Android Phones + +> Huawei, Oppo and Xiaomi These phones have a particular quirk that when the app is force closed that you will no longer be able to receive notifications until the app is restarted. In order for you to receive background notifications: @@ -1260,6 +1489,8 @@ These phones have a particular quirk that when the app is force closed that you - On your Xiaomi make sure your phone has the "Auto-start" property enabled for your app. - On your Asus make sure your phone has the "Auto-start" property enabled for your app. +More explicit instructions can be read on [Forbes website](https://www.forbes.com/sites/bensin/2017/07/28/how-to-fix-push-notifications-on-oppo-phones/#72a523371735). + ### Application force closed In order to take advantage of this feature, you will need to be using cordova-android 6.0.0 or higher. In order to check if the change has been properly applied look at `platforms/android/**/MainActivity.java`. You should see an `onCreate` method that looks like this: @@ -1293,14 +1524,14 @@ This should add the correct code to the `MainActivity` class. If you add `force-start: 1` to the data payload the application will be restarted in background even if it was force closed. -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "Force Start", - "message": "This notification should restart the app", - "force-start": 1 - } + "registration_ids": ["my device id"], + "data": { + "title": "Force Start", + "message": "This notification should restart the app", + "force-start": 1 + } } ``` @@ -1309,25 +1540,25 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - to: deviceID, - "data": { - "title": 'Force Start', - "message": 'This notification should restart the app', - "force-start": '1' - } + to: deviceID, + data: { + title: 'Force Start', + message: 'This notification should restart the app', + 'force-start': '1' + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` @@ -1336,15 +1567,15 @@ fcm.send(message, (err, response) => { By default, when a notification arrives and 'content-available' is set to '1', the plugin will try to deliver the data payload even if the app is not running. In that case, the payload is cached and may be delivered when the app is started again. To disable this behavior, you can set a `no-cache` flag in the notification payload. 0: caching enabled (default), 1: caching disabled. -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "Push without cache", - "message": "When the app is closed, this notification will not be cached", - "content-available": "1", - "no-cache": "1" - } + "registration_ids": ["my device id"], + "data": { + "title": "Push without cache", + "message": "When the app is closed, this notification will not be cached", + "content-available": "1", + "no-cache": "1" + } } ``` @@ -1352,14 +1583,14 @@ By default, when a notification arrives and 'content-available' is set to '1', t You can set a visibility parameter for your notifications. Just add a `visibility` field in your notification. -1: secret, 0: private (default), 1: public. `Secret` shows only the most minimal information, excluding even the notification's icon. `Private` shows basic information about the existence of this notification, including its icon and the name of the app that posted it. The rest of the notification's details are not displayed. `Public` Shows the notification's full content. -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "This is a maximum public Notification", - "message": "This notification should appear in front of all others", - "visibility": 1 - } + "registration_ids": ["my device id"], + "data": { + "title": "This is a maximum public Notification", + "message": "This notification should appear in front of all others", + "visibility": 1 + } } ``` @@ -1368,25 +1599,25 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - to: deviceID, - data: { - title: 'This is a public Notification', - message: 'You should be able to read this notification on your lock screen', - visibility: 1 - } + to: deviceID, + data: { + title: 'This is a public Notification', + message: 'You should be able to read this notification on your lock screen', + visibility: 1 + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` @@ -1395,14 +1626,14 @@ fcm.send(message, (err, response) => { Set whether this is an "ongoing" notification. Ongoing notifications cannot be dismissed by the user, so your application or service must take care of canceling them. They are typically used to indicate a background task that the user is actively engaged with (e.g., playing music) or is pending in some way and therefore occupying the device (e.g., a file download, sync operation, active network connection). -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "This is an ongoing Notification", - "message": "Some people also call me a sticky notification", - "ongoing": true - } + "registration_ids": ["my device id"], + "data": { + "title": "This is an ongoing Notification", + "message": "Some people also call me a sticky notification", + "ongoing": true + } } ``` @@ -1411,25 +1642,25 @@ Here is an example using fcm-node that sends the above JSON: ```javascript var FCM = require('fcm-node'); // Replace these with your own values. -var apiKey = "replace with API key"; -var deviceID = "my device id"; +var apiKey = 'replace with API key'; +var deviceID = 'my device id'; var fcm = new FCM(apiKey); var message = { - to: deviceID, - data: { - title: 'This is an ongoing Notification', - message: 'Some people also call me a sticky notification', - ongoing: true - } + to: deviceID, + data: { + title: 'This is an ongoing Notification', + message: 'Some people also call me a sticky notification', + ongoing: true + } }; -fcm.send(message, function(err, response){ +fcm.send(message, function(err, response) { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` @@ -1440,14 +1671,14 @@ On Android not all launchers support badges. In order for us to set badges we us In order to set the badge number, you will need to include the `badge` property in your push payload as below: -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "Badge Test", - "message": "Badges, we don't need no stinking badges", - "badge": 7 - } + "registration_ids": ["my device id"], + "data": { + "title": "Badge Test", + "message": "Badges, we don't need no stinking badges", + "badge": 7 + } } ``` @@ -1456,25 +1687,25 @@ Here is an example using fcm-node that sends the above JSON: ```javascript const FCM = require('fcm-node'); // Replace these with your own values. -const apiKey = "replace with API key"; -const deviceID = "my device id"; +const apiKey = 'replace with API key'; +const deviceID = 'my device id'; const fcm = new FCM(apiKey); const message = { - to: deviceID, - data: { - title: 'Badge Test', - message: 'Badges, we don\'t need no stinking badges', - badge: 7 - } + to: deviceID, + data: { + title: 'Badge Test', + message: "Badges, we don't need no stinking badges", + badge: 7 + } }; fcm.send(message, (err, response) => { if (err) { console.log(err); - console.log("Something has gone wrong!"); + console.log('Something has gone wrong!'); } else { - console.log("Successfully sent with response: ", response); + console.log('Successfully sent with response: ', response); } }); ``` @@ -1500,14 +1731,14 @@ curl 'https://notify.twilio.com/v1/Services/IS1e928b239609199df31d461071fd3d23/N The JSON received by your app will comply with the standards described in the sections above: -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "Hello Bob!", - "message": "Hello Bob! Twilio Notify + Phonegap is awesome!", - "sound": "chime" - } + "registration_ids": ["my device id"], + "data": { + "title": "Hello Bob!", + "message": "Hello Bob! Twilio Notify + Phonegap is awesome!", + "sound": "chime" + } } ``` @@ -1531,8 +1762,7 @@ For instance if you register for push notifications like normal: ```javascript const push = PushNotification.init({ - "android": { - } + android: {} }); ``` @@ -1542,14 +1772,14 @@ However, if you want to take advantage of multiple channels in your app, you can Now when you send a push payload to the device you'll need to specify a channel: -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "Hello Bob!", - "message": "Phonegap is awesome!", - "android_channel_id": "testchannel2" - } + "registration_ids": ["my device id"], + "data": { + "title": "Hello Bob!", + "message": "Phonegap is awesome!", + "android_channel_id": "testchannel2" + } } ``` @@ -1563,23 +1793,23 @@ In order for your notification to play a custom sound, you will need to add the Then send the follow JSON from APNS: -```javascript +```json { - "aps": { - "alert": "Test sound", - "sound": "sub.caf" - } + "aps": { + "alert": "Test sound", + "sound": "sub.caf" + } } ``` If you want the default sound to play upon receipt of push, use this payload: -```javascript +```json { - "aps": { - "alert": "Test sound", - "sound": "default" - } + "aps": { + "alert": "Test sound", + "sound": "default" + } } ``` @@ -1591,17 +1821,17 @@ If you want the default sound to play upon receipt of push, use this payload: On iOS if you want your `on('notification')` event handler to be called when your app is in the background you will need to do a few things. -First the JSON you send from APNS will need to include `"content-available": 1` to the `aps` object. The `"content-available": 1` property in your push message is a signal to iOS to wake up your app and give it up to 30 seconds of background processing. If do not want this type of behaviour just omit `"content-available": 1` from your push data. As well you *should* set a `notId` property in the root of payload object. This is the parameter you pass to the `finish` method in order to tell the operating system that the processing of the push event is done. +First the JSON you send from APNS will need to include `"content-available": 1` to the `aps` object. The `"content-available": 1` property in your push message is a signal to iOS to wake up your app and give it up to 30 seconds of background processing. If do not want this type of behaviour just omit `"content-available": 1` from your push data. As well you _should_ set a `notId` property in the root of payload object. This is the parameter you pass to the `finish` method in order to tell the operating system that the processing of the push event is done. For instance the following JSON: -```javascript +```json { - "aps": { - "alert": "Test background push", - "content-available": 1 - }, - "notId": 1 // unique ID you generate + "aps": { + "alert": "Test background push", + "content-available": 1 + }, + "notId": 1 // unique ID you generate } ``` @@ -1611,14 +1841,14 @@ will produce a notification in the notification shade and call your `on('notific However if you want your `on('notification')` event handler called but no notification to be shown in the shader you would omit the `alert` property and send the following JSON to APNS: -```javascript +```json { - "aps": { - "data": "Test silent background push", - "moredata": "Do more stuff", - "content-available": 1 - }, - "notId": 2 // unique ID you generate + "aps": { + "data": "Test silent background push", + "moredata": "Do more stuff", + "content-available": 1 + }, + "notId": 2 // unique ID you generate } ``` @@ -1628,64 +1858,95 @@ For example: ```javascript const push = PushNotification.init({ - "ios": { - "sound": "true", - "alert": "true", - "badge": "true", - "clearBadge": "true" - } + ios: { + sound: 'true', + alert: 'true', + badge: 'true', + clearBadge: 'true' + } }); -push.on('registration', (data) => { - // send data.registrationId to push service +push.on('registration', data => { + // send data.registrationId to push service }); - -push.on('notification', (data) => { - // do something with the push data - // then call finish to let the OS know we are done - push.finish(() => { - console.log("processing of push data is finished"); - }, () => { - console.log("something went wrong with push.finish for ID =", data.additionalData.notId) - }, data.additionalData.notId); +push.on('notification', data => { + // do something with the push data + // then call finish to let the OS know we are done + push.finish( + () => { + console.log('processing of push data is finished'); + }, + () => { + console.log( + 'something went wrong with push.finish for ID =', + data.additionalData.notId + ); + }, + data.additionalData.notId + ); }); ``` It is absolutely critical that you call `push.finish()` when you have successfully processed your background push data. +## VoIP Notifications + +VoIP Notifications are a type of iOS notifications that are always received and handled also when the app is closed or in background and consist only of payload data, so the developer is the responsible of handling the event and do whatever the aplication should do when receiving one of them. The cordova-plugin-local-notifications is a good complement for the VoIP feature. + +In order to maintain the plugin data transfer standard, the payload sent to aps maintains the same structure as the one of common notifications with the consideration that the notification will be always be silent independently of the params that you pass to it. + +The `on('notification')` event handler will always be called excepting if Background App Refresh is disabled on the user's iOS device. (Settings > General > Background App Refresh). + +In order to set up your application with this type of notifications, refer to the [API guide](API.md#ios-voip-notifications). + ## Action Buttons Your notification can include action buttons. For iOS 8+ you must setup the possible actions when you initialize the plugin: ```javascript const push = PushNotification.init({ - "ios": { - "sound": true, - "alert": true, - "badge": true, - "categories": { - "invite": { - "yes": { - "callback": "accept", "title": "Accept", "foreground": true, "destructive": false - }, - "no": { - "callback": "reject", "title": "Reject", "foreground": true, "destructive": false - }, - "maybe": { - "callback": "maybe", "title": "Maybe", "foreground": true, "destructive": false - } - }, - "delete": { - "yes": { - "callback": "doDelete", "title": "Delete", "foreground": true, "destructive": true - }, - "no": { - "callback": "cancel", "title": "Cancel", "foreground": true, "destructive": false - } - } - } - } + ios: { + sound: true, + alert: true, + badge: true, + categories: { + invite: { + yes: { + callback: 'accept', + title: 'Accept', + foreground: true, + destructive: false + }, + no: { + callback: 'reject', + title: 'Reject', + foreground: true, + destructive: false + }, + maybe: { + callback: 'maybe', + title: 'Maybe', + foreground: true, + destructive: false + } + }, + delete: { + yes: { + callback: 'doDelete', + title: 'Delete', + foreground: true, + destructive: true + }, + no: { + callback: 'cancel', + title: 'Cancel', + foreground: true, + destructive: false + } + } + } + } }); ``` @@ -1727,15 +1988,15 @@ push.on('maybe', (data) => { You may notice that the `finish` method now takes `success`, `failure` and `id` parameters. The `id` parameter let's the operating system know which background process to stop. You'll set it in the next step. -Then you will need to set the `category` value in your `aps` payload to match one of the objects in the `categories` object. As well you *should* set a `notId` property in the root of payload object. This is the parameter you pass to the `finish` method in order to tell the operating system that the processing of the push event is done. +Then you will need to set the `category` value in your `aps` payload to match one of the objects in the `categories` object. As well you _should_ set a `notId` property in the root of payload object. This is the parameter you pass to the `finish` method in order to tell the operating system that the processing of the push event is done. -```javascript +```json { - "aps": { - "alert": "This is a notification that will be displayed ASAP.", - "category": "invite" - }, - "notId": "1" + "aps": { + "alert": "This is a notification that will be displayed ASAP.", + "category": "invite" + }, + "notId": "1" } ``` @@ -1745,53 +2006,53 @@ This will produce the following notification in your tray: If your users clicks on the main body of the notification your app will be opened. However, if they click on either of the action buttons the app will open (or start) and the specified JavaScript callback will be executed. -### Action Buttons using GCM on iOS +### Action Buttons using FCM on iOS -If you are using GCM to send push messages on iOS you will need to send a different payload in order for the action buttons to be present in the notification shade. You'll need to use the `click-action` property in order to specify the category. +If you are using FCM to send push messages on iOS you will need to send a different payload in order for the action buttons to be present in the notification shade. You'll need to use the `click-action` property in order to specify the category. -```javascript +```json { - "registration_ids": ["my device id"], - "notification": { - "title": "AUX Scrum", - "body": "Scrum: Daily touchbase @ 10am Please be on time so we can cover everything on the agenda.", - "click-action": "invite" - } + "registration_ids": ["my device id"], + "notification": { + "title": "AUX Scrum", + "body": "Scrum: Daily touchbase @ 10am Please be on time so we can cover everything on the agenda.", + "click-action": "invite" + } } ``` -## GCM and Additional Data +## FCM and Additional Data -GCM on iOS is a different animal. The way you send data via GCM on Android is like: +FCM on iOS is a different animal. The way you send data via FCM on Android is like: -```javascript +```json { - "registration_ids": ["my device id"], - "data": { - "title": "My Title", - "message": "My message", - "key1": "data 1", - "key2": "data 2" - } + "registration_ids": ["my device id"], + "data": { + "title": "My Title", + "message": "My message", + "key1": "data 1", + "key2": "data 2" + } } ``` will produce a `notification` event with the following data: -```javascript +```json { - "title": "My Title", - "message": "My message", - "additionalData": { - "key1": "data 1", - "key2": "data 2" - } + "title": "My Title", + "message": "My message", + "additionalData": { + "key1": "data 1", + "key2": "data 2" + } } ``` -but in order for the same `notification` event you would need to send your push to GCM iOS in a slight different format: +but in order for the same `notification` event you would need to send your push to FCM iOS in a slight different format: -```javascript +```json { "registration_ids": ["my device id"], "notification": { @@ -1807,21 +2068,51 @@ but in order for the same `notification` event you would need to send your push The `title` and `body` need to be in the `notification` part of the payload in order for the OS to pick them up correctly. Everything else should be in the `data` part of the payload. -## GCM Messages Not Arriving +## FCM Messages Not Arriving -For some users of the plugin they are unable to get messages sent via GCM to show up on their devices. If you are running into this issue try setting the `priority` of the message to `high` in the payload. +For some users of the plugin they are unable to get messages sent via FCM to show up on their devices. If you are running into this issue try setting the `priority` of the message to `high` in the payload. -```javascript +```json { - "registration_ids": ["my device id"], - "notification": { - "title": "My Title", - "body": "My message" - }, - "priority": "high" + "registration_ids": ["my device id"], + "notification": { + "title": "My Title", + "body": "My message" + }, + "priority": "high" } ``` +# FCM Payload Details + +Here's a sample JSON payload to send a push notification to an Android or iOS device using the FCM app server protocol: + +```json +{ + "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", + /* To send a silent push, omit the entire notification section and send only data */ + "notification": { + "title": "Test title", /* The notification's title */ + "body": "Test body.", /* The notification's body text */ + "subtitle": "Test subtitle", /* iOS: The notification's subtitle */ + "sound": "default", /* The sound to play when the device receives the notification */ + "tag": "1", /* Android: Group notifications with the same tag */ + "icon": "push_icon", /* Android: PNG icon from the res/drawable folder */ + "color": "#AABBCC" /* Android: Icon's background color in #RRGGBB format */ + }, + /* Optional payload that will be available from data.additionalData */ + "data": { + "custom_var_1": "custom value here", /* Retrieved on app as data.additionalData.custom_var_1 */ + "custom_var_2:" "custom value here" /* Retrieved on app as data.additionalData.custom_var_2 */ + } +} +``` + +More information on how to send push notifications using the FCM HTTP protocol and payload details can be found here: + +- [Send messages using the legacy app server protocols](https://firebase.google.com/docs/cloud-messaging/send-message#send_messages_using_the_legacy_app_server_protocols 'Send messages using the legacy app server protocols') +- [Firebase Cloud Messaging HTTP Protocol](https://firebase.google.com/docs/cloud-messaging/http-server-ref 'Firebase Cloud Messaging HTTP Protocol') + # Windows Behaviour ## Notifications @@ -1841,7 +2132,7 @@ This plugin automatically sets the toast capable flag to be true for Cordova 5.1 The default handling can be disabled by setting the 'cancel' property in the notification object. ```javascript -data.additionalData.pushNotificationReceivedEventArgs.cancel = true +data.additionalData.pushNotificationReceivedEventArgs.cancel = true; ``` ## Background Notifications diff --git a/docs/PHONEGAP_BUILD.md b/docs/PHONEGAP_BUILD.md index 7f460738c..6cff22bc6 100644 --- a/docs/PHONEGAP_BUILD.md +++ b/docs/PHONEGAP_BUILD.md @@ -1,15 +1,13 @@ # Cloud Build Services -- [PhoneGap Build Support](#phonegap-build-support) - - [Including the plugin](#including-the-plugin) - - [Adding Resources](#adding-resources) -- [IntelXDK Support](#intelxdk-support) -- [Ionic Cloud Build](#ionic-cloud-build) +* [PhoneGap Build Support](#phonegap-build-support) + * [Including the plugin](#including-the-plugin) + * [Adding Resources](#adding-resources) +* [IntelXDK Support](#intelxdk-support) +* [Ionic Cloud Build](#ionic-cloud-build) ## PhoneGap Build Support -> PhoneGap Build now support version 1.9.0 of the plugin. - ### Including the plugin Including this plugin in a project that is built by PhoneGap Build is as easy as adding (replacing `123456789` with your own, that is): @@ -32,7 +30,7 @@ Note: version 1.3.0 of this plugin begins to use Gradle to install the Android S ### Adding resources -Because PhoneGap Build does not support running hooks if you want to include custom image or sounds you will need to use a *beta* feature to include these files. +Because PhoneGap Build does not support running hooks if you want to include custom image or sounds you will need to use a _beta_ feature to include these files. #### Android @@ -48,48 +46,48 @@ Existing directories will be merged, but at this time any individual files you i ## IntelXDK Support -1. Do pre-requisite setup on [the iOS Provisioning Portal](https://developer.apple.com/account/ios/identifier/bundle). Refer to [this guide](https://www.raywenderlich.com/123862/push-notifications-tutorial) or Apple docs for detailed steps. -a. make a new App ID (you'll need to set this in Intel XDK config later) -b. enable push notifications -c. iOS Distribution cert: create (if needed), download and install (if needed), export as a .p12 (set and remember the password as you'll need this to import into Intel XDK later) -**NOTE**: Intel XDK does not support Development certs, so you MUST use your Distribution cert. -d. Make an AdHoc Provisioning Profile using your App ID from (1a) and your cert from (1c). Make sure your test device is enabled. Download and save with a name you will recognize. (you'll need to add this to your Intel XDK project later) -e. make a push cert, download it, install it, export it to .p12, convert it to .pem (this is for the push server that will send the notification - you'll need this later to test your Intel XDK app) - -2. In Intel XDK, make a new Cordova CLI 5.4.1 project using the HTML5+Cordova Blank Template, then replace the contents of www with [the contents of www from the PhoneGap Push Template](https://github.com/phonegap/phonegap-template-push/tree/master/template_src/www). - -3. Delete www/config.xml (optional? Intel XDK does not use config.xml) - -4. Intel XDK Project Settings -a. set the iOS App ID to match the App ID from (1a) -b. (if needed) import your .p12 from (1c) - Account Settings->Developer Certificates->iOS, then select it as the Developer Certificate for the project -c. Select "adhoc" for Provisioning Profile -d. copy your provisioning profile from (1d) into www/, then click "Ad hoc Provisioning Profile" and select the profile -e. Add the latest version of phonegap-plugin-push as a "Third-Party Plugin" (at time of testing this was 1.6.4) -f. **After the plugin is added, you will need to edit plugins/phonegap-plugin-push/plugin.xml**. Intel XDK 3357 does not support plugins with gradle references, so the gradle reference must be commented out (this will prevent this version of the plugin from working for Android but is needed for the iOS build to succeed): -`` -A future version of Intel XDK will support gradle references. - -5. XDK Build Tab -a. Enable iOS build (click the checkmark) -b. Unlock your iOS certificate (click the lock and enter the password from (1c)) -c. click Start Builds -d. once the build completes, download and install the app - -6. connect test device by USB and open XCode Devices window (probably could also use Safari Web Inspector + Cordova Console plugin) - start the app and a log message should be written into the console that looks like "Push Plugin register success: \" - -7. exit the app (close with home button then swipe it off the multitask view) - -8. The angle brackets and everything between (from (5)) is the device token - copy it into a text file - -9. Add the device token to your server and send a push notification -a. I used [phonegap-plugin-push/example/server/pushAPNS.rb](https://github.com/phonegap/phonegap-plugin-push/blob/master/example/server/pushAPNS.rb) for this -b. APNS.host = 'gateway.push.apple.com' -c. APNS.pem = 'PGPush926Prod.pem' #path to your pem file from (1e) -d. device_token = '\' #the device token from (7) -e. edit the alert message and badge number -f. you probably need to install the required gem (`gem install pushmeup`) -g. send the notification (`ruby pushAPNS.rb`) +1. Do pre-requisite setup on [the iOS Provisioning Portal](https://developer.apple.com/account/ios/identifier/bundle). Refer to [this guide](https://www.raywenderlich.com/123862/push-notifications-tutorial) or Apple docs for detailed steps. + a. make a new App ID (you'll need to set this in Intel XDK config later) + b. enable push notifications + c. iOS Distribution cert: create (if needed), download and install (if needed), export as a .p12 (set and remember the password as you'll need this to import into Intel XDK later) + **NOTE**: Intel XDK does not support Development certs, so you MUST use your Distribution cert. + d. Make an AdHoc Provisioning Profile using your App ID from (1a) and your cert from (1c). Make sure your test device is enabled. Download and save with a name you will recognize. (you'll need to add this to your Intel XDK project later) + e. make a push cert, download it, install it, export it to .p12, convert it to .pem (this is for the push server that will send the notification - you'll need this later to test your Intel XDK app) + +2. In Intel XDK, make a new Cordova CLI 5.4.1 project using the HTML5+Cordova Blank Template, then replace the contents of www with [the contents of www from the PhoneGap Push Template](https://github.com/phonegap/phonegap-template-push/tree/master/template_src/www). + +3. Delete www/config.xml (optional? Intel XDK does not use config.xml) + +4. Intel XDK Project Settings + a. set the iOS App ID to match the App ID from (1a) + b. (if needed) import your .p12 from (1c) - Account Settings->Developer Certificates->iOS, then select it as the Developer Certificate for the project + c. Select "adhoc" for Provisioning Profile + d. copy your provisioning profile from (1d) into www/, then click "Ad hoc Provisioning Profile" and select the profile + e. Add the latest version of phonegap-plugin-push as a "Third-Party Plugin" (at time of testing this was 1.6.4) + f. **After the plugin is added, you will need to edit plugins/phonegap-plugin-push/plugin.xml**. Intel XDK 3357 does not support plugins with gradle references, so the gradle reference must be commented out (this will prevent this version of the plugin from working for Android but is needed for the iOS build to succeed): + `` + A future version of Intel XDK will support gradle references. + +5. XDK Build Tab + a. Enable iOS build (click the checkmark) + b. Unlock your iOS certificate (click the lock and enter the password from (1c)) + c. click Start Builds + d. once the build completes, download and install the app + +6. connect test device by USB and open XCode Devices window (probably could also use Safari Web Inspector + Cordova Console plugin) - start the app and a log message should be written into the console that looks like "Push Plugin register success: \" + +7. exit the app (close with home button then swipe it off the multitask view) + +8. The angle brackets and everything between (from (5)) is the device token - copy it into a text file + +9. Add the device token to your server and send a push notification + a. I used [phonegap-plugin-push/example/server/pushAPNS.rb](https://github.com/phonegap/phonegap-plugin-push/blob/master/example/server/pushAPNS.rb) for this + b. APNS.host = 'gateway.push.apple.com' + c. APNS.pem = 'PGPush926Prod.pem' #path to your pem file from (1e) + d. device_token = '\' #the device token from (7) + e. edit the alert message and badge number + f. you probably need to install the required gem (`gem install pushmeup`) + g. send the notification (`ruby pushAPNS.rb`) 10. See notification on device! @@ -97,16 +95,17 @@ g. send the notification (`ruby pushAPNS.rb`) Users have reported issues with Ionic Cloud Build. Apparently there are some differences in the way variables are handled. If your app has an issue where the `PushNotification` object can't be found try the following. -1. Remove the inclusion of `phonegap-plugin-push` from config.xml. That is delete lines that look like this: +1. Remove the inclusion of `phonegap-plugin-push` from config.xml. That is delete lines that look like this: -``` +```xml ``` -2. Add the following lines into `package.json` in the `cordovaPlugins` array. -``` +2. Add the following lines into `package.json` in the `cordovaPlugins` array. + +```json { "variables": { "SENDER_ID": "xxx" diff --git a/package.json b/package.json index 5678ab9b9..a77d3d9d8 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "phonegap-plugin-push", "description": "Register and receive push notifications.", "types": "./types/index.d.ts", - "version": "2.1.3", + "version": "2.2.3", "homepage": "http://github.com/phonegap/phonegap-plugin-push#readme", "repository": { "type": "git", @@ -52,10 +52,15 @@ "cordova-android": ">=6.3.0", "cordova": ">=7.1.0" }, - "2.1.2": { + "<2.2.0": { "cordova-ios": ">=4.5.0", "cordova-android": ">=6.3.0", "cordova": ">=7.1.0" + }, + "2.2.0": { + "cordova-ios": ">=4.5.0", + "cordova-android": ">=7.1.0", + "cordova": ">=7.1.0" } } }, diff --git a/plugin.xml b/plugin.xml index d09d609fa..a563f3253 100755 --- a/plugin.xml +++ b/plugin.xml @@ -1,5 +1,5 @@ - + PushPlugin This plugin allows your application to receive push notifications on Android, iOS and Windows devices. Android uses Firebase Cloud Messaging. iOS uses Apple APNS Notifications. Windows uses Microsoft WNS Notifications. MIT @@ -8,7 +8,7 @@ - + @@ -38,11 +38,13 @@ - + + + - - + + @@ -81,6 +83,7 @@ + @@ -91,4 +94,4 @@ - \ No newline at end of file + diff --git a/push.gradle b/push.gradle deleted file mode 100644 index 39fcb559a..000000000 --- a/push.gradle +++ /dev/null @@ -1,36 +0,0 @@ -import java.util.regex.Pattern - -def doExtractStringFromManifest(name) { - def manifestFile = file("AndroidManifest.xml") - if (!manifestFile.exists()) { - manifestFile = file("src/main/AndroidManifest.xml") - } - def pattern = Pattern.compile(name + "=\"(.*?)\"") - def matcher = pattern.matcher(manifestFile.getText()) - matcher.find() - return matcher.group(1) -} - -android { - defaultConfig { - multiDexEnabled true - applicationId = doExtractStringFromManifest("package") - } -} - -buildscript { - repositories { - jcenter() - mavenLocal() - } - dependencies { - classpath 'com.android.tools.build:gradle:+' - classpath 'com.google.gms:google-services:3.0.0' - } -} - -// apply plugin: 'com.google.gms.google-services' -// class must be used instead of id(string) to be able to apply plugin from non-root gradle file -ext.postBuildExtras = { - apply plugin: com.google.gms.googleservices.GoogleServicesPlugin -} diff --git a/spec/index.spec.js b/spec/index.spec.js index 9333d4415..a7123e0af 100644 --- a/spec/index.spec.js +++ b/spec/index.spec.js @@ -75,6 +75,12 @@ describe('phonegap-plugin-push', function () { expect(push.clearAllNotifications).toBeDefined(); expect(typeof push.clearAllNotifications === 'function').toBe(true); }); + + it('should contain a clearNotification function', function () { + var push = PushNotification.init({}); + expect(push.clearNotification).toBeDefined(); + expect(typeof push.clearNotification === 'function').toBe(true); + }); it('should contain a subscribe function', function () { var push = PushNotification.init({}); @@ -423,5 +429,39 @@ describe('phonegap-plugin-push', function () { }); }); }); + + describe('clear notification method', function () { + describe('cordova.exec', function () { + it('should call cordova.exec on next process tick using number argument', function (done) { + var push = PushNotification.init(options); + push.clearNotification(function () {}, function () {}, 145); + setTimeout(function () { + expect(execSpy).toHaveBeenCalledWith( + jasmine.any(Function), + jasmine.any(Function), + 'PushNotification', + 'clearNotification', + [145] + ); + done(); + }, 100); + }); + + it('should call cordova.exec on next process tick using string argument', function (done) { + var push = PushNotification.init(options); + push.clearNotification(function () {}, function () {}, "145"); + setTimeout(function () { + expect(execSpy).toHaveBeenCalledWith( + jasmine.any(Function), + jasmine.any(Function), + 'PushNotification', + 'clearNotification', + [145] + ); + done(); + }, 100); + }); + }); + }); }); }); diff --git a/src/android/com/adobe/phonegap/push/FCMService.java b/src/android/com/adobe/phonegap/push/FCMService.java index 18f147241..db1738a72 100644 --- a/src/android/com/adobe/phonegap/push/FCMService.java +++ b/src/android/com/adobe/phonegap/push/FCMService.java @@ -193,9 +193,9 @@ private String localizeKey(Context context, String key, String value) { /* * Replace alternate keys with our canonical value */ - private String normalizeKey(String key, String messageKey, String titleKey) { + private String normalizeKey(String key, String messageKey, String titleKey, Bundle newExtras) { if (key.equals(BODY) || key.equals(ALERT) || key.equals(MP_MESSAGE) || key.equals(GCM_NOTIFICATION_BODY) - || key.equals(TWILIO_BODY) || key.equals(messageKey)) { + || key.equals(TWILIO_BODY) || key.equals(messageKey) || key.equals(AWS_PINPOINT_BODY)) { return MESSAGE; } else if (key.equals(TWILIO_TITLE) || key.equals(SUBJECT) || key.equals(titleKey)) { return TITLE; @@ -203,6 +203,9 @@ private String normalizeKey(String key, String messageKey, String titleKey) { return COUNT; } else if (key.equals(SOUNDNAME) || key.equals(TWILIO_SOUND)) { return SOUND; + } else if (key.equals(AWS_PINPOINT_PICTURE)) { + newExtras.putString(STYLE, STYLE_PICTURE); + return PICTURE; } else if (key.startsWith(GCM_NOTIFICATION)) { return key.substring(GCM_NOTIFICATION.length() + 1, key.length()); } else if (key.startsWith(GCM_N)) { @@ -210,6 +213,8 @@ private String normalizeKey(String key, String messageKey, String titleKey) { } else if (key.startsWith(UA_PREFIX)) { key = key.substring(UA_PREFIX.length() + 1, key.length()); return key.toLowerCase(); + } else if (key.startsWith(AWS_PINPOINT_PREFIX)) { + return key.substring(AWS_PINPOINT_PREFIX.length() + 1, key.length()); } else { return key; } @@ -247,13 +252,13 @@ private Bundle normalizeExtras(Context context, Bundle extras, String messageKey Log.d(LOG_TAG, "key = data/" + jsonKey); String value = data.getString(jsonKey); - jsonKey = normalizeKey(jsonKey, messageKey, titleKey); + jsonKey = normalizeKey(jsonKey, messageKey, titleKey, newExtras); value = localizeKey(context, jsonKey, value); newExtras.putString(jsonKey, value); } } else if (data.has(LOC_KEY) || data.has(LOC_DATA)) { - String newKey = normalizeKey(key, messageKey, titleKey); + String newKey = normalizeKey(key, messageKey, titleKey, newExtras); Log.d(LOG_TAG, "replace key " + key + " with " + newKey); replaceKey(context, key, newKey, extras, newExtras); } @@ -261,7 +266,7 @@ private Bundle normalizeExtras(Context context, Bundle extras, String messageKey Log.e(LOG_TAG, "normalizeExtras: JSON exception"); } } else { - String newKey = normalizeKey(key, messageKey, titleKey); + String newKey = normalizeKey(key, messageKey, titleKey, newExtras); Log.d(LOG_TAG, "replace key " + key + " with " + newKey); replaceKey(context, key, newKey, extras, newExtras); } @@ -272,7 +277,7 @@ private Bundle normalizeExtras(Context context, Bundle extras, String messageKey String notifkey = iterator.next(); Log.d(LOG_TAG, "notifkey = " + notifkey); - String newKey = normalizeKey(notifkey, messageKey, titleKey); + String newKey = normalizeKey(notifkey, messageKey, titleKey, newExtras); Log.d(LOG_TAG, "replace key " + notifkey + " with " + newKey); String valueData = value.getString(notifkey); @@ -287,7 +292,7 @@ private Bundle normalizeExtras(Context context, Bundle extras, String messageKey // with the other "message" key (holding the body of the payload) // See issue #1663 } else { - String newKey = normalizeKey(key, messageKey, titleKey); + String newKey = normalizeKey(key, messageKey, titleKey, newExtras); Log.d(LOG_TAG, "replace key " + key + " with " + newKey); replaceKey(context, key, newKey, extras, newExtras); } @@ -324,6 +329,10 @@ private void showNotificationIfPossible(Context context, Bundle extras) { Log.d(LOG_TAG, "count =[" + badgeCount + "]"); PushPlugin.setApplicationIconBadgeNumber(context, badgeCount); } + if (badgeCount == 0) { + NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + mNotificationManager.cancelAll(); + } Log.d(LOG_TAG, "message =[" + message + "]"); Log.d(LOG_TAG, "title =[" + title + "]"); diff --git a/src/android/com/adobe/phonegap/push/PushConstants.java b/src/android/com/adobe/phonegap/push/PushConstants.java index 47f254295..9b4656a00 100644 --- a/src/android/com/adobe/phonegap/push/PushConstants.java +++ b/src/android/com/adobe/phonegap/push/PushConstants.java @@ -71,6 +71,9 @@ public interface PushConstants { public static final String TWILIO_BODY = "twi_body"; public static final String TWILIO_TITLE = "twi_title"; public static final String TWILIO_SOUND = "twi_sound"; + public static final String AWS_PINPOINT_BODY = "pinpoint.notification.body"; + public static final String AWS_PINPOINT_PICTURE = "pinpoint.notification.imageUrl"; + public static final String AWS_PINPOINT_PREFIX = "pinpoint.notification"; public static final String MP_MESSAGE = "mp_message"; public static final String START_IN_BACKGROUND = "cdvStartInBackground"; public static final String FORCE_START = "force-start"; @@ -98,4 +101,5 @@ public interface PushConstants { public static final String DELETE_CHANNEL = "deleteChannel"; public static final String ONGOING = "ongoing"; public static final String LIST_CHANNELS = "listChannels"; + public static final String CLEAR_NOTIFICATION = "clearNotification"; } diff --git a/src/android/com/adobe/phonegap/push/PushPlugin.java b/src/android/com/adobe/phonegap/push/PushPlugin.java index 21f4e3c6f..690b37776 100644 --- a/src/android/com/adobe/phonegap/push/PushPlugin.java +++ b/src/android/com/adobe/phonegap/push/PushPlugin.java @@ -50,6 +50,7 @@ public class PushPlugin extends CordovaPlugin implements PushConstants { /** * Gets the application context from cordova's main activity. + * * @return the application context */ private Context getApplicationContext() { @@ -120,8 +121,20 @@ private void createChannel(JSONObject channel) throws JSONException { mChannel.setSound(android.provider.Settings.System.DEFAULT_NOTIFICATION_URI, audioAttributes); } - //JSONArray pattern = channel.optJSONArray(CHANNEL_VIBRATION); - //mChannel.setVibrationPattern(); + // If vibration settings is an array set vibration pattern, else set enable + // vibration. + JSONArray pattern = channel.optJSONArray(CHANNEL_VIBRATION); + if (pattern != null) { + int patternLength = pattern.length(); + long[] patternArray = new long[patternLength]; + for (int i = 0; i < patternLength; i++) { + patternArray[i] = pattern.optLong(i); + } + mChannel.setVibrationPattern(patternArray); + } else { + boolean vibrate = channel.optBoolean(CHANNEL_VIBRATION, true); + mChannel.enableVibration(vibrate); + } notificationManager.createNotificationChannel(mChannel); } @@ -129,17 +142,25 @@ private void createChannel(JSONObject channel) throws JSONException { @TargetApi(26) private void createDefaultNotificationChannelIfNeeded(JSONObject options) { + String id; // only call on Android O and above if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { final NotificationManager notificationManager = (NotificationManager) cordova.getActivity() .getSystemService(Context.NOTIFICATION_SERVICE); List channels = notificationManager.getNotificationChannels(); - if (channels.size() == 0) { - NotificationChannel mChannel = new NotificationChannel(DEFAULT_CHANNEL_ID, "PhoneGap PushPlugin", - NotificationManager.IMPORTANCE_DEFAULT); - mChannel.enableVibration(options.optBoolean(VIBRATE, true)); - mChannel.setShowBadge(true); - notificationManager.createNotificationChannel(mChannel); + + for (int i = 0; i < channels.size(); i++) { + id = channels.get(i).getId(); + if (id.equals(DEFAULT_CHANNEL_ID)) { + return; + } + } + try { + options.put(CHANNEL_ID, DEFAULT_CHANNEL_ID); + options.putOpt(CHANNEL_DESCRIPTION, "PhoneGap PushPlugin"); + createChannel(options); + } catch (JSONException e) { + Log.e(LOG_TAG, "execute: Got JSON Exception " + e.getMessage()); } } } @@ -173,10 +194,18 @@ public void run() { Log.v(LOG_TAG, "execute: senderID=" + senderID); - token = FirebaseInstanceId.getInstance().getToken(); + try { + token = FirebaseInstanceId.getInstance().getToken(); + } catch (IllegalStateException e) { + Log.e(LOG_TAG, "Exception raised while getting Firebase token " + e.getMessage()); + } if (token == null) { - token = FirebaseInstanceId.getInstance().getToken(senderID, FCM); + try { + token = FirebaseInstanceId.getInstance().getToken(senderID, FCM); + } catch (IllegalStateException e) { + Log.e(LOG_TAG, "Exception raised while getting Firebase token " + e.getMessage()); + } } if (!"".equals(token)) { @@ -388,6 +417,20 @@ public void run() { } } }); + } else if (CLEAR_NOTIFICATION.equals(action)) { + // clearing a single notification + cordova.getThreadPool().execute(new Runnable() { + public void run() { + try { + Log.v(LOG_TAG, "clearNotification"); + int id = data.getInt(0); + clearNotification(id); + callbackContext.success(); + } catch (JSONException e) { + callbackContext.error(e.getMessage()); + } + } + }); } else { Log.e(LOG_TAG, "Invalid action : " + action); callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.INVALID_ACTION)); @@ -414,8 +457,9 @@ public static void sendError(String message) { } /* - * Sends the pushbundle extras to the client application. - * If the client application isn't currently active and the no-cache flag is not set, it is cached for later processing. + * Sends the pushbundle extras to the client application. If the client + * application isn't currently active and the no-cache flag is not set, it is + * cached for later processing. */ public static void sendExtras(Bundle extras) { if (extras != null) { @@ -489,6 +533,14 @@ private void clearAllNotifications() { notificationManager.cancelAll(); } + private void clearNotification(int id) { + final NotificationManager notificationManager = (NotificationManager) cordova.getActivity() + .getSystemService(Context.NOTIFICATION_SERVICE); + String appName = (String) this.cordova.getActivity().getPackageManager() + .getApplicationLabel(this.cordova.getActivity().getApplicationInfo()); + notificationManager.cancel(appName, id); + } + private void subscribeToTopics(JSONArray topics, String registrationToken) { if (topics != null) { String topic = null; diff --git a/src/ios/AppDelegate+notification.h b/src/ios/AppDelegate+notification.h index 9970762b0..9479b1839 100644 --- a/src/ios/AppDelegate+notification.h +++ b/src/ios/AppDelegate+notification.h @@ -7,13 +7,16 @@ // #import "AppDelegate.h" +@import UserNotifications; -@interface AppDelegate (notification) +extern NSString *const pushPluginApplicationDidBecomeActiveNotification; + +@interface AppDelegate (notification) - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken; - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error; - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:( void (^)(UIBackgroundFetchResult))completionHandler; - (void)pushPluginOnApplicationDidBecomeActive:(UIApplication *)application; -- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:(void(^)())completionHandler; +- (void)checkUserHasRemoteNotificationsEnabledWithCompletionHandler:(nonnull void (^)(BOOL))completionHandler; - (id) getCommandInstance:(NSString*)className; @property (nonatomic, retain) NSDictionary *launchNotification; diff --git a/src/ios/AppDelegate+notification.m b/src/ios/AppDelegate+notification.m index fc18dd79d..b04c47687 100644 --- a/src/ios/AppDelegate+notification.m +++ b/src/ios/AppDelegate+notification.m @@ -12,6 +12,8 @@ static char launchNotificationKey; static char coldstartKey; +NSString *const pushPluginApplicationDidBecomeActiveNotification = @"pushPluginApplicationDidBecomeActiveNotification"; + @implementation AppDelegate (notification) @@ -53,10 +55,9 @@ + (void)load - (AppDelegate *)pushPluginSwizzledInit { - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(createNotificationChecker:) - name:UIApplicationDidFinishLaunchingNotification - object:nil]; + UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]; + center.delegate = self; + [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(pushPluginOnApplicationDidBecomeActive:) name:UIApplicationDidBecomeActiveNotification @@ -67,25 +68,6 @@ - (AppDelegate *)pushPluginSwizzledInit return [self pushPluginSwizzledInit]; } -// This code will be called immediately after application:didFinishLaunchingWithOptions:. We need -// to process notifications in cold-start situations -- (void)createNotificationChecker:(NSNotification *)notification -{ - NSLog(@"createNotificationChecker"); - if (notification) - { - NSDictionary *launchOptions = [notification userInfo]; - if (launchOptions) { - NSLog(@"coldstart"); - self.launchNotification = [launchOptions objectForKey: @"UIApplicationLaunchOptionsRemoteNotificationKey"]; - self.coldstart = [NSNumber numberWithBool:YES]; - } else { - NSLog(@"not coldstart"); - self.coldstart = [NSNumber numberWithBool:NO]; - } - } -} - - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { PushPlugin *pushHandler = [self getCommandInstance:@"PushNotification"]; [pushHandler didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; @@ -96,29 +78,12 @@ - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotif [pushHandler didFailToRegisterForRemoteNotificationsWithError:error]; } -- (void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { - NSLog(@"clicked on the shade"); - PushPlugin *pushHandler = [self getCommandInstance:@"PushNotification"]; - pushHandler.notificationMessage = userInfo; - pushHandler.isInline = NO; - [pushHandler notificationReceived]; -} - - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { NSLog(@"didReceiveNotification with fetchCompletionHandler"); - // app is in the foreground so call notification callback - if (application.applicationState == UIApplicationStateActive) { - NSLog(@"app active"); - PushPlugin *pushHandler = [self getCommandInstance:@"PushNotification"]; - pushHandler.notificationMessage = userInfo; - pushHandler.isInline = YES; - [pushHandler notificationReceived]; + // app is in the background or inactive, so only call notification callback if this is a silent push + if (application.applicationState != UIApplicationStateActive) { - completionHandler(UIBackgroundFetchResultNewData); - } - // app is in background or in stand by - else { NSLog(@"app in-active"); // do some convoluted logic to find out if this should be a silent push. @@ -161,27 +126,42 @@ - (void)application:(UIApplication *)application didReceiveRemoteNotification:(N NSLog(@"just put it in the shade"); //save it for later self.launchNotification = userInfo; - completionHandler(UIBackgroundFetchResultNewData); } - } -} -- (BOOL)userHasRemoteNotificationsEnabled { - UIApplication *application = [UIApplication sharedApplication]; - if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)]) { - return application.currentUserNotificationSettings.types != UIUserNotificationTypeNone; } else { -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - return application.enabledRemoteNotificationTypes != UIRemoteNotificationTypeNone; -#pragma GCC diagnostic pop + completionHandler(UIBackgroundFetchResultNoData); } } +- (void)checkUserHasRemoteNotificationsEnabledWithCompletionHandler:(nonnull void (^)(BOOL))completionHandler +{ + [[UNUserNotificationCenter currentNotificationCenter] getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) { + + switch (settings.authorizationStatus) + { + case UNAuthorizationStatusDenied: + case UNAuthorizationStatusNotDetermined: + completionHandler(NO); + break; + case UNAuthorizationStatusAuthorized: + completionHandler(YES); + break; + } + }]; +} + - (void)pushPluginOnApplicationDidBecomeActive:(NSNotification *)notification { NSLog(@"active"); + + NSString *firstLaunchKey = @"firstLaunchKey"; + NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"phonegap-plugin-push"]; + if (![defaults boolForKey:firstLaunchKey]) { + NSLog(@"application first launch: remove badge icon number"); + [defaults setBool:YES forKey:firstLaunchKey]; + [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]; + } UIApplication *application = notification.object; @@ -202,48 +182,79 @@ - (void)pushPluginOnApplicationDidBecomeActive:(NSNotification *)notification { self.coldstart = [NSNumber numberWithBool:NO]; [pushHandler performSelectorOnMainThread:@selector(notificationReceived) withObject:pushHandler waitUntilDone:NO]; } + + [[NSNotificationCenter defaultCenter] postNotificationName:pushPluginApplicationDidBecomeActiveNotification object:nil]; } +- (void)userNotificationCenter:(UNUserNotificationCenter *)center + willPresentNotification:(UNNotification *)notification + withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler +{ + NSLog( @"NotificationCenter Handle push from foreground" ); + // custom code to handle push while app is in the foreground + PushPlugin *pushHandler = [self getCommandInstance:@"PushNotification"]; + pushHandler.notificationMessage = notification.request.content.userInfo; + pushHandler.isInline = YES; + [pushHandler notificationReceived]; -- (void)application:(UIApplication *) application handleActionWithIdentifier: (NSString *) identifier -forRemoteNotification: (NSDictionary *) notification completionHandler: (void (^)()) completionHandler { + completionHandler(UNNotificationPresentationOptionNone); +} - NSLog(@"Push Plugin handleActionWithIdentifier %@", identifier); - NSMutableDictionary *userInfo = [notification mutableCopy]; - [userInfo setObject:identifier forKey:@"actionCallback"]; +- (void)userNotificationCenter:(UNUserNotificationCenter *)center +didReceiveNotificationResponse:(UNNotificationResponse *)response + withCompletionHandler:(void(^)(void))completionHandler +{ + NSLog(@"Push Plugin didReceiveNotificationResponse: actionIdentifier %@, notification: %@", response.actionIdentifier, + response.notification.request.content.userInfo); + NSMutableDictionary *userInfo = [response.notification.request.content.userInfo mutableCopy]; + [userInfo setObject:response.actionIdentifier forKey:@"actionCallback"]; NSLog(@"Push Plugin userInfo %@", userInfo); - if (application.applicationState == UIApplicationStateActive) { - PushPlugin *pushHandler = [self getCommandInstance:@"PushNotification"]; - pushHandler.notificationMessage = userInfo; - pushHandler.isInline = NO; - [pushHandler notificationReceived]; - } else { - void (^safeHandler)() = ^(void){ - dispatch_async(dispatch_get_main_queue(), ^{ - completionHandler(); - }); - }; + switch ([UIApplication sharedApplication].applicationState) { + case UIApplicationStateActive: + { + PushPlugin *pushHandler = [self getCommandInstance:@"PushNotification"]; + pushHandler.notificationMessage = userInfo; + pushHandler.isInline = NO; + [pushHandler notificationReceived]; + completionHandler(); + break; + } + case UIApplicationStateInactive: + { + NSLog(@"coldstart"); + self.launchNotification = response.notification.request.content.userInfo; + self.coldstart = [NSNumber numberWithBool:YES]; + break; + } + case UIApplicationStateBackground: + { + void (^safeHandler)(void) = ^(void){ + dispatch_async(dispatch_get_main_queue(), ^{ + completionHandler(); + }); + }; - PushPlugin *pushHandler = [self getCommandInstance:@"PushNotification"]; + PushPlugin *pushHandler = [self getCommandInstance:@"PushNotification"]; - if (pushHandler.handlerObj == nil) { - pushHandler.handlerObj = [NSMutableDictionary dictionaryWithCapacity:2]; - } + if (pushHandler.handlerObj == nil) { + pushHandler.handlerObj = [NSMutableDictionary dictionaryWithCapacity:2]; + } - id notId = [userInfo objectForKey:@"notId"]; - if (notId != nil) { - NSLog(@"Push Plugin notId %@", notId); - [pushHandler.handlerObj setObject:safeHandler forKey:notId]; - } else { - NSLog(@"Push Plugin notId handler"); - [pushHandler.handlerObj setObject:safeHandler forKey:@"handler"]; - } + id notId = [userInfo objectForKey:@"notId"]; + if (notId != nil) { + NSLog(@"Push Plugin notId %@", notId); + [pushHandler.handlerObj setObject:safeHandler forKey:notId]; + } else { + NSLog(@"Push Plugin notId handler"); + [pushHandler.handlerObj setObject:safeHandler forKey:@"handler"]; + } - pushHandler.notificationMessage = userInfo; - pushHandler.isInline = NO; + pushHandler.notificationMessage = userInfo; + pushHandler.isInline = NO; - [pushHandler performSelectorOnMainThread:@selector(notificationReceived) withObject:pushHandler waitUntilDone:NO]; + [pushHandler performSelectorOnMainThread:@selector(notificationReceived) withObject:pushHandler waitUntilDone:NO]; + } } } diff --git a/src/ios/PushPlugin.h b/src/ios/PushPlugin.h index 4cc1dcb0e..4b6ec930a 100644 --- a/src/ios/PushPlugin.h +++ b/src/ios/PushPlugin.h @@ -23,9 +23,11 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#import +@import Foundation; +@import UserNotifications; #import #import +#import @protocol GGLInstanceIDDelegate; @protocol GCMReceiverDelegate; @@ -57,6 +59,7 @@ - (void)unregister:(CDVInvokedUrlCommand*)command; - (void)subscribe:(CDVInvokedUrlCommand*)command; - (void)unsubscribe:(CDVInvokedUrlCommand*)command; +- (void)clearNotification:(CDVInvokedUrlCommand*)command; - (void)didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken; - (void)didFailToRegisterForRemoteNotificationsWithError:(NSError *)error; @@ -68,6 +71,10 @@ - (void)didSendDataMessageWithID:(NSString *)messageID; - (void)didDeleteMessagesOnServer; +// VoIP Features +- (void)pushRegistry:(PKPushRegistry *)registry didUpdatePushCredentials:(PKPushCredentials *)credentials forType:(NSString *)type; +- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(NSString *)type; + // FCM Features @property(nonatomic, assign) BOOL usesFCM; @property(nonatomic, strong) NSNumber *fcmSandbox; diff --git a/src/ios/PushPlugin.m b/src/ios/PushPlugin.m index eb7b69ef0..0290c8ecc 100644 --- a/src/ios/PushPlugin.m +++ b/src/ios/PushPlugin.m @@ -27,6 +27,7 @@ #define GMP_NO_MODULES true #import "PushPlugin.h" +#import "AppDelegate+notification.h" @import FirebaseInstanceID; @import FirebaseMessaging; @import FirebaseAnalytics; @@ -158,200 +159,200 @@ - (void)unsubscribe:(CDVInvokedUrlCommand*)command; - (void)init:(CDVInvokedUrlCommand*)command; { - [[NSNotificationCenter defaultCenter] - addObserver:self selector:@selector(onTokenRefresh) - name:kFIRInstanceIDTokenRefreshNotification object:nil]; + NSMutableDictionary* options = [command.arguments objectAtIndex:0]; + NSMutableDictionary* iosOptions = [options objectForKey:@"ios"]; + id voipArg = [iosOptions objectForKey:@"voip"]; + if (([voipArg isKindOfClass:[NSString class]] && [voipArg isEqualToString:@"true"]) || [voipArg boolValue]) { + [self.commandDelegate runInBackground:^ { + NSLog(@"Push Plugin VoIP set to true"); + + self.callbackId = command.callbackId; + + PKPushRegistry *pushRegistry = [[PKPushRegistry alloc] initWithQueue:dispatch_get_main_queue()]; + pushRegistry.delegate = self; + pushRegistry.desiredPushTypes = [NSSet setWithObject:PKPushTypeVoIP]; + }]; + } else { + NSLog(@"Push Plugin VoIP missing or false"); + [[NSNotificationCenter defaultCenter] + addObserver:self selector:@selector(onTokenRefresh) + name:kFIRInstanceIDTokenRefreshNotification object:nil]; - [[NSNotificationCenter defaultCenter] - addObserver:self selector:@selector(sendDataMessageFailure:) - name:FIRMessagingSendErrorNotification object:nil]; + [[NSNotificationCenter defaultCenter] + addObserver:self selector:@selector(sendDataMessageFailure:) + name:FIRMessagingSendErrorNotification object:nil]; - [[NSNotificationCenter defaultCenter] - addObserver:self selector:@selector(sendDataMessageSuccess:) - name:FIRMessagingSendSuccessNotification object:nil]; + [[NSNotificationCenter defaultCenter] + addObserver:self selector:@selector(sendDataMessageSuccess:) + name:FIRMessagingSendSuccessNotification object:nil]; - [[NSNotificationCenter defaultCenter] - addObserver:self selector:@selector(didDeleteMessagesOnServer) - name:FIRMessagingMessagesDeletedNotification object:nil]; + [[NSNotificationCenter defaultCenter] + addObserver:self selector:@selector(didDeleteMessagesOnServer) + name:FIRMessagingMessagesDeletedNotification object:nil]; - [self.commandDelegate runInBackground:^ { + [self.commandDelegate runInBackground:^ { + NSLog(@"Push Plugin register called"); + self.callbackId = command.callbackId; - NSLog(@"Push Plugin register called"); - self.callbackId = command.callbackId; + NSArray* topics = [iosOptions objectForKey:@"topics"]; + [self setFcmTopics:topics]; - NSMutableDictionary* options = [command.arguments objectAtIndex:0]; - NSMutableDictionary* iosOptions = [options objectForKey:@"ios"]; + UNAuthorizationOptions authorizationOptions = UNAuthorizationOptionNone; - NSArray* topics = [iosOptions objectForKey:@"topics"]; - [self setFcmTopics:topics]; + id badgeArg = [iosOptions objectForKey:@"badge"]; + id soundArg = [iosOptions objectForKey:@"sound"]; + id alertArg = [iosOptions objectForKey:@"alert"]; + id clearBadgeArg = [iosOptions objectForKey:@"clearBadge"]; - UIUserNotificationType UserNotificationTypes = UIUserNotificationTypeNone; + if (([badgeArg isKindOfClass:[NSString class]] && [badgeArg isEqualToString:@"true"]) || [badgeArg boolValue]) + { + authorizationOptions |= UNAuthorizationOptionBadge; + } - id badgeArg = [iosOptions objectForKey:@"badge"]; - id soundArg = [iosOptions objectForKey:@"sound"]; - id alertArg = [iosOptions objectForKey:@"alert"]; - id clearBadgeArg = [iosOptions objectForKey:@"clearBadge"]; + if (([soundArg isKindOfClass:[NSString class]] && [soundArg isEqualToString:@"true"]) || [soundArg boolValue]) + { + authorizationOptions |= UNAuthorizationOptionSound; + } - if (([badgeArg isKindOfClass:[NSString class]] && [badgeArg isEqualToString:@"true"]) || [badgeArg boolValue]) - { - UserNotificationTypes |= UIUserNotificationTypeBadge; - } + if (([alertArg isKindOfClass:[NSString class]] && [alertArg isEqualToString:@"true"]) || [alertArg boolValue]) + { + authorizationOptions |= UNAuthorizationOptionAlert; + } - if (([soundArg isKindOfClass:[NSString class]] && [soundArg isEqualToString:@"true"]) || [soundArg boolValue]) - { - UserNotificationTypes |= UIUserNotificationTypeSound; - } + if (clearBadgeArg == nil || ([clearBadgeArg isKindOfClass:[NSString class]] && [clearBadgeArg isEqualToString:@"false"]) || ![clearBadgeArg boolValue]) { + NSLog(@"PushPlugin.register: setting badge to false"); + clearBadge = NO; + } else { + NSLog(@"PushPlugin.register: setting badge to true"); + clearBadge = YES; + [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]; + } + NSLog(@"PushPlugin.register: clear badge is set to %d", clearBadge); + + isInline = NO; + + NSLog(@"PushPlugin.register: better button setup"); + // setup action buttons + NSMutableSet *categories = [[NSMutableSet alloc] init]; + id categoryOptions = [iosOptions objectForKey:@"categories"]; + if (categoryOptions != nil && [categoryOptions isKindOfClass:[NSDictionary class]]) { + for (id key in categoryOptions) { + NSLog(@"categories: key %@", key); + id category = [categoryOptions objectForKey:key]; + + id yesButton = [category objectForKey:@"yes"]; + UNNotificationAction *yesAction; + if (yesButton != nil && [yesButton isKindOfClass:[NSDictionary class]]) { + yesAction = [self createAction: yesButton]; + } + id noButton = [category objectForKey:@"no"]; + UNNotificationAction *noAction; + if (noButton != nil && [noButton isKindOfClass:[NSDictionary class]]) { + noAction = [self createAction: noButton]; + } + id maybeButton = [category objectForKey:@"maybe"]; + UNNotificationAction *maybeAction; + if (maybeButton != nil && [maybeButton isKindOfClass:[NSDictionary class]]) { + maybeAction = [self createAction: maybeButton]; + } - if (([alertArg isKindOfClass:[NSString class]] && [alertArg isEqualToString:@"true"]) || [alertArg boolValue]) - { - UserNotificationTypes |= UIUserNotificationTypeAlert; - } + // Identifier to include in your push payload and local notification + NSString *identifier = key; - UserNotificationTypes |= UIUserNotificationActivationModeBackground; + NSMutableArray *actions = [[NSMutableArray alloc] init]; + if (yesButton != nil) { + [actions addObject:yesAction]; + } + if (noButton != nil) { + [actions addObject:noAction]; + } + if (maybeButton != nil) { + [actions addObject:maybeAction]; + } - if (clearBadgeArg == nil || ([clearBadgeArg isKindOfClass:[NSString class]] && [clearBadgeArg isEqualToString:@"false"]) || ![clearBadgeArg boolValue]) { - NSLog(@"PushPlugin.register: setting badge to false"); - clearBadge = NO; - } else { - NSLog(@"PushPlugin.register: setting badge to true"); - clearBadge = YES; - [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]; - } - NSLog(@"PushPlugin.register: clear badge is set to %d", clearBadge); - - isInline = NO; - - NSLog(@"PushPlugin.register: better button setup"); - // setup action buttons - NSMutableSet *categories = [[NSMutableSet alloc] init]; - id categoryOptions = [iosOptions objectForKey:@"categories"]; - if (categoryOptions != nil && [categoryOptions isKindOfClass:[NSDictionary class]]) { - for (id key in categoryOptions) { - NSLog(@"categories: key %@", key); - id category = [categoryOptions objectForKey:key]; - - id yesButton = [category objectForKey:@"yes"]; - UIMutableUserNotificationAction *yesAction; - if (yesButton != nil && [yesButton isKindOfClass:[NSDictionary class]]) { - yesAction = [self createAction: yesButton]; - } - id noButton = [category objectForKey:@"no"]; - UIMutableUserNotificationAction *noAction; - if (noButton != nil && [noButton isKindOfClass:[NSDictionary class]]) { - noAction = [self createAction: noButton]; - } - id maybeButton = [category objectForKey:@"maybe"]; - UIMutableUserNotificationAction *maybeAction; - if (maybeButton != nil && [maybeButton isKindOfClass:[NSDictionary class]]) { - maybeAction = [self createAction: maybeButton]; + UNNotificationCategory *notificationCategory = [UNNotificationCategory categoryWithIdentifier:identifier + actions:actions + intentIdentifiers:@[] + options:UNNotificationCategoryOptionNone]; + + NSLog(@"Adding category %@", key); + [categories addObject:notificationCategory]; } - // First create the category - UIMutableUserNotificationCategory *notificationCategory = [[UIMutableUserNotificationCategory alloc] init]; + } - // Identifier to include in your push payload and local notification - notificationCategory.identifier = key; + UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]; + [center setNotificationCategories:categories]; + [self handleNotificationSettingsWithAuthorizationOptions:[NSNumber numberWithInteger:authorizationOptions]]; - NSMutableArray *categoryArray = [[NSMutableArray alloc] init]; - NSMutableArray *minimalCategoryArray = [[NSMutableArray alloc] init]; - if (yesButton != nil) { - [categoryArray addObject:yesAction]; - [minimalCategoryArray addObject:yesAction]; - } - if (noButton != nil) { - [categoryArray addObject:noAction]; - [minimalCategoryArray addObject:noAction]; - } - if (maybeButton != nil) { - [categoryArray addObject:maybeAction]; - } + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(handleNotificationSettings:) + name:pushPluginApplicationDidBecomeActiveNotification + object:nil]; - // Add the actions to the category and set the action context - [notificationCategory setActions:categoryArray forContext:UIUserNotificationActionContextDefault]; - // Set the actions to present in a minimal context - [notificationCategory setActions:minimalCategoryArray forContext:UIUserNotificationActionContextMinimal]; - NSLog(@"Adding category %@", key); - [categories addObject:notificationCategory]; - } + // Read GoogleService-Info.plist + NSString *path = [[NSBundle mainBundle] pathForResource:@"GoogleService-Info" ofType:@"plist"]; - } + // Load the file content and read the data into arrays + NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path]; + fcmSenderId = [dict objectForKey:@"GCM_SENDER_ID"]; + BOOL isGcmEnabled = [[dict valueForKey:@"IS_GCM_ENABLED"] boolValue]; - if ([[UIApplication sharedApplication]respondsToSelector:@selector(registerUserNotificationSettings:)]) { - UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UserNotificationTypes categories:categories]; - dispatch_async(dispatch_get_main_queue(), ^{ - [[UIApplication sharedApplication] registerUserNotificationSettings:settings]; - [[UIApplication sharedApplication] registerForRemoteNotifications]; - }); - } + NSLog(@"FCM Sender ID %@", fcmSenderId); - // Read GoogleService-Info.plist - NSString *path = [[NSBundle mainBundle] pathForResource:@"GoogleService-Info" ofType:@"plist"]; - - // Load the file content and read the data into arrays - NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path]; - fcmSenderId = [dict objectForKey:@"GCM_SENDER_ID"]; - BOOL isGcmEnabled = [[dict valueForKey:@"IS_GCM_ENABLED"] boolValue]; - - NSLog(@"FCM Sender ID %@", fcmSenderId); - - // GCM options - [self setFcmSenderId: fcmSenderId]; - if(isGcmEnabled && [[self fcmSenderId] length] > 0) { - NSLog(@"Using FCM Notification"); - [self setUsesFCM: YES]; - dispatch_async(dispatch_get_main_queue(), ^{ - if([FIRApp defaultApp] == nil) - [FIRApp configure]; - [self initRegistration]; - }); - } else { - NSLog(@"Using APNS Notification"); - [self setUsesFCM:NO]; - } - id fcmSandboxArg = [iosOptions objectForKey:@"fcmSandbox"]; - - [self setFcmSandbox:@NO]; - if ([self usesFCM] && - (([fcmSandboxArg isKindOfClass:[NSString class]] && [fcmSandboxArg isEqualToString:@"true"]) || - [fcmSandboxArg boolValue])) - { - NSLog(@"Using FCM Sandbox"); - [self setFcmSandbox:@YES]; - } + // GCM options + [self setFcmSenderId: fcmSenderId]; + if(isGcmEnabled && [[self fcmSenderId] length] > 0) { + NSLog(@"Using FCM Notification"); + [self setUsesFCM: YES]; + dispatch_async(dispatch_get_main_queue(), ^{ + if([FIRApp defaultApp] == nil) + [FIRApp configure]; + [self initRegistration]; + }); + } else { + NSLog(@"Using APNS Notification"); + [self setUsesFCM:NO]; + } + id fcmSandboxArg = [iosOptions objectForKey:@"fcmSandbox"]; + + [self setFcmSandbox:@NO]; + if ([self usesFCM] && + (([fcmSandboxArg isKindOfClass:[NSString class]] && [fcmSandboxArg isEqualToString:@"true"]) || + [fcmSandboxArg boolValue])) + { + NSLog(@"Using FCM Sandbox"); + [self setFcmSandbox:@YES]; + } - if (notificationMessage) { // if there is a pending startup notification - dispatch_async(dispatch_get_main_queue(), ^{ - // delay to allow JS event handlers to be setup - [self performSelector:@selector(notificationReceived) withObject:nil afterDelay: 0.5]; - }); - } - }]; -} + if (notificationMessage) { // if there is a pending startup notification + dispatch_async(dispatch_get_main_queue(), ^{ + // delay to allow JS event handlers to be setup + [self performSelector:@selector(notificationReceived) withObject:nil afterDelay: 0.5]; + }); + } -- (UIMutableUserNotificationAction *)createAction:(NSDictionary *)dictionary { + }]; + } +} - UIMutableUserNotificationAction *myAction = [[UIMutableUserNotificationAction alloc] init]; +- (UNNotificationAction *)createAction:(NSDictionary *)dictionary { + NSString *identifier = [dictionary objectForKey:@"callback"]; + NSString *title = [dictionary objectForKey:@"title"]; + UNNotificationActionOptions options = UNNotificationActionOptionNone; - myAction = [[UIMutableUserNotificationAction alloc] init]; - myAction.identifier = [dictionary objectForKey:@"callback"]; - myAction.title = [dictionary objectForKey:@"title"]; - id mode =[dictionary objectForKey:@"foreground"]; - if (mode == nil || ([mode isKindOfClass:[NSString class]] && [mode isEqualToString:@"false"]) || ![mode boolValue]) { - myAction.activationMode = UIUserNotificationActivationModeBackground; - } else { - myAction.activationMode = UIUserNotificationActivationModeForeground; + id mode = [dictionary objectForKey:@"foreground"]; + if (mode != nil && (([mode isKindOfClass:[NSString class]] && [mode isEqualToString:@"true"]) || [mode boolValue])) { + options |= UNNotificationActionOptionForeground; } id destructive = [dictionary objectForKey:@"destructive"]; - if (destructive == nil || ([destructive isKindOfClass:[NSString class]] && [destructive isEqualToString:@"false"]) || ![destructive boolValue]) { - myAction.destructive = NO; - } else { - myAction.destructive = YES; + if (destructive != nil && (([destructive isKindOfClass:[NSString class]] && [destructive isEqualToString:@"true"]) || [destructive boolValue])) { + options |= UNNotificationActionOptionDestructive; } - myAction.authenticationRequired = NO; - return myAction; + return [UNNotificationAction actionWithIdentifier:identifier title:title options:options]; } - (void)didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { @@ -361,53 +362,23 @@ - (void)didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { } NSLog(@"Push Plugin register success: %@", deviceToken); - NSMutableDictionary *results = [NSMutableDictionary dictionary]; NSString *token = [[[[deviceToken description] stringByReplacingOccurrencesOfString:@"<"withString:@""] stringByReplacingOccurrencesOfString:@">" withString:@""] stringByReplacingOccurrencesOfString: @" " withString: @""]; - [results setValue:token forKey:@"deviceToken"]; - #if !TARGET_IPHONE_SIMULATOR - // Get Bundle Info for Remote Registration (handy if you have more than one app) - [results setValue:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"] forKey:@"appName"]; - [results setValue:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"] forKey:@"appVersion"]; // Check what Notifications the user has turned on. We registered for all three, but they may have manually disabled some or all of them. - NSUInteger rntypes = [[[UIApplication sharedApplication] currentUserNotificationSettings] types]; - - // Set the defaults to disabled unless we find otherwise... - NSString *pushBadge = @"disabled"; - NSString *pushAlert = @"disabled"; - NSString *pushSound = @"disabled"; - - // Check what Registered Types are turned on. This is a bit tricky since if two are enabled, and one is off, it will return a number 2... not telling you which - // one is actually disabled. So we are literally checking to see if rnTypes matches what is turned on, instead of by number. The "tricky" part is that the - // single notification types will only match if they are the ONLY one enabled. Likewise, when we are checking for a pair of notifications, it will only be - // true if those two notifications are on. This is why the code is written this way - if(rntypes & UIUserNotificationTypeBadge){ - pushBadge = @"enabled"; - } - if(rntypes & UIUserNotificationTypeAlert) { - pushAlert = @"enabled"; - } - if(rntypes & UIUserNotificationTypeSound) { - pushSound = @"enabled"; - } + UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]; + __weak PushPlugin *weakSelf = self; + [center getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) { - [results setValue:pushBadge forKey:@"pushBadge"]; - [results setValue:pushAlert forKey:@"pushAlert"]; - [results setValue:pushSound forKey:@"pushSound"]; + if(![weakSelf usesFCM]) { + [weakSelf registerWithToken: token]; + } + }]; - // Get the users Device Model, Display Name, Token & Version Number - UIDevice *dev = [UIDevice currentDevice]; - [results setValue:dev.name forKey:@"deviceName"]; - [results setValue:dev.model forKey:@"deviceModel"]; - [results setValue:dev.systemVersion forKey:@"deviceSystemVersion"]; - if(![self usesFCM]) { - [self registerWithToken: token]; - } #endif } @@ -495,6 +466,28 @@ - (void)notificationReceived { } } +- (void)clearNotification:(CDVInvokedUrlCommand *)command +{ + NSNumber *notId = [command.arguments objectAtIndex:0]; + [[UNUserNotificationCenter currentNotificationCenter] getDeliveredNotificationsWithCompletionHandler:^(NSArray * _Nonnull notifications) { + /* + * If the server generates a unique "notId" for every push notification, there should only be one match in these arrays, but if not, it will delete + * all notifications with the same value for "notId" + */ + NSPredicate *matchingNotificationPredicate = [NSPredicate predicateWithFormat:@"request.content.userInfo.notId == %@", notId]; + NSArray *matchingNotifications = [notifications filteredArrayUsingPredicate:matchingNotificationPredicate]; + NSMutableArray *matchingNotificationIdentifiers = [NSMutableArray array]; + for (UNNotification *notification in matchingNotifications) { + [matchingNotificationIdentifiers addObject:notification.request.identifier]; + } + [[UNUserNotificationCenter currentNotificationCenter] removeDeliveredNotificationsWithIdentifiers:matchingNotificationIdentifiers]; + + NSString *message = [NSString stringWithFormat:@"Cleared notification with ID: %@", notId]; + CDVPluginResult *commandResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:message]; + [self.commandDelegate sendPluginResult:commandResult callbackId:command.callbackId]; + }]; +} + - (void)setApplicationIconBadgeNumber:(CDVInvokedUrlCommand *)command { NSMutableDictionary* options = [command.arguments objectAtIndex:0]; @@ -526,16 +519,15 @@ - (void)clearAllNotifications:(CDVInvokedUrlCommand *)command - (void)hasPermission:(CDVInvokedUrlCommand *)command { - BOOL enabled = NO; id appDelegate = [UIApplication sharedApplication].delegate; - if ([appDelegate respondsToSelector:@selector(userHasRemoteNotificationsEnabled)]) { - enabled = [appDelegate performSelector:@selector(userHasRemoteNotificationsEnabled)]; + if ([appDelegate respondsToSelector:@selector(checkUserHasRemoteNotificationsEnabledWithCompletionHandler:)]) { + [appDelegate performSelector:@selector(checkUserHasRemoteNotificationsEnabledWithCompletionHandler:) withObject:^(BOOL isEnabled) { + NSMutableDictionary* message = [NSMutableDictionary dictionaryWithCapacity:1]; + [message setObject:[NSNumber numberWithBool:isEnabled] forKey:@"isEnabled"]; + CDVPluginResult *commandResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:message]; + [self.commandDelegate sendPluginResult:commandResult callbackId:command.callbackId]; + }]; } - - NSMutableDictionary* message = [NSMutableDictionary dictionaryWithCapacity:1]; - [message setObject:[NSNumber numberWithBool:enabled] forKey:@"isEnabled"]; - CDVPluginResult *commandResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:message]; - [self.commandDelegate sendPluginResult:commandResult callbackId:command.callbackId]; } -(void)successWithMessage:(NSString *)myCallbackId withMsg:(NSString *)message @@ -552,9 +544,9 @@ -(void)registerWithToken:(NSString*)token; { NSMutableDictionary* message = [NSMutableDictionary dictionaryWithCapacity:2]; [message setObject:token forKey:@"registrationId"]; if ([self usesFCM]) { - [message setObject:@"FCM" forKey:@"registrationType"]; + [message setObject:@"FCM" forKey:@"registrationType"]; } else { - [message setObject:@"APNS" forKey:@"registrationType"]; + [message setObject:@"APNS" forKey:@"registrationType"]; } CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:message]; [pluginResult setKeepCallbackAsBool:YES]; @@ -607,4 +599,73 @@ -(void)stopBackgroundTask:(NSTimer*)timer } } + +- (void)pushRegistry:(PKPushRegistry *)registry didUpdatePushCredentials:(PKPushCredentials *)credentials forType:(NSString *)type +{ + if([credentials.token length] == 0) { + NSLog(@"VoIPPush Plugin register error - No device token:"); + return; + } + + NSLog(@"VoIPPush Plugin register success"); + const unsigned *tokenBytes = [credentials.token bytes]; + NSString *sToken = [NSString stringWithFormat:@"%08x%08x%08x%08x%08x%08x%08x%08x", + ntohl(tokenBytes[0]), ntohl(tokenBytes[1]), ntohl(tokenBytes[2]), + ntohl(tokenBytes[3]), ntohl(tokenBytes[4]), ntohl(tokenBytes[5]), + ntohl(tokenBytes[6]), ntohl(tokenBytes[7])]; + + [self registerWithToken:sToken]; +} + +- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(NSString *)type +{ + NSLog(@"VoIP Notification received"); + self.notificationMessage = payload.dictionaryPayload; + [self notificationReceived]; +} + +- (void)handleNotificationSettings:(NSNotification *)notification +{ + [self handleNotificationSettingsWithAuthorizationOptions:nil]; +} + +- (void)handleNotificationSettingsWithAuthorizationOptions:(NSNumber *)authorizationOptionsObject +{ + UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]; + UNAuthorizationOptions authorizationOptions = [authorizationOptionsObject unsignedIntegerValue]; + + __weak UNUserNotificationCenter *weakCenter = center; + [center getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) { + + switch (settings.authorizationStatus) { + case UNAuthorizationStatusNotDetermined: + { + [weakCenter requestAuthorizationWithOptions:authorizationOptions completionHandler:^(BOOL granted, NSError * _Nullable error) { + if (granted) { + [self performSelectorOnMainThread:@selector(registerForRemoteNotifications) + withObject:nil + waitUntilDone:NO]; + } + }]; + break; + } + case UNAuthorizationStatusAuthorized: + { + [self performSelectorOnMainThread:@selector(registerForRemoteNotifications) + withObject:nil + waitUntilDone:NO]; + break; + } + case UNAuthorizationStatusDenied: + default: + break; + } + }]; +} + +- (void)registerForRemoteNotifications +{ + [[UIApplication sharedApplication] registerForRemoteNotifications]; +} + @end diff --git a/src/js/push.js b/src/js/push.js index b05df8493..f952cacbf 100644 --- a/src/js/push.js +++ b/src/js/push.js @@ -203,6 +203,27 @@ class PushNotification { exec(successCallback, errorCallback, 'PushNotification', 'clearAllNotifications', []); } + + /** + * Clears notifications that have the ID specified. + * @param {Function} [successCallback] Callback function to be called on success. + * @param {Function} [errorCallback] Callback function to be called when an error is encountered. + * @param {Number} id ID of the notification to be removed. + */ + clearNotification(successCallback = () => {}, errorCallback = () => {}, id) { + const idNumber = parseInt(id, 10); + if (isNaN(idNumber) || idNumber > Number.MAX_SAFE_INTEGER || idNumber < 0) { + console.log( + 'PushNotification.clearNotification failure: id parameter must' + + 'be a valid integer.' + ); + return; + } + + exec(successCallback, errorCallback, 'PushNotification', 'clearNotification', + [idNumber]); + } + /** * Listen for an event. * diff --git a/www/browser/push.js b/www/browser/push.js index 1badd77bc..664ddafd6 100644 --- a/www/browser/push.js +++ b/www/browser/push.js @@ -367,7 +367,10 @@ module.exports = { }, hasPermission: function(successCallback, errorCallback) { - successCallback(true); + const granted = Notification && Notification.permission === 'granted'; + successCallback({ + isEnabled: granted + }); }, unregister: function(successCallback, errorCallback, options) { diff --git a/www/push.js b/www/push.js index 3bd51b5c4..7aea0c648 100644 --- a/www/push.js +++ b/www/push.js @@ -224,6 +224,30 @@ var PushNotification = function () { exec(successCallback, errorCallback, 'PushNotification', 'clearAllNotifications', []); } + + /** + * Clears notifications that have the ID specified. + * @param {Function} [successCallback] Callback function to be called on success. + * @param {Function} [errorCallback] Callback function to be called when an error is encountered. + * @param {Number} id ID of the notification to be removed. + */ + + }, { + key: 'clearNotification', + value: function clearNotification() { + var successCallback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {}; + var errorCallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; + var id = arguments[2]; + + var idNumber = parseInt(id, 10); + if (isNaN(idNumber) || idNumber > Number.MAX_SAFE_INTEGER || idNumber < 0) { + console.log('PushNotification.clearNotification failure: id parameter must' + 'be a valid integer.'); + return; + } + + exec(successCallback, errorCallback, 'PushNotification', 'clearNotification', [idNumber]); + } + /** * Listen for an event. *