Last active
May 11, 2022 04:32
-
-
Save nukotsuka/277d921781480798d7dcb453af819acd to your computer and use it in GitHub Desktop.
LIFF SDK wrapper for Dart generated by js_facade_gen
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@JS() | |
library liff; | |
import 'package:js/js.dart'; | |
import 'package:js/js_util.dart' show promiseToFuture; | |
@JS() | |
external Liff get liff; | |
@anonymous | |
@JS() | |
abstract class Liff { | |
external String /*'ios'|'android'|'web'*/ getOS(); | |
external String getVersion(); | |
external String getLanguage(); | |
external bool isInClient(); | |
external bool isLoggedIn(); | |
external void login([LoginConfig loginConfig]); | |
external void logout(); | |
external String /*String|Null*/ getAccessToken(); | |
external String /*String|Null*/ getIDToken(); | |
external JWTPayload /*JWTPayload|Null*/ getDecodedIDToken(); | |
external Context /*Context|Null*/ getContext(); | |
external void openWindow(OpenWindowParams params); | |
external void closeWindow(); | |
external List<String> getFeatures(); | |
external bool checkFeature(String feature); | |
external AIdInterface getAId(); | |
external ProfilePlusInterface getProfilePlus(); | |
external bool getIsVideoAutoPlay(); | |
external String /*String|Null*/ getLineVersion(); | |
external bool isApiAvailable(String /*'shareTargetPicker'*/ apiName); | |
external PermanentLink get permanentLink; | |
external set permanentLink(PermanentLink v); | |
external String /*String|Null*/ get id; | |
external void JS$_dispatchEvent(String json); | |
external void JS$_addListener(String type, ClientCallback callback); | |
external void JS$_removeListener(String type, ClientCallback callback); | |
external void JS$_postMessage( | |
String type, [ | |
dynamic /*{}*/ params, | |
String callbackId, | |
]); | |
} | |
@anonymous | |
@JS() | |
abstract class _Liff { | |
external Promise<void> init( | |
/*Liff this*/ InitConfig config, [ | |
void Function() successCallback, | |
void Function(Error error) errorCallback, | |
]); | |
external Promise<Friendship> getFriendship(); | |
external Promise<Profile> getProfile(); | |
external Promise<void> sendMessages(List<dynamic> messages); | |
external Promise<String /*String|Null*/ > userPicker([ | |
UserPickerOptions options, | |
]); | |
external Promise<dynamic /*ShareTargetPickerResult|void*/ > shareTargetPicker( | |
List<dynamic> messages, | |
); | |
external Promise<void> get ready; | |
external set ready(Promise<void> v); | |
external Promise<dynamic> JS$_call( | |
String type, [ | |
dynamic params, | |
CallOptions options, | |
]); | |
/// LiffExtendableAll | |
external Promise<num> addToHomeScreen(AddToHomeScreenParams params); | |
external Promise<ScanCodeResult> scanCode(); | |
external Promise<String /*Null|String*/ > getAdvertisingId(); | |
external Promise<List<void>> initPlugins( | |
List<String /*'bluetooth'|'advertisement'*/ > plugins, | |
); | |
} | |
extension LiffExtensions on Liff { | |
Future<void> init( | |
/*Liff this*/ InitConfig config, [ | |
void Function() successCallback, | |
void Function(Error error) errorCallback, | |
]) { | |
final Object t = this; | |
final _Liff tt = t; | |
return promiseToFuture( | |
tt.init(/*Liff this*/ config, successCallback, errorCallback), | |
); | |
} | |
Future<Friendship> getFriendship() { | |
final Object t = this; | |
final _Liff tt = t; | |
return promiseToFuture(tt.getFriendship()); | |
} | |
Future<Profile> getProfile() { | |
final Object t = this; | |
final _Liff tt = t; | |
return promiseToFuture(tt.getProfile()); | |
} | |
Future<void> sendMessages(List<dynamic> messages) { | |
final Object t = this; | |
final _Liff tt = t; | |
return promiseToFuture(tt.sendMessages(messages)); | |
} | |
Future<String /*String|Null*/ > userPicker([UserPickerOptions options]) { | |
final Object t = this; | |
final _Liff tt = t; | |
return promiseToFuture(tt.userPicker(options)); | |
} | |
Future<dynamic /*ShareTargetPickerResult|void*/ > shareTargetPicker( | |
List<dynamic> messages, | |
) { | |
final Object t = this; | |
final _Liff tt = t; | |
return promiseToFuture(tt.shareTargetPicker(messages)); | |
} | |
Future<void> get ready { | |
final Object t = this; | |
final _Liff tt = t; | |
return promiseToFuture(tt.ready); | |
} | |
set ready(Future<void> v) { | |
final Object t = this; | |
final _Liff tt = t; | |
// ignore: cascade_invocations | |
tt.ready = Promise<void>(allowInterop((resolve, reject) { | |
v.then(resolve, onError: reject); | |
})); | |
} | |
Future<dynamic> JS$_call(String type, [dynamic params, CallOptions options]) { | |
final Object t = this; | |
final _Liff tt = t; | |
return promiseToFuture(tt.JS$_call(type, params, options)); | |
} | |
Future<num> addToHomeScreen(AddToHomeScreenParams params) { | |
final Object t = this; | |
final _Liff tt = t; | |
return promiseToFuture(tt.addToHomeScreen(params)); | |
} | |
Future<ScanCodeResult> scanCode() { | |
final Object t = this; | |
final _Liff tt = t; | |
return promiseToFuture(tt.scanCode()); | |
} | |
Future<String /*Null|String*/ > getAdvertisingId() { | |
final Object t = this; | |
final _Liff tt = t; | |
return promiseToFuture(tt.getAdvertisingId()); | |
} | |
Future<List<void>> initPlugins( | |
List<String /*'bluetooth'|'advertisement'*/ > plugins) { | |
final Object t = this; | |
final _Liff tt = t; | |
return promiseToFuture(tt.initPlugins(plugins)); | |
} | |
} | |
@anonymous | |
@JS() | |
abstract class Error { | |
external String get name; | |
external set name(String v); | |
external String get message; | |
external set message(String v); | |
external String get stack; | |
external set stack(String v); | |
external factory Error({String name, String message, String stack}); | |
} | |
typedef ClientCallback = void Function(CustomEvent e); | |
@anonymous | |
@JS() | |
abstract class InitConfig { | |
external String get liffId; | |
external set liffId(String v); | |
external factory InitConfig({String liffId}); | |
} | |
@anonymous | |
@JS() | |
abstract class LoginConfig { | |
external String get redirectUri; | |
external set redirectUri(String v); | |
external factory LoginConfig({String redirectUri}); | |
} | |
@anonymous | |
@JS() | |
abstract class JWTPayload { | |
external String get iss; | |
external set iss(String v); | |
external String get sub; | |
external set sub(String v); | |
external String get aud; | |
external set aud(String v); | |
external num get exp; | |
external set exp(num v); | |
external num get iat; | |
external set iat(num v); | |
external num get auth_time; | |
external set auth_time(num v); | |
external String get nonce; | |
external set nonce(String v); | |
external List<String> get amr; | |
external set amr(List<String> v); | |
external String get name; | |
external set name(String v); | |
external String get picture; | |
external set picture(String v); | |
external String get email; | |
external set email(String v); | |
external factory JWTPayload({ | |
String iss, | |
String sub, | |
String aud, | |
num exp, | |
num iat, | |
num auth_time, | |
String nonce, | |
List<String> amr, | |
String name, | |
String picture, | |
String email, | |
}); | |
} | |
@anonymous | |
@JS() | |
abstract class Friendship { | |
external bool get friendFlag; | |
external set friendFlag(bool v); | |
external factory Friendship({bool friendFlag}); | |
} | |
@anonymous | |
@JS() | |
abstract class Context { | |
external String /*'utou'|'room'|'group'|'none'*/ get type; | |
external set type(String /*'utou'|'room'|'group'|'none'*/ v); | |
external String get utouId; | |
external set utouId(String v); | |
external String get roomId; | |
external set roomId(String v); | |
external String get groupId; | |
external set groupId(String v); | |
external String get userId; | |
external set userId(String v); | |
external String get endpointUrl; | |
external set endpointUrl(String v); | |
external String get viewType; | |
external set viewType(String v); | |
external String get accessTokenHash; | |
external set accessTokenHash(String v); | |
external String /*'replace'|'concat'*/ get permanentLinkPattern; | |
external set permanentLinkPattern(String /*'replace'|'concat'*/ v); | |
external ProfilePlusInterface get profilePlus; | |
external set profilePlus(ProfilePlusInterface v); | |
external DeviceRelatedSettings get d; | |
external set d(DeviceRelatedSettings v); | |
external Availability get availability; | |
external set availability(Availability v); | |
external factory Context({ | |
String /*'utou'|'room'|'group'|'none'*/ type, | |
String utouId, | |
String roomId, | |
String groupId, | |
String userId, | |
String endpointUrl, | |
String viewType, | |
String accessTokenHash, | |
String /*'replace'|'concat'*/ permanentLinkPattern, | |
ProfilePlusInterface profilePlus, | |
DeviceRelatedSettings d, | |
Availability availability, | |
}); | |
} | |
@anonymous | |
@JS() | |
abstract class AIdInterface { | |
external String get id; | |
external set id(String v); | |
external bool get t; | |
external set t(bool v); | |
external factory AIdInterface({String id, bool t}); | |
} | |
@anonymous | |
@JS() | |
abstract class ProfilePlusInterface { | |
external String get regionCode; | |
external set regionCode(String v); | |
external factory ProfilePlusInterface({String regionCode}); | |
} | |
@anonymous | |
@JS() | |
abstract class Profile { | |
external String get userId; | |
external set userId(String v); | |
external String get displayName; | |
external set displayName(String v); | |
external String get pictureUrl; | |
external set pictureUrl(String v); | |
external String get statusMessage; | |
external set statusMessage(String v); | |
external factory Profile({ | |
String userId, | |
String displayName, | |
String pictureUrl, | |
String statusMessage, | |
}); | |
} | |
@anonymous | |
@JS() | |
abstract class UserPickerOptions { | |
external String /*'none'|'hash'|'history'*/ get routerMode; | |
external set routerMode(String /*'none'|'hash'|'history'*/ v); | |
external factory UserPickerOptions({ | |
String /*'none'|'hash'|'history'*/ routerMode, | |
}); | |
} | |
@anonymous | |
@JS() | |
abstract class OpenWindowParams { | |
external String get url; | |
external set url(String v); | |
external bool get external; | |
external set external(bool v); | |
external factory OpenWindowParams({String url, bool external}); | |
} | |
@anonymous | |
@JS() | |
abstract class ShareTargetPickerResult { | |
external String /*'success'*/ get status; | |
external set status(String /*'success'*/ v); | |
external factory ShareTargetPickerResult({String /*'success'*/ status}); | |
} | |
@anonymous | |
@JS() | |
abstract class AddToHomeScreenParams { | |
external String get name; | |
external set name(String v); | |
external String get iconUrl; | |
external set iconUrl(String v); | |
external String get state; | |
external set state(String v); | |
external factory AddToHomeScreenParams({ | |
String name, | |
String iconUrl, | |
String state, | |
}); | |
} | |
@anonymous | |
@JS() | |
abstract class ScanCodeResult { | |
external String /*String|Null*/ get value; | |
external set value(String /*String|Null*/ v); | |
external factory ScanCodeResult({String /*String|Null*/ value}); | |
} | |
@anonymous | |
@JS() | |
abstract class CustomEvent<T> { | |
external T get detail; | |
external void initCustomEvent( | |
String typeArg, | |
bool canBubbleArg, | |
bool cancelableArg, | |
T detailArg, | |
); | |
} | |
@anonymous | |
@JS() | |
abstract class PermanentLink { | |
external String Function() get createUrl; | |
external set createUrl(String Function() v); | |
external void Function(String) get setExtraQueryParam; | |
external set setExtraQueryParam(void Function(String) v); | |
external factory PermanentLink({ | |
String Function() createUrl, | |
void Function(String) setExtraQueryParam, | |
}); | |
} | |
@anonymous | |
@JS() | |
abstract class CallOptions { | |
external String get callbackId; | |
external set callbackId(String v); | |
external bool get once; | |
external set once(bool v); | |
external factory CallOptions({String callbackId, bool once}); | |
} | |
@anonymous | |
@JS() | |
abstract class DeviceRelatedSettings { | |
external bool get autoplay; | |
external set autoplay(bool v); | |
external AIdInterface get aId; | |
external set aId(AIdInterface v); | |
external factory DeviceRelatedSettings({bool autoplay, AIdInterface aId}); | |
} | |
@anonymous | |
@JS() | |
abstract class ShareTargetPicker { | |
external bool get permission; | |
external set permission(bool v); | |
external String get minVer; | |
external set minVer(String v); | |
external factory ShareTargetPicker({bool permission, String minVer}); | |
} | |
@anonymous | |
@JS() | |
abstract class Availability { | |
external ShareTargetPicker get shareTargetPicker; | |
external set shareTargetPicker(ShareTargetPicker v); | |
external factory Availability({ShareTargetPicker shareTargetPicker}); | |
} | |
@JS() | |
abstract class Promise<T> { | |
external factory Promise( | |
void Function(void Function(T result) resolve, Function reject) executor, | |
); | |
external Promise then( | |
void Function(T result) onFulfilled, [ | |
Function onRejected, | |
]); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Usage
Add
js
package topubspec.yaml
.Add script to
index.html
.And add
liff.dart
listed above to your project, then you can useliff
.References