@skhye05/app-center
Microsoft App Center Nativescript Plugin
npm i --save @skhye05/app-center

@nativescript/app-center

Prerequisites / Requirements

Go to https://appcenter.ms sign in and create your app (it could either be android or ios).

You will need the App Secret key in order to start the plugin. The App Secret can be found on the Getting Started page or Settings page on the App Center portal.

Installation

ns plugin add @skhye05/app-center

Usage

Using the plugin in Android

Add code in your view model or component (Make sure you have replaced {Your App Secret} in the code sample above with your App Secret.):

TypeScript

    import { AppCenter } from 'nativescript-app-center';

let appCenter = new AppCenter();

// To Analytics Callbacks

appCenter.onAnalyticsListener({
onBeforeSending: (report: any) => {
console.log('before');
},
onSendingFailed: (log: any) => {
console.log('failed');
},
onSendingSucceeded: (log: any) => {
console.log('success');
}
});

// To Add Crashes Callbacks

appCenter.onCrashesListener({
shouldProcess: (report: ErrorReport) => {
console.log('should Process');
return true;
},
shouldAwaitUserConfirmation: () => {
console.log('Confirm');
return false;
},
getErrorAttachments: (report: ErrorReport) => {
return null;
},
onBeforeSending: (report: ErrorReport) => {
console.log('before');
},
onSendingFailed: (report: ErrorReport, e: any) => {
console.log('failed');
},
onSendingSucceeded: (report: ErrorReport) => {
console.log('success');
}
});

// Start App Center

appCenter.start({
analytics: true,
crashes: true,
appSecret: '{Your App Secret}'
});


// To Track Event Add

trackEvent(): void {
let property: Array<PropertyOption> = new Array<PropertyOption>();

property.push({ key: "firstname", value: "john" }, { key: "surname", value: "doe" });
appCenter.trackEvent('Clicked', property);
}

// To Test Crashes
testCrash(): void {
appCenter.testCraches();
}

Javascript

    var AppCenter = require("@nativescript/app-center");

var appCenter = new AppCenter();

// To Analytics Callbacks

appCenter.onAnalyticsListener({
onBeforeSending: (report: any) => {
console.log('before');
},
onSendingFailed: (log: any) => {
console.log('failed');
},
onSendingSucceeded: (log: any) => {
console.log('success');
}
});

// To Add Crashes Callbacks

appCenter.onCrashesListener({
shouldProcess: (report: ErrorReport) => {
console.log('should Process');
return true;
},
shouldAwaitUserConfirmation: () => {
console.log('Confirm');
return false;
},
getErrorAttachments: (report: ErrorReport) => {
return null;
},
onBeforeSending: (report: ErrorReport) => {
console.log('before');
},
onSendingFailed: (report: ErrorReport, e: any) => {
console.log('failed');
},
onSendingSucceeded: (report: ErrorReport) => {
console.log('success');
}
});

// Start App Center

appCenter.start({
analytics: true,
crashes: true,
push: false,
distribute: false,
appSecret: '{Your App Secret}'
});


// To Track Event Add

appCenter.trackEvent = function() {
var property = [];

property.push({ key: "firstname", value: "john" }, { key: "surname", value: "doe" });
appCenter.trackEvent('Clicked', property);
}

// To Raised an Error Manually

appCenter.trackError = function() {
const properties: Array<PropertyOption> = new Array<PropertyOption>();
properties.push({ key: "test-email", value: "[email protected]" });
properties.push({ key: "test-error-name", value: "error name" });
const text = `App Center error text...`;

const attachment = ACErrorAttachmentLog.attachmentWithText(text, 'error.txt');

this.appCenter.trackError('Error', properties, [attachment]).then((response) => {
console.log('response-->', response);
}, (error) => {
console.log('error-->', error);
});
}

// To Test Crashes
appCenter.testCrash = function() {
appCenter.testCraches();
}
  • Run the app on the phone or emulator:
    tns run android

API

Properties

InitOption

Property Type Description
analytics boolean Set to true to add App Center Analytics to your app
crashes boolean Set to true to add App Center Crashes to generate a crash log every time your app crashes
appSecret string This refer to your application App Center value

PropertyOption

Property Type Description
key string Property identifier
value string Property actual value

AnalyticsListener (Android Only)

Property Type Description
onBeforeSending Callback Function Called right before sending a log. The callback can be invoked multiple times based on the number of logs.
onSendingFailed Callback Function Called when sending a log failed.
onSendingSucceeded Callback Function Called when a log is sent successfully.

CrashesListener (Android Only)

Property Type Description
shouldProcess Callback Function Called to determine whether it should wait for user confirmation before sending crash reports (return true if the crash report should be processed, otherwise false).
shouldAwaitUserConfirmation Callback Function Called to determine whether it should wait for user confirmation before sending crash reports (Return true if you just built a UI for user consent and are waiting for user input on that custom UI, otherwise false.).
getErrorAttachments Callback Function Called to get additional information to be sent as separate ErrorAttachmentLog logs.
onBeforeSending Callback Function Called right before sending a crash report. The callback can be invoked multiple times based on the number of crash reports.
onSendingFailed Callback Function Called when sending a crash report failed.
onSendingSucceeded Callback Function Called when a crash report is sent successfully.

Methods

Methods Type Argument Description
start() void (InitOption) Configure the SDK with the list of services to start. This may be called only once per application process lifetime.

Analytics Methods

Methods Type Argument Description
trackEvent() void (eventName: string, poperty?: PropertyOption) Track a custom event with name.
trackError() Promise<boolean> (exceptionMessage: string, properties?: PropertyOption[]), attachments?: any[]) Raised an error manually.
isAnalyticsEnabled Promise<boolean> none Check whether Analytics service is enabled or not. (return a boolean)
isAnalyticsEnabledSync boolean none Check whether Analytics service is enabled or not. return a boolean
setAnalyticsEnabled void (value: boolean) Enable or disable Analytics service.
onAnalyticsListener void (callbacks: AnalyticsListener) Sets an analytics callback listener. (Android Only)

Crashes Methods

Methods Type Argument Description
testCrash() void none Generate crash test.
hasCrashedInLastSession() Promise<boolean> none Check whether the app crashed in its last session.(return a boolean). (Android Only)
hasCrashedInLastSessionSync() boolean none Check whether the app crashed in its last session. return a boolean. (Android Only)
isCrashedEnabledSync() Promise<boolean> none Check whether Crashes service is enabled or not. (return a boolean)
isCrashedEnabled() boolean none Check whether Analytics Crashes is enabled or not. return a boolean
setCrashesEnabled() void (value: boolean) Enable or disable Crashes service.
onCrashesListener() void (callbacks: AnalyticsListener) Sets an Crashes callback listener. (Android Only)
crashesNotifyUserConfirmationDontSend() void none Notifies Plugins with a confirmation to not send and handle the crash report. (Android Only)
crashesNotifyUserConfirmationSend() void none Notifies Plugins with a confirmation to send and handle the crash report. (Android Only)
crashesNotifyUserConfirmationAlwaysSend() void none Notifies Plugins with a confirmation to always send and handle the crash report. (Android Only)

Author

Jonathan Mayunga, [email protected]

License

Apache License Version 2.0,