finpong_plus 0.1.2 finpong_plus: ^0.1.2 copied to clipboard
Finpong Plus Widget
import 'dart:convert';
import 'package:finpong_plus/finpong_plus.dart';
import 'package:flutter/material.dart';
void main() {
runApp(const MaterialApp(
home: MyApp(),
));
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String sampleToken = 'oVhMyHYutPW1664VrK3kwYlIlvcQ0QFcW/wwsNmpNZOeTedb0xp3evWclII+mS3+FBPtgf8DCXe5Iv4lnrhnfWU/WFtM3dhEjCHXmTXXTfnLowtwqQWaomifmLryjlxBdhH0nN/AeoRp4kiDuJGenqYzflRiV3RlftUBbBWh0/HjUXOpRedqW+mHmSOAdrEE1KUAtrfFo8/aBlnAwotPXgK62x8ZPJbxCkkHxyOnA4Zgw//TvxzFh6sMCkaRUuqk9J2Vqr4p6eOzmbQ5v7ejwG7ZrlELfv+lXWxE4Tw+34Vf7s8l6mzAtPPK0ad63bPE8tSHk62eS5Vehf42BPNieNaXDtaoDx5o+98ccZCT76UFBXnvmU0hDsHs2lK5Ea25cGrSn/Rb7+WpT7RE/P6RyyV/jf+PAZHmvxzKCf01i0GLwMmMfaXzzlp8tF8Rp9KUFgjwy3jCk3SULltMN1GiH1U1Ku4f3f5Kp5uki3MAgpL1iIs+xsUddSk/cR1y3PjIdd3Q9j58IDNVMl9BZvDMswOCJw30SwmRNTrI+bh7pGnLtZH7R75Z6aVZ0Hc3zL5k';
String inputToken = '';
String entry = '';
FinpongPlusController finpongPlusController = FinpongPlusController();
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: Container(
color: Colors.white,
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: const EdgeInsets.only(top: 100),
child: Card(
child: TextField(
onChanged: (text) {
setState(() {
inputToken = text;
});
},
decoration: const InputDecoration(
border: OutlineInputBorder(), labelText: 'token'),
),
),
),
Padding(
padding: const EdgeInsets.only(top: 20, bottom: 20),
child: Card(
child: TextField(
onChanged: (text) {
setState(() {
entry = text;
});
},
decoration: const InputDecoration(
border: OutlineInputBorder(), labelText: 'entry'),
),
),
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
child: Text('Dev'),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => _finpongPlusWidget(
inputToken, ServerMode.dev, entry)));
},
),
const SizedBox(
width: 10,
),
ElevatedButton(
child: Text('Stg'),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => _finpongPlusWidget(
inputToken, ServerMode.staging, entry)));
},
),
const SizedBox(
width: 10,
),
ElevatedButton(
child: Text('Release'),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => _finpongPlusWidget(
inputToken, ServerMode.release, entry)));
},
),
],
),
],
),
),
);
}
Widget _finpongPlusWidget(String token, ServerMode serverMode, String entry) {
if (entry == '') {
entry = '0';
}
return SafeArea(
child: FinpongPlusWidget(
finpongPlusController: finpongPlusController,
token: token,
entry: entry,
serverMode: serverMode,
backgorundColor: Colors.white,
onUriScheme: (type, scheme) {
//사설 인증서 호출 (앱스킴 실행)
},
onCustomAction: (pageId, params) {
//사전 정의된 핀퐁플러스의 액션을 앱에서 처리를 위함
if (pageId == 'PA-001') {
var testData = {"data1": 1, "data2": true};
String jsonString = jsonEncode(testData);
finpongPlusController.runJavaScript('fileDataConnect', jsonString);
}
},
onCloseAction: () {
//핀퐁플러스 닫기
Navigator.pop(context);
},
onPageLoadStarted: () {
//핀퐁플러스 페이지 로드 시작
},
onPageLoadFinished: () {
//핀퐁플러스 페이지 로드 종료
},
),
);
}
}