Kinvey NativeScript SDK
Installation
From the command prompt go to your app's root folder and execute:
npm i kinvey-nativescript-sdk
Usage
Initialize SDK
We need to initialize the SDK before your app starts, so open app.js
and add this before application.start();
:
JavaScript
import * as Kinvey from 'kinvey-nativescript-sdk';
Kinvey.init({
appKey: '<yourAppKey>',
appSecret: '<yourAppSecret>'
});
TypeScript
import * as Kinvey from 'kinvey-nativescript-sdk';
Kinvey.init({
appKey: '<yourAppKey>',
appSecret: '<yourAppSecret>'
});
Angular
Import the KinveyModule
in your app.module.ts
like this to initialize the SDK:
import { NgModule } from '@angular/core';
import { KinveyModule } from 'kinvey-nativescript-sdk/angular';
@NgModule({
imports: [
KinveyModule.init({
appKey: '<yourAppKey>',
appSecret: '<yourAppSecret>'
})
]
})
export class AppModule { }
Then you can use dependency injection to inject a Kinvey service in your module like this:
import { Component } from '@angular/core';
import { UserService } from 'kinvey-nativescript-sdk/angular';
@Component()
export class AppComponent {
constructor(private userService: UserService) {}
async login() {
try {
const user = await this.userService.login('<username>', '<password>');
console.log(user);
} catch (error) {
console.log(error);
}
}
}
The following services are available to use with dependency injection:
DataStoreService
EndpointService
FilesService
PingService
UserService
Push
You will need to install nativescript-plugin-firebase
and follow the instructions at https://github.com/EddyVerbruggen/nativescript-plugin-firebase#prerequisites on how to setup your app. Make sure to require the nativescript-plugin-firebase
plugin in your app.ts
file as shown in the example app.
You can then use the Push module to register the device running your app like this:
import * as Push from 'kinvey-nativescript-sdk/push';
function receivedPushNotificaiton(message) {
console.log("Title: " + message.title);
console.log("Body: " + message.body);
console.log("Value of 'foo': " + message.data.foo);
}
Push.register(receivedPushNotification)
.then((deviceToken) => {
console.log(`The device with device token ${deviceToken} is registered for push.`);
})
.catch((error) => {
console.log(error);
})
To unregister the device running your app do this:
import * as Push from 'kinvey-nativescript-sdk/push';
Push.unregister()
.then((deviceToken) => {
console.log(`The device with device token ${deviceToken} has been unregistered for push.`);
})
.catch((error) => {
console.log(error);
})
Angular
You will need to import the KinveyPushModule
in your app.module.ts
like this:
import { NgModule } from '@angular/core';
import { KinveyModule } from 'kinvey-nativescript-sdk/angular';
import { KinveyPushModule } from 'kinvey-nativescript-sdk/angular/push';
@NgModule({
imports: [
KinveyModule.init({
appKey: '<yourAppKey>',
appSecret: '<yourAppSecret>'
}),
KinveyPushModule
]
})
export class AppModule { }
Then you can use dependency injection to inject the PushService
in your module like this:
import { Component } from '@angular/core';
import { PushService } from 'kinvey-nativescript-sdk/angular/push';
@Component()
export class AppComponent {
constructor(private pushService: PushService) {}
receivedPushNotificaiton(message) {
console.log("Title: " + message.title);
console.log("Body: " + message.body);
console.log("Value of 'foo': " + message.data.foo);
}
async registerForPush() {
try {
const deviceTokne = await this.pushService.register(this.receivedPushNotification);
console.log(`The device with device token ${deviceToken} has been unregistered for push.`);
} catch (error) {
console.log(error);
}
}
}
Build
If you would like to build the SDK yourself, clone the monorepo, then:
You can then install the SDK build by running npm i /<localpath>/packages/nativescript-sdk