Merge branch 'master' into v5

This commit is contained in:
Daniel
2018-04-05 16:31:11 +02:00
4 changed files with 261 additions and 956 deletions
@@ -0,0 +1,78 @@
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
export interface StringMap {
[s: string]: string;
}
/**
* @name App Center Analytics
* @description
* App Center Analytics helps you understand user behavior and customer engagement to improve your app.
* The SDK automatically captures session count and device properties like model, OS version, etc.
* You can define your own custom events to measure things that matter to you.
* All the information captured is available in the App Center portal for you to analyze the data.
*
* For more info, please see https://docs.microsoft.com/en-us/appcenter/sdk/analytics/cordova
*
* @usage
* ```typescript
* import { AppCenterAnalytics } from '@ionic-native/app-center-analytics';
*
*
* constructor(private appCenterAnalytics: AppCenterAnalytics) { }
*
* ...
*
* this.appCenterAnalytics.setEnabled(true).then(() => {
* this.appCenterAnalytics.trackEvent('My Event', { TEST: 'HELLO_WORLD' }).then(() => {
* console.log('Custom event tracked');
* });
* });
*
* ```
* @interfaces
* StringMap
*/
@Plugin({
pluginName: 'AppCenterAnalytics',
plugin: 'cordova-plugin-appcenter-analytics',
pluginRef: 'AppCenter.Analytics',
repo:
'https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-analytics',
platforms: ['Android', 'iOS']
})
@Injectable()
export class AppCenterAnalytics extends IonicNativePlugin {
/**
* Tracks an custom event.
* You can send up to 200 distinct event names. Also, there is a maximum limit of 256 characters per event name
* and 64 characters per event property name and event property value.
* @param {string} eventName Event name
* @param {StringMap} properties Event properties
* @returns {Promise<void>}
*/
@Cordova()
trackEvent(eventName: string, properties: StringMap): Promise<void> {
return;
}
/**
* Check if App Center Analytics is enabled
* @returns {Promise<boolean>}
*/
@Cordova()
isEnabled(): Promise<boolean> {
return;
}
/**
* Enable or disable App Center Analytics at runtime
* @param {boolean} shouldEnable Set value
* @returns {Promise<void>}
*/
@Cordova()
setEnabled(shouldEnable: boolean): Promise<void> {
return;
}
}
@@ -0,0 +1,115 @@
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
export interface AppCenterCrashReport {
id: string;
device: AppCenterCrashReportDevice;
appStartTime: number;
appErrorTime: number;
signal: string;
appProcessIdentifier: number;
}
export interface AppCenterCrashReportDevice {
oem_name: string;
os_name: string;
app_version: string;
time_zone_offset: number;
carrier_name: string;
screen_size: string;
locale: string;
sdk_version: string;
carrier_country: string;
os_build: string;
app_namespace: string;
os_version: string;
sdk_name: string;
model: string;
app_build: string;
}
/**
* @name App Center Crashes
* @description
* App Center Analytics helps you understand user behavior and customer engagement to improve your app.
* The SDK automatically captures session count and device properties like model, OS version, etc.
* You can define your own custom events to measure things that matter to you.
* All the information captured is available in the App Center portal for you to analyze the data.
*
* For more info, please see https://docs.microsoft.com/en-us/appcenter/sdk/crashes/cordova
*
* @usage
* ```typescript
* import { AppCenterCrashes } from '@ionic-native/app-center-crashes';
*
*
* constructor(private AppCenterCrashes: AppCenterCrashes) { }
*
* ...
*
* this.AppCenterCrashes.setEnabled(true).then(() => {
* this.AppCenterCrashes.lastSessionCrashReport().then(report => {
* console.log('Crash report', report);
* });
* });
*
* ```
* @interfaces
* AppCenterCrashReport
* AppCenterCrashReportDevice
*/
@Plugin({
pluginName: 'AppCenterCrashes',
plugin: 'cordova-plugin-appcenter-crashes',
pluginRef: 'AppCenter.Crashes',
repo:
'https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-crashes',
platforms: ['Android', 'iOS']
})
@Injectable()
export class AppCenterCrashes extends IonicNativePlugin {
/**
* App Center Crashes provides you with an API to generate a test crash for easy testing of the SDK.
* This API can only be used in test/beta apps and won't do anything in production apps.
* @returns void
*/
@Cordova()
generateTestCrash(): void {}
/**
* At any time after starting the SDK, you can check if the app crashed in the previous launch
* @returns {Promise<boolean>}
*/
@Cordova()
hasCrashedInLastSession(): Promise<boolean> {
return;
}
/**
* Details about the last crash
* @returns {Promise<AppCenterCrashReport>}
*/
@Cordova()
lastSessionCrashReport(): Promise<AppCenterCrashReport> {
return;
}
/**
* Check if App Center Crashes is enabled
* @returns {Promise<boolean>}
*/
@Cordova()
isEnabled(): Promise<boolean> {
return;
}
/**
* Enable or disable App Center Crashes at runtime
* @param {boolean} shouldEnable Set value
* @returns {Promise<void>}
*/
@Cordova()
setEnabled(shouldEnable: boolean): Promise<void> {
return;
}
}
@@ -0,0 +1,68 @@
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
/**
* @name App Center Push
* @description
*
* For more info, please see https://docs.microsoft.com/en-us/appcenter/sdk/push/cordova
*
* @usage
* ```typescript
* import { AppCenterPush } from '@ionic-native/app-center-push';
*
*
* constructor(private appCenterPush: AppCenterPush) { }
*
* ...
*
* this.appCenterPush.setEnabled(true).then(() => {
* this.appCenterPush.addEventListener('My Event').subscribe(pushNotification => {
* console.log('Recived push notification', pushNotification);
* });
* });
*
* ```
*/
@Plugin({
pluginName: 'AppCenterPush',
plugin: 'cordova-plugin-appcenter-push',
pluginRef: 'AppCenter.Push',
repo:
'https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-push',
platforms: ['Android', 'iOS']
})
@Injectable()
export class AppCenterPush extends IonicNativePlugin {
/**
* Subscribe to an event
* @param {string} eventname Event name
* @returns {Observable<any>}
*/
@Cordova({
observable: true,
clearFunction: 'removeEventListener'
})
addEventListener(eventname: string): Observable<any> {
return;
}
/**
* Check if App Center Push is enabled
* @returns {Promise<boolean>}
*/
@Cordova()
isEnabled(): Promise<boolean> {
return;
}
/**
* Enable or disable App Center Push at runtime
* @param {boolean} shouldEnable Set value
* @returns {Promise<void>}
*/
@Cordova()
setEnabled(shouldEnable: boolean): Promise<void> {
return;
}
}