Commit 2e705874 authored by Gavin An's avatar Gavin An

여러가지 테스트

parent 7421b5a0
......@@ -22,6 +22,22 @@
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher"
android:label="dispatcher_test">
<!-- 카카오 로그인 커스텀 URL 스킴 설정 -->
<activity
android:name="com.kakao.sdk.flutter.AuthCodeCustomTabsActivity"
android:exported="true">
<intent-filter android:label="flutter_web_auth">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- "kakao${YOUR_NATIVE_APP_KEY}://oauth" 형식의 앱 실행 스킴 설정 -->
<!-- 카카오 로그인 Redirect URI -->
<!-- <data android:scheme="kakao${564563452}" android:host="oauth"/>-->
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
......
......@@ -2,6 +2,7 @@ import 'dart:math';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:dispatcher_test/firebase_options.dart';
import 'package:dispatcher_test/module/dependency_inject.dart';
import 'package:dispatcher_test/notification_page.dart';
import 'package:dispatcher_test/speech_to_text_page.dart';
import 'package:dispatcher_test/text_to_speech_page.dart';
......@@ -10,7 +11,9 @@ import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart';
import 'package:permission_handler/permission_handler.dart';
const List<String> sample = [
......@@ -85,14 +88,14 @@ Future<void> setupFlutterNotifications() async {
///
/// We use this channel in the `AndroidManifest.xml` file to override the
/// default FCM channel to enable heads up notifications.
await flutterLocalNotificationsPlugin.resolvePlatformSpecificImplementation
<AndroidFlutterLocalNotificationsPlugin>()?.createNotificationChannel(channel);
await flutterLocalNotificationsPlugin
.resolvePlatformSpecificImplementation<
AndroidFlutterLocalNotificationsPlugin>()
?.createNotificationChannel(channel);
/// Update the iOS foreground notification presentation options to allow
/// heads up notifications.
await FirebaseMessaging
.instance
.setForegroundNotificationPresentationOptions(
await FirebaseMessaging.instance.setForegroundNotificationPresentationOptions(
alert: true,
badge: true,
sound: true,
......@@ -100,15 +103,21 @@ Future<void> setupFlutterNotifications() async {
isFlutterLocalNotificationsInitialized = true;
}
void main() async {
WidgetsFlutterBinding.ensureInitialized();
dependenciesInitialized();
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
// FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
FirebaseFirestore.instance.settings = const Settings(
persistenceEnabled: true,
);
// TODO 카카오 Login
// KakaoSdk.init(
// nativeAppKey: ''
// );
// final fcmToken = await FirebaseMessaging.instance.getToken();
// print('fcmToken: $fcmToken');
if (!kIsWeb) {
......@@ -136,6 +145,7 @@ class MyApp extends StatelessWidget {
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
@override
......@@ -222,6 +232,33 @@ class _MyHomePageState extends State<MyHomePage> {
style: TextStyle(color: Colors.black),
),
),
TextButton(
style: const ButtonStyle(
backgroundColor: WidgetStatePropertyAll(Colors.amber),
minimumSize: WidgetStatePropertyAll(Size.fromHeight(30))),
onPressed: () async {
// bool talkInstalled = await isKakaoTalkInstalled();
// if (talkInstalled) {
try {
OAuthToken token =
await UserApi.instance.loginWithKakaoAccount();
// TODO 서버에 토큰 올린 후, response 에 따라 회원가입 절차
return;
} catch (e) {
print('카카오톡으로 로그인 실패 $e');
// 사용자가 카카오톡 설치 후 디바이스 권한 요청 화면에서 로그인을 취소한 경우,
// 의도적인 로그인 취소로 보고 카카오계정으로 로그인 시도 없이 로그인 취소로 처리 (예: 뒤로 가기)
if (e is PlatformException && e.code == 'CANCELED') {
return;
}
}
// }
// 카카오톡 계정이 없거나, 카카오톡 설치가 되지 않았다면 웹으로 로그인
OAuthToken token = await UserApi.instance.loginWithKakaoAccount();
// TODO 서버에 토큰 올린 후, response 에 따라 회원가입 절차
},
child: Text('카카오로그인', style: const TextStyle(color: Colors.black)),
),
const SizedBox(
height: 10,
),
......
import 'package:dispatcher_test/module/remote/base_module/base_network.dart';
import 'package:dispatcher_test/module/remote/base_module/base_network_Interceptor.dart';
import 'package:dispatcher_test/module/storage/secure_storage.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:get_it/get_it.dart';
final getIt = GetIt.instance;
Future<void> dependenciesInitialized() async {
getIt.registerSingleton<SecureStorageModule>(
SecureStorageModule(
const FlutterSecureStorage(),
),
);
// base network module
getIt.registerLazySingleton<BaseNetwork>(
() => BaseNetwork(
baseRequestInterceptor: BaseRequestInterceptor(
secureStorageModule: getIt<SecureStorageModule>(),
),
),
);
}
import 'package:dio/dio.dart';
import 'package:dispatcher_test/module/remote/base_module/base_network_Interceptor.dart';
class BaseNetwork {
final Dio _dio = Dio();
final BaseRequestInterceptor baseRequestInterceptor;
BaseNetwork({
required this.baseRequestInterceptor,
}) {
_dio.options = _dioOptions();
_dio.interceptors.add(baseRequestInterceptor);
}
BaseOptions _dioOptions() {
BaseOptions opts = BaseOptions();
opts.connectTimeout = const Duration(minutes: 1);
opts.receiveTimeout = const Duration(minutes: 1);
opts.sendTimeout = const Duration(minutes: 1);
opts.baseUrl = "https://dispatcher-dev.realbyte.net/"; // TODO 개발 서버 URL
return opts;
}
Future<Response> get({
required String path,
Map<String, dynamic>? queryParameters,
}) async {
return _dio.get(path, queryParameters: queryParameters);
}
Future<Response> post({
required String path,
Map<String, dynamic>? queryParameters,
dynamic data,
}) async {
return _dio.post(path, queryParameters: queryParameters, data: data);
}
Future<Response> put({
required String path,
Map<String, dynamic>? queryParameters,
dynamic data,
}) async {
return _dio.put(path, queryParameters: queryParameters, data: data);
}
Future<Response> delete({
required String path,
Map<String, dynamic>? queryParameters,
dynamic data,
}) async {
return _dio.delete(path, queryParameters: queryParameters, data: data);
}
Future<Response> patch({
required String path,
Map<String, dynamic>? queryParameters,
dynamic data,
}) async {
return _dio.patch(path, queryParameters: queryParameters, data: data);
}
}
import 'package:dio/dio.dart';
import 'package:dispatcher_test/module/storage/secure_storage.dart';
class BaseRequestInterceptor extends Interceptor {
final SecureStorageModule secureStorageModule;
BaseRequestInterceptor({required this.secureStorageModule});
@override
void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
// TODO 토큰 판별 후, accesstoken 이 만료 되었다면 refreshToken 요청 콜.
// 콜이 끝나면 해당 토큰으로 다시 set 하여 options 에 태워 보냄
// 토큰 저장은 SecureStorage 에
return super.onRequest(options, handler);
}
@override
void onError(DioException err, ErrorInterceptorHandler handler) {
// TODO 에러에 대한 처음 처리
return super.onError(err, handler);
}
@override
void onResponse(Response response, ResponseInterceptorHandler handler) {
// TODO 응답에 대한 처음 처리
return super.onResponse(response, handler);
}
}
\ No newline at end of file
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
class SecureStorageModule {
final FlutterSecureStorage storage;
SecureStorageModule(this.storage);
Future<void> write(String key, String value) async {
await storage.write(key: key, value: value);
}
Future<String> read(String key) async {
final String ret = await storage.read(key: key) ?? '';
return ret;
}
}
......@@ -6,6 +6,10 @@
#include "generated_plugin_registrant.h"
#include <flutter_secure_storage_linux/flutter_secure_storage_linux_plugin.h>
void fl_register_plugins(FlPluginRegistry* registry) {
g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin");
flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar);
}
......@@ -3,6 +3,7 @@
#
list(APPEND FLUTTER_PLUGIN_LIST
flutter_secure_storage_linux
)
list(APPEND FLUTTER_FFI_PLUGIN_LIST
......
......@@ -9,7 +9,10 @@ import cloud_firestore
import firebase_core
import firebase_messaging
import flutter_local_notifications
import flutter_secure_storage_macos
import flutter_tts
import path_provider_foundation
import shared_preferences_foundation
import speech_to_text_macos
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
......@@ -17,6 +20,9 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin"))
FLTFirebaseMessagingPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseMessagingPlugin"))
FlutterLocalNotificationsPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalNotificationsPlugin"))
FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin"))
FlutterTtsPlugin.register(with: registry.registrar(forPlugin: "FlutterTtsPlugin"))
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
SpeechToTextMacosPlugin.register(with: registry.registrar(forPlugin: "SpeechToTextMacosPlugin"))
}
......@@ -17,6 +17,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.5.0"
asn1lib:
dependency: transitive
description:
name: asn1lib
sha256: "58082b3f0dca697204dbab0ef9ff208bfaea7767ea771076af9a343488428dda"
url: "https://pub.dev"
source: hosted
version: "1.5.3"
async:
dependency: transitive
description:
......@@ -81,6 +89,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.18.0"
convert:
dependency: transitive
description:
name: convert
sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
url: "https://pub.dev"
source: hosted
version: "3.1.1"
crypto:
dependency: transitive
description:
name: crypto
sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27
url: "https://pub.dev"
source: hosted
version: "3.0.5"
cupertino_icons:
dependency: "direct main"
description:
......@@ -97,6 +121,30 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.7.10"
dio:
dependency: "direct main"
description:
name: dio
sha256: "0dfb6b6a1979dac1c1245e17cef824d7b452ea29bd33d3467269f9bef3715fb0"
url: "https://pub.dev"
source: hosted
version: "5.6.0"
dio_web_adapter:
dependency: transitive
description:
name: dio_web_adapter
sha256: "33259a9276d6cea88774a0000cfae0d861003497755969c92faa223108620dc8"
url: "https://pub.dev"
source: hosted
version: "2.0.0"
encrypt:
dependency: transitive
description:
name: encrypt
sha256: "62d9aa4670cc2a8798bab89b39fc71b6dfbacf615de6cf5001fb39f7e4a996a2"
url: "https://pub.dev"
source: hosted
version: "5.0.3"
fake_async:
dependency: transitive
description:
......@@ -113,6 +161,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.2"
file:
dependency: transitive
description:
name: file
sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c"
url: "https://pub.dev"
source: hosted
version: "7.0.0"
firebase_core:
dependency: "direct main"
description:
......@@ -161,6 +217,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.8.12"
fixnum:
dependency: transitive
description:
name: fixnum
sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1"
url: "https://pub.dev"
source: hosted
version: "1.1.0"
flutter:
dependency: "direct main"
description: flutter
......@@ -198,6 +262,54 @@ packages:
url: "https://pub.dev"
source: hosted
version: "7.2.0"
flutter_secure_storage:
dependency: "direct main"
description:
name: flutter_secure_storage
sha256: "165164745e6afb5c0e3e3fcc72a012fb9e58496fb26ffb92cf22e16a821e85d0"
url: "https://pub.dev"
source: hosted
version: "9.2.2"
flutter_secure_storage_linux:
dependency: transitive
description:
name: flutter_secure_storage_linux
sha256: "4d91bfc23047422cbcd73ac684bc169859ee766482517c22172c86596bf1464b"
url: "https://pub.dev"
source: hosted
version: "1.2.1"
flutter_secure_storage_macos:
dependency: transitive
description:
name: flutter_secure_storage_macos
sha256: "1693ab11121a5f925bbea0be725abfcfbbcf36c1e29e571f84a0c0f436147a81"
url: "https://pub.dev"
source: hosted
version: "3.1.2"
flutter_secure_storage_platform_interface:
dependency: transitive
description:
name: flutter_secure_storage_platform_interface
sha256: cf91ad32ce5adef6fba4d736a542baca9daf3beac4db2d04be350b87f69ac4a8
url: "https://pub.dev"
source: hosted
version: "1.1.2"
flutter_secure_storage_web:
dependency: transitive
description:
name: flutter_secure_storage_web
sha256: f4ebff989b4f07b2656fb16b47852c0aab9fed9b4ec1c70103368337bc1886a9
url: "https://pub.dev"
source: hosted
version: "1.2.1"
flutter_secure_storage_windows:
dependency: transitive
description:
name: flutter_secure_storage_windows
sha256: b20b07cb5ed4ed74fc567b78a72936203f587eba460af1df11281c9326cd3709
url: "https://pub.dev"
source: hosted
version: "3.1.2"
flutter_test:
dependency: "direct dev"
description: flutter
......@@ -216,14 +328,38 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
js:
fluttertoast:
dependency: "direct main"
description:
name: fluttertoast
sha256: "95f349437aeebe524ef7d6c9bde3e6b4772717cf46a0eb6a3ceaddc740b297cc"
url: "https://pub.dev"
source: hosted
version: "8.2.8"
get_it:
dependency: "direct main"
description:
name: get_it
sha256: d85128a5dae4ea777324730dc65edd9c9f43155c109d5cc0a69cab74139fbac1
url: "https://pub.dev"
source: hosted
version: "7.7.0"
http_parser:
dependency: transitive
description:
name: http_parser
sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
url: "https://pub.dev"
source: hosted
version: "4.0.2"
js:
dependency: "direct overridden"
description:
name: js
sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf
sha256: "4186c61b32f99e60f011f7160e32c89a758ae9b1d0c6d28e2c02ef0382300e2b"
url: "https://pub.dev"
source: hosted
version: "0.7.1"
version: "0.7.0"
json_annotation:
dependency: transitive
description:
......@@ -232,6 +368,30 @@ packages:
url: "https://pub.dev"
source: hosted
version: "4.9.0"
kakao_flutter_sdk_auth:
dependency: transitive
description:
name: kakao_flutter_sdk_auth
sha256: "409c99c2bffe58f3be9078e6d4b25f64c7a789ef72110d6b8951e3e88e65e06a"
url: "https://pub.dev"
source: hosted
version: "1.9.5"
kakao_flutter_sdk_common:
dependency: transitive
description:
name: kakao_flutter_sdk_common
sha256: "1bbfd232830732f92d5837de6f9085c678059f42f075f80433ae2986fe8ea598"
url: "https://pub.dev"
source: hosted
version: "1.9.5"
kakao_flutter_sdk_user:
dependency: "direct main"
description:
name: kakao_flutter_sdk_user
sha256: "17037c3b0d7812b5438bcd6a58907a28f7603e8615c3f5ce2b3f1f38129df800"
url: "https://pub.dev"
source: hosted
version: "1.9.5"
leak_tracker:
dependency: transitive
description:
......@@ -296,6 +456,54 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.9.0"
path_provider:
dependency: transitive
description:
name: path_provider
sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378
url: "https://pub.dev"
source: hosted
version: "2.1.4"
path_provider_android:
dependency: transitive
description:
name: path_provider_android
sha256: "6f01f8e37ec30b07bc424b4deabac37cacb1bc7e2e515ad74486039918a37eb7"
url: "https://pub.dev"
source: hosted
version: "2.2.10"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_foundation
sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16
url: "https://pub.dev"
source: hosted
version: "2.4.0"
path_provider_linux:
dependency: transitive
description:
name: path_provider_linux
sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279
url: "https://pub.dev"
source: hosted
version: "2.2.1"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7
url: "https://pub.dev"
source: hosted
version: "2.3.0"
pedantic:
dependency: transitive
description:
......@@ -360,6 +568,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "6.0.2"
platform:
dependency: transitive
description:
name: platform
sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65"
url: "https://pub.dev"
source: hosted
version: "3.1.5"
plugin_platform_interface:
dependency: transitive
description:
......@@ -368,6 +584,78 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.8"
pointycastle:
dependency: transitive
description:
name: pointycastle
sha256: "4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe"
url: "https://pub.dev"
source: hosted
version: "3.9.1"
pretty_dio_logger:
dependency: "direct main"
description:
name: pretty_dio_logger
sha256: "36f2101299786d567869493e2f5731de61ce130faa14679473b26905a92b6407"
url: "https://pub.dev"
source: hosted
version: "1.4.0"
shared_preferences:
dependency: transitive
description:
name: shared_preferences
sha256: "746e5369a43170c25816cc472ee016d3a66bc13fcf430c0bc41ad7b4b2922051"
url: "https://pub.dev"
source: hosted
version: "2.3.2"
shared_preferences_android:
dependency: transitive
description:
name: shared_preferences_android
sha256: a7e8467e9181cef109f601e3f65765685786c1a738a83d7fbbde377589c0d974
url: "https://pub.dev"
source: hosted
version: "2.3.1"
shared_preferences_foundation:
dependency: transitive
description:
name: shared_preferences_foundation
sha256: c4b35f6cb8f63c147312c054ce7c2254c8066745125264f0c88739c417fc9d9f
url: "https://pub.dev"
source: hosted
version: "2.5.2"
shared_preferences_linux:
dependency: transitive
description:
name: shared_preferences_linux
sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
shared_preferences_platform_interface:
dependency: transitive
description:
name: shared_preferences_platform_interface
sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
shared_preferences_web:
dependency: transitive
description:
name: shared_preferences_web
sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e
url: "https://pub.dev"
source: hosted
version: "2.4.2"
shared_preferences_windows:
dependency: transitive
description:
name: shared_preferences_windows
sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
sky_engine:
dependency: transitive
description: flutter
......@@ -405,6 +693,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.2.0"
sprintf:
dependency: transitive
description:
name: sprintf
sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23"
url: "https://pub.dev"
source: hosted
version: "7.0.0"
stack_trace:
dependency: transitive
description:
......@@ -453,6 +749,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.9.4"
typed_data:
dependency: transitive
description:
name: typed_data
sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
url: "https://pub.dev"
source: hosted
version: "1.3.2"
uuid:
dependency: "direct main"
description:
name: uuid
sha256: "83d37c7ad7aaf9aa8e275490669535c8080377cfa7a7004c24dfac53afffaa90"
url: "https://pub.dev"
source: hosted
version: "4.4.2"
vector_math:
dependency: transitive
description:
......@@ -477,6 +789,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.5.1"
win32:
dependency: transitive
description:
name: win32
sha256: "68d1e89a91ed61ad9c370f9f8b6effed9ae5e0ede22a270bdfa6daf79fc2290a"
url: "https://pub.dev"
source: hosted
version: "5.5.4"
xdg_directories:
dependency: transitive
description:
......@@ -495,4 +815,4 @@ packages:
version: "6.5.0"
sdks:
dart: ">=3.4.4 <4.0.0"
flutter: ">=3.18.0-18.0.pre.54"
flutter: ">=3.22.0"
......@@ -42,6 +42,24 @@ dependencies:
flutter_local_notifications: ^17.2.1+2
permission_handler: ^11.3.1
firebase_messaging: ^15.0.4
kakao_flutter_sdk_user: ^1.9.5 # 카카오 로그인 API 패키지
# inversion of control(service locator)
get_it: ^7.7.0
# network
dio: ^5.5.0+1
pretty_dio_logger: ^1.4.0
fluttertoast: ^8.2.8
uuid: ^4.4.2
# secure storage
flutter_secure_storage: ^9.2.2
dependency_overrides:
js: ">=0.6.3 < 0.7.1"
dev_dependencies:
flutter_test:
sdk: flutter
......
......@@ -8,6 +8,7 @@
#include <cloud_firestore/cloud_firestore_plugin_c_api.h>
#include <firebase_core/firebase_core_plugin_c_api.h>
#include <flutter_secure_storage_windows/flutter_secure_storage_windows_plugin.h>
#include <flutter_tts/flutter_tts_plugin.h>
#include <permission_handler_windows/permission_handler_windows_plugin.h>
......@@ -16,6 +17,8 @@ void RegisterPlugins(flutter::PluginRegistry* registry) {
registry->GetRegistrarForPlugin("CloudFirestorePluginCApi"));
FirebaseCorePluginCApiRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FirebaseCorePluginCApi"));
FlutterSecureStorageWindowsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin"));
FlutterTtsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FlutterTtsPlugin"));
PermissionHandlerWindowsPluginRegisterWithRegistrar(
......
......@@ -5,6 +5,7 @@
list(APPEND FLUTTER_PLUGIN_LIST
cloud_firestore
firebase_core
flutter_secure_storage_windows
flutter_tts
permission_handler_windows
)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment