NativeScript plugin for Urban Airship
This is a plugin to use the Urban Airship SDK (Android v14.4.0, iOS v14.4.1) with NativeScript.
For iOS this plugin uses APNS and for Android it uses FCM.
Requirements
- Xcode 12.x
- Android SDK 29
- NativeScript CLI 7.x
- Urban Airship account
Installation
Run the following command from the root of your project:
npm install nativescript-urban-airship
Setup
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 the onCreate()
:
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.json
in your App_Resources/Android
folder. 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-prepare
folder of your app.
-
Specify the right applicationId
in your app's app.gradle
(example).
-
Specify the right id
in your app's package.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();