-
Notifications
You must be signed in to change notification settings - Fork 70
/
main.dart
72 lines (66 loc) · 2.25 KB
/
main.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import 'package:flutter/material.dart';
import 'package:kakao_flutter_sdk/kakao_flutter_sdk.dart';
import 'package:kakao_flutter_sdk_example/ui/debug_page.dart';
import 'package:kakao_flutter_sdk_example/ui/main_page.dart';
import 'package:kakao_flutter_sdk_example/ui/picker_page.dart';
import './url_strategy_native.dart'
if (dart.library.html) './url_strategy_web.dart';
import 'ui/kakao_scheme_page.dart';
const Map<String, dynamic> customData = {
'customMemo': 67020,
'customMessage': 67020,
'channelId': '_ZeUTxl',
'calendarEventId': '63996425afcec577cce94f0b',
'settle_id': 'f3318663-771a-4b24-8714-3f3061fa17cd',
};
void main() async {
WidgetsFlutterBinding.ensureInitialized();
urlConfig();
KakaoSdk.init(
nativeAppKey: '030ba7c59137629e86e8721eb1a22fd6',
javaScriptAppKey: 'fa2d8e9f47b88445000592c9a293bbe2',
loggingEnabled: true,
);
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
initialRoute: '/',
onGenerateRoute: (settings) {
Widget? pageView;
if (settings.name != null) {
var data = Uri.parse(settings.name!);
switch (data.path) {
case '/':
pageView = const MainPage(customData: customData);
break;
case '/debug':
pageView = const DebugPage();
break;
case '/picker':
if (data.queryParameters.containsKey('selected')) {
pageView = PickerPage(result: data.queryParameters['selected']);
} else if (data.queryParameters.containsKey('error')) {
pageView = PickerPage(error: data.queryParameters['error']);
} else {
pageView = const PickerPage();
}
break;
case '/talkSharing':
Map<String, dynamic>? params =
settings.arguments as Map<String, dynamic>?;
pageView = KakaoSchemePage(queryParams: params);
break;
}
}
if (pageView != null) {
return MaterialPageRoute(builder: (context) => pageView!);
}
return null;
},
);
}
}