1.0.1 • Published 2 years ago
capacitor-line-login v1.0.1
capacitor-line-login
Capacitor plugin to support LINE Login
Versions
This plugin is for Capacitor 5.
Installation
npm install capacitor-line-login
npx cap syncWeb
Not supported.
Android
No further steps are required.
iOS
Update the following:
./ios/App/App/Info.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
[...]
+ <key>CFBundleURLTypes</key>
+ <array>
+ <dict>
+ <key>CFBundleTypeRole</key>
+ <string>Editor</string>
+ <key>CFBundleURLSchemes</key>
+ <array>
+ <string>line3rdp.$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+ </array>
+ </dict>
+ </array>
+ <key>LSApplicationQueriesSchemes</key>
+ <array>
+ <string>lineauth2</string>
+ </array>
</dict>
</plist>./ios/App/App/AppDelegate.swift:
import UIKit
import Capacitor
+import LineSDK
[...]
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
// Called when the app was launched with a url. Feel free to add additional processing here,
// but if you want the App API to support tracking app url opens, make sure to keep this call
+ if LoginManager.shared.application(app, open: url) {
+ return true
+ }
return ApplicationDelegateProxy.shared.application(app, open: url, options: options)
}Usage
import { LineLogin, LoginResult } from 'capacitor-line-login'LineLogin.setup({ channelId: 'CHANNEL_ID' })
[...]
LineLogin.login()
.then(({ code, data }: LoginResult) => {
// ...
})
.catch(({ code, message }) => {
// ...
})API
setup(...)
setup(options: SetupOptions) => Promise<void>| Param | Type |
|---|---|
options | SetupOptions |
login()
login() => Promise<LoginResult>Returns: Promise<LoginResult>
logout()
logout() => Promise<Result>Returns: Promise<Result>
getAccessToken()
getAccessToken() => Promise<GetAccessTokenResult>Returns: Promise<GetAccessTokenResult>
refreshAccessToken()
refreshAccessToken() => Promise<GetAccessTokenResult>Returns: Promise<GetAccessTokenResult>
verifyAccessToken()
verifyAccessToken() => Promise<Result>Returns: Promise<Result>
Interfaces
SetupOptions
| Prop | Type |
|---|---|
channelId | string |
LoginResult
| Prop | Type |
|---|---|
data | { accessToken: string; estimatedExpirationTimeMillis: number; userID: string; email?: string; displayName: string; pictureUrl?: string; } |
Result
| Prop | Type |
|---|---|
code | 'SUCCESS' | 'CANCEL' | 'UNKNOWN_ERROR' |
GetAccessTokenResult
| Prop | Type |
|---|---|
data | { accessToken: string; estimatedExpirationTimeMillis: number; } |