NativeScript plugin for Urban Airship
This is a plugin to use the Urban Airship SDK (Android v9.1.0, iOS v10.0.3) with NativeScript.
For iOS this plugin uses APNS and for Android it uses FCM.
Requirements
- Xcode 10.x
- Android SDK 28
- NativeScript CLI 5.x
- Urban Airship account
Installation
Run the following command from the root of your project:
npm install nativescript-urban-airshipSetup
First create a file with all your Urban Airship setting (example).
Android
-
Create a custom native android.app.Application in your app folder (example) that calls
startUp()with your settings in theonCreate():public onCreate(): void { super.onCreate(); NsUrbanAirship.getInstance().startUp(urbanAirshipSettings, this); }
Use that custom application in the application tag in your
AndroidManifest.xml(example). -
Place your
google-services.jsonin yourApp_Resources/Androidfolder. This json file can be created using the setup of FCM. -
Copy the hooks firebase-adjust-gradle.js and firebase-copy-google-services.js from our demo app to the
after-preparefolder of your app. -
Specify the right
applicationIdin your app'sapp.gradle(example). -
Specify the right
idin your app'spackage.json.
iOS
Create a custom UIApplicationDelegate in your app folder (example) that calls startUp() with your settings in the applicationDidFinishLaunchingWithOptions():
applicationDidFinishLaunchingWithOptions(application: UIApplication, launchOptions: NSDictionary<string, any>): boolean {
NsUrbanAirship.getInstance().startUp(urbanAirshipSettings, null);
return true;
};Import that custom UIApplicationDelegate in your app.ts (example).
Known Issues
When using webpack, calling startUp() on Android in a custom native android.app.Application is not working, in that case it is better to call the native function instead of startUp():
public onCreate(): void {
super.onCreate();
const options = new com.urbanairship.AirshipConfigOptions.Builder()
.setDevelopmentAppKey(urbanAirshipSettings.developmentAppKey)
.setDevelopmentAppSecret(urbanAirshipSettings.developmentAppSecret)
.setProductionAppKey(urbanAirshipSettings.productionAppKey)
.setProductionAppSecret(urbanAirshipSettings.productionAppSecret)
.setInProduction(urbanAirshipSettings.inProduction)
.setFcmSenderId(urbanAirshipSettings.fcmSender)
.build();
com.urbanairship.UAirship.takeOff(this, options);
}Optional functions
Setting Named User Id
To register a named user id call registerUser().
NsUrbanairship.getInstance().registerUser('MY_NEW_USER_ID');Removing Named User Id
To remove a named user id call unRegisterUser().
NsUrbanairship.getInstance().unRegisterUser();Enabling User Notifications
To set user notifications to enabled call notificationOptIn().
NsUrbanairship.getInstance().notificationOptIn();Disabling User Notifications
To set user notifications to disabled call notificationOptOut().
NsUrbanairship.getInstance().notificationOptOut();Getting Enabled User Notifications
To get the status of enabled push notifications call isOptIn(), this will return true or false.
NsUrbanairship.getInstance().isOptIn();Getting Channel ID
To get the channel ID call getChannelID(), this will return a string.
NsUrbanairship.getInstance().getChannelID();Getting Registration Token
To get the registration token (APNS token for iOS and FCM token for Android) call getRegistrationToken(), this will return a string.
NsUrbanairship.getInstance().getRegistrationToken();Resetting Badge Count (iOS only)
To reset the badge count call resetBadgeCount().
NsUrbanairship.getInstance().resetBadgeCount();