OneSignal
The OneSignal plugin is an client implementation for using the OneSignal Service. OneSignal is a simple implementation for delivering push notifications.
Please view the official OneSignal Ionic SDK Installation guide for more information.
#
IconsIf you want to use generated icons with command ionic cordova resources
:
Add a file to your
hooks
directory calledcopy_android_notification_icons.js
Configure the hook in your config.xml
<platform name="android"> <hook type="after_prepare" src="hooks/copy_android_notification_icons.js" /> </platform>
- Put the following code in it:
#!/usr/bin/env node
var fs = require('fs');var path = require('path');
var filestocopy = [{ "resources/android/icon/drawable-hdpi-icon.png": "platforms/android/app/src/main/res/drawable-hdpi/ic_stat_onesignal_default.png"}, { "resources/android/icon/drawable-mdpi-icon.png": "platforms/android/app/src/main/res/drawable-mdpi/ic_stat_onesignal_default.png"}, { "resources/android/icon/drawable-xhdpi-icon.png": "platforms/android/app/src/main/res/drawable-xhdpi/ic_stat_onesignal_default.png"}, { "resources/android/icon/drawable-xxhdpi-icon.png": "platforms/android/app/src/main/res/drawable-xxhdpi/ic_stat_onesignal_default.png"}, { "resources/android/icon/drawable-xxxhdpi-icon.png": "platforms/android/app/src/main/res/drawable-xxxhdpi/ic_stat_onesignal_default.png"} ];
module.exports = function(context) {
// no need to configure below var rootdir = context.opts.projectRoot;
filestocopy.forEach(function(obj) { Object.keys(obj).forEach(function(key) { var val = obj[key]; var srcfile = path.join(rootdir, key); var destfile = path.join(rootdir, val); console.log("copying "+srcfile+" to "+destfile); var destdir = path.dirname(destfile); if (fs.existsSync(srcfile) && fs.existsSync(destdir)) { fs.createReadStream(srcfile).pipe( fs.createWriteStream(destfile)); } }); });
};
- From the root of your project make the file executable:
$ chmod +x hooks/copy_android_notification_icons.js
https://github.com/OneSignal/OneSignal-Cordova-SDK
Stuck on a Cordova issue?
If you're building a serious project, you can't afford to spend hours troubleshooting. Ionic’s experts offer premium advisory services for both community plugins and premier plugins.
Installation#
- Capacitor
- Cordova
- Enterprise
$ npm install onesignal-cordova-plugin $ npm install @ionic-native/onesignal $ ionic cap sync
$ ionic cordova plugin add onesignal-cordova-plugin $ npm install @ionic-native/onesignal
Ionic Enterprise comes with fully supported and maintained plugins from the Ionic Team. Learn More or if you're interested in an enterprise version of this plugin Contact Us
#
Supported Platforms- Amazon Fire OS
- Android
- iOS
- Windows
#
Usage#
ReactLearn more about using Ionic Native components in React
#
Angularimport { OneSignal } from '@ionic-native/onesignal/ngx';
constructor(private oneSignal: OneSignal) { }
...
this.oneSignal.startInit('b2f7f966-d8cc-11e4-bed1-df8f05be55ba', '703322744261');
this.oneSignal.inFocusDisplaying(this.oneSignal.OSInFocusDisplayOption.InAppAlert);
this.oneSignal.handleNotificationReceived().subscribe(() => { // do something when notification is received});
this.oneSignal.handleNotificationOpened().subscribe(() => { // do something when a notification is opened});
this.oneSignal.endInit();