wepin_flutter 0.0.3
wepin_flutter: ^0.0.3 copied to clipboard
Flutter package of Wepin
example/lib/main.dart
import 'dart:async';
import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:uni_links/uni_links.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:wepin_flutter/wepin.dart';
import 'package:wepin_flutter/wepin_delegate.dart';
import 'package:wepin_flutter/wepin_inputs.dart';
import 'package:wepin_flutter/wepin_outputs.dart';
late Wepin _wepin;
void main() => runApp(MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: SampleApp(),
));
class SampleApp extends StatefulWidget with WepinDelegate {
SampleApp({super.key});
@override
_SampleApp createState() => _SampleApp();
@override
void onWepinError(String errMsg) {
// TODO: implement onWepinError
if (kDebugMode) {
print('onWepinError : $errMsg');
}
}
@override
void onAccountSet() {
// TODO: implement onAccountSet
if (kDebugMode) {
print('onAccountSet');
}
List<Account>? accounts = _wepin.getAccounts();
if (accounts == null) {
if (kDebugMode) {
print('accounts is null');
}
return;
}
for (var account in accounts!) {
if (kDebugMode) {
print('netwrok : ${account.network}');
print('address : ${account.address}');
}
}
}
}
class _SampleApp extends State<SampleApp> {
StreamSubscription? _sub;
final String _appId = 'test_app_id';
final String _appSdkKey = 'test_app_key';
@override
void initState() {
if (kDebugMode) {
print('initState');
}
super.initState();
_wepin = Wepin();
_handleDeepLink(); // Noti : 딥링크 처리함수 추가
}
/// Handle incoming links - the ones that the app will recieve from the OS
/// while already started.
/// Noti : 딥링크 받는 부분
void _handleDeepLink() {
if (kDebugMode) {
print('_handleDeepLink');
}
if (!kIsWeb) {
// It will handle app links while the app is already started - be it in
// the foreground or in the background.
_sub = uriLinkStream.listen((Uri? uri) {
if (!mounted) return;
if (kDebugMode) {
print('got_uri: $uri');
}
_wepin.handleWepinLink(uri!);
}, onError: (Object err) {
if (!mounted) return;
if (kDebugMode) {
print('got_err: $err');
}
});
}
}
@override
Widget build(BuildContext context) {
if (kDebugMode) {
print('build');
}
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Wepin Flutter Example-Dev'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
style: ElevatedButton.styleFrom(fixedSize: Size(150, 30)),
onPressed: () => _initialize(context),
child: const Text('initialize')),
ElevatedButton(
style: ElevatedButton.styleFrom(fixedSize: Size(150, 30)),
onPressed: _isInitialized,
child: const Text('is_initialized')),
ElevatedButton(
style: ElevatedButton.styleFrom(fixedSize: Size(150, 30)),
onPressed: _openWidget,
child: const Text('open_widget')),
ElevatedButton(
style: ElevatedButton.styleFrom(fixedSize: Size(150, 30)),
onPressed: _closeWidget,
child: const Text('close_widget')),
ElevatedButton(
style: ElevatedButton.styleFrom(fixedSize: Size(150, 30)),
onPressed: _getAccounts,
child: const Text('get_accounts')),
ElevatedButton(
style: ElevatedButton.styleFrom(fixedSize: Size(150, 30)),
onPressed: _finalize,
child: const Text('finalize')),
],
),
),
),
);
}
void _initialize(BuildContext context) {
if (kDebugMode) {
print('_initialize');
}
if (_wepin.isInitialized()) {
_showToast('Already initialized');
return;
}
WidgetAttributes widgetAttributes = WidgetAttributes('ko', 'krw');
WepinOptions wepinOptions =
WepinOptions(_appId, _appSdkKey, widgetAttributes);
_wepin.initialize(context, wepinOptions);
}
void _isInitialized() {
if (kDebugMode) {
print('_isInitialized');
}
bool result = _wepin.isInitialized();
_showToast('isIntialized : $result');
}
void _openWidget() {
if (kDebugMode) {
print('_openWidget');
}
if (!_wepin.isInitialized()) {
_showToast('Wepin is not initialized');
return;
}
_wepin.openWidget();
}
void _closeWidget() {
if (kDebugMode) {
print('_closeWidget');
}
if (!_wepin.isInitialized()) {
_showToast('Wepin is not initialized');
return;
}
_wepin.closeWidget();
}
void _getAccounts() {
List<Account>? accounts;
if (kDebugMode) {
print('_getAccounts');
}
if (!_wepin.isInitialized()) {
_showToast('Wepin is not initialized');
return;
}
accounts = _wepin.getAccounts();
if (accounts == null) {
if (kDebugMode) {
print('accounts is null');
}
_showToast('accounts is null');
return;
}
for (var account in accounts) {
if (kDebugMode) {
print('network : ${account.network}');
print('address : ${account.address}');
}
}
}
void _finalize() {
if (kDebugMode) {
print('_finalize');
}
_wepin.finalize();
}
void _showToast(String message) {
Fluttertoast.showToast(
msg: message,
gravity: ToastGravity.BOTTOM,
backgroundColor: Colors.grey,
fontSize: 15.0,
textColor: Colors.black,
toastLength: Toast.LENGTH_SHORT);
}
}