import { Injectable } from '@angular/core'; import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; export interface LineLoginParams { /** * Line Channel ID */ channel_id: string; } export interface LineLoginProfile { /** * Line User ID */ userID: string; /** * Line Profile Image URL */ pictureURL: string; /** * Line Profile Name */ displayName: string; /** * Email */ email?: string; } export interface LineLoginAccessToken { /** * Line Access Token */ accessToken: string; /** * Line Access Token Expire Time */ expireTime: string; } /** * @name Line Login * @description * The function login, logs out, acquires, verifies, and refreshes the access token. The version of LineSDK you are using is as follows. * * @usage * ```typescript * import { LineLogin } from '@ionic-native/line-login/ngx'; * * * constructor(private lineLogin: LineLogin) { } * * ... * * * this.lineLogin.initialize({ channel_id: "xxxxxxxxxx" }) * * this.lineLogin.login() * .then(result => console.log(result)) * .catch(error => console.log(error)) * * ``` * * @interfaces * LineLoginParams * LineLoginProfile * LineLoginAccessToken * */ @Plugin({ pluginName: 'LineLogin', plugin: 'cordova-line-login-plugin', pluginRef: 'lineLogin', repo: 'https://github.com/nrikiji/cordova-line-login-plugin', install: 'ionic cordova plugin add https://github.com/nrikiji/cordova-line-login-plugin.git --variable LINE_CHANNEL_ID="your_line_channel_id"', installVariables: ['LINE_CHANNEL_ID'], platforms: ['Android', 'iOS'] }) @Injectable() export class LineLogin extends IonicNativePlugin { /** * Initialize * @param param LineLoginParams * @return {Promise} */ @Cordova() initialize(param: LineLoginParams): Promise { return; } /** * Login * @return {Promise} */ @Cordova({ successIndex: 1, errorIndex: 2 }) login(): Promise { return; } /** * Login with Web * (iOS only) * @return {Promise} */ @Cordova({ successIndex: 1, errorIndex: 2 }) loginWeb(): Promise { return; } /** * Logout * @return {Promise} */ @Cordova() logout(): Promise { return; } /** * Get Access Token * @return {Promise} */ @Cordova() getAccessToken(): Promise { return; } /** * Verify AccessToken * @return {Promise} */ @Cordova() verifyAccessToken(): Promise { return; } /** * Refresh Access Token * @return {Promise} */ @Cordova() refreshAccessToken(): Promise { return; } }