import { Injectable } from '@angular/core'; import { Plugin, Cordova, CordovaCheck, IonicNativePlugin } from '@ionic-native/core'; import { Observable } from 'rxjs/Observable'; declare const cordova: any; /** * @name Jins Meme * @description * Implementation of the JINS MEME SDK * * @usage * ```typescript * import { JinsMeme } from '@ionic-native/jins-meme'; * * constructor(private jinsMeme: JinsMeme) { } * * ... * * this.jinsMeme.setAppClientID(appClientId: string, clientSecret: string).then( * // Bluetooth should be enabled and the JINS MEME powered on (blinking blue light) * this.jinsMeme.startScan().subscribe((meme_addr) => { * this.jinsMeme.connect(meme_addr).subscribe((connectResult) => { * this.memeService.startDataReport().subscribe((dataReport) => { * console.log(dataReport); * }); * }); * }); * .catch(console.log('jinsMeme.setAppClientID authentication error')); * * ``` */ @Plugin({ pluginName: 'JINS MEME ES', plugin: 'cordova-plugin-jins-meme-es', pluginRef: 'com.jins_jp.meme.plugin', repo: 'https://github.com/BlyncSync/cordova-plugin-jins-meme-es', platforms: ['Android', 'iOS'] }) @Injectable() export class JinsMeme extends IonicNativePlugin { /** * Authentication and authorization of App and SDK. * Must call this method first. * Sign up for an app ID (and get an app/client secret) at developers.jins.com * *@param {string} setAppClientID *@param {string} clientSecret *@returns {Promise} */ @Cordova() setAppClientID(appClientId: string, clientSecret: string): Promise { return; } /** * Starts scanning for JINS MEME. * @returns {Observable} */ @Cordova({ observable: true, clearFunction: 'stopScan', clearWithArgs: true }) startScan(): Observable { return; } /** * Stops scanning JINS MEME. * @returns {Promise} */ @Cordova() stopScan(): Promise { return; } /** * Establishes connection to JINS MEME. * @param {string} target * @returns {Observable} */ @CordovaCheck({ observable: true }) connect(target: string): Observable { return new Observable((observer: any) => { let data = cordova.plugins.JinsMemePlugin.connect(target, observer.next.bind(observer), observer.complete.bind(observer), observer.error.bind(observer)); return () => console.log(data); }); } /** * Set auto connection mode. *@param {Boolean} flag *@returns {Promise} */ @Cordova() setAutoConnect(flag: boolean): Promise { return; } /** * Returns whether a connection to JINS MEME has been established. *@returns {Promise} */ @Cordova() isConnected(): Promise { return; } /** * Disconnects from JINS MEME. *@returns {Promise} */ @Cordova() disconnect(): Promise { return; } /** * Starts receiving realtime data. * @returns {Observable} */ @Cordova({ observable: true, clearFunction: 'stopDataReport', clearWithArgs: true }) startDataReport(): Observable { return; } /** * Stops receiving data. *@returns {Promise} */ @Cordova() stopDataReport(): Promise { return; } /** * Returns SDK version. * *@returns {Promise} */ @Cordova() getSDKVersion(): Promise { return; } /** * Returns JINS MEME connected with other apps. *@returns {Promise} */ @Cordova() getConnectedByOthers(): Promise { return; } /** * Returns calibration status *@returns {Promise} */ @Cordova() isCalibrated(): Promise { return; } /** * Returns device type. *@returns {Promise} */ @Cordova() getConnectedDeviceType(): Promise { return; } /** * Returns hardware version. *@returns {Promise} */ @Cordova() getConnectedDeviceSubType(): Promise { return; } /** * Returns FW Version. *@returns {Promise} */ @Cordova() getFWVersion(): Promise { return; } /** * Returns HW Version. *@returns {Promise} */ @Cordova() getHWVersion(): Promise { return; } /** * Returns response about whether data was received or not. *@returns {Promise} */ @Cordova() isDataReceiving(): Promise { return; } }