kakao / kakao_flutter_sdk

Flutter SDK for Kakao Open API
Apache License 2.0
192 stars 71 forks source link

Fix: Replace `dart:io` with `dart:ui` in `LocalizationOptions` to support web environments #198

Closed suojae closed 3 days ago

suojae commented 3 days ago

설명 (Description)

LocalizationOptions 클래스에서 dart:ui를 사용하여 웹 환경에서 동작하지 않던 문제를 해결했습니다.
Platform.localeName 대신 PlatformDispatcher.instance.locale.languageCode를 사용하여 웹을 포함한 모든 플랫폼에서 일관된 동작을 보장합니다.

해당 변경으로 인해 LocalizationOptions 클래스가 모든 Flutter 플랫폼(Android, iOS, Web, Desktop)에서 호환됩니다.


관련 이슈 (Related Issues)


체크리스트 (Checklist)

Korean

English


참고 스크린샷 및 추가 정보 (Screenshots and Additional Information)

관련 문서: https://api.flutter.dev/flutter/dart-io/dart-io-library.html https://api.flutter.dev/flutter/dart-ui/Locale-class.html

dart:io // Important: Browser-based apps can't use this library. Only the following can import and use the dart:io library:

테스트 코드 통과 결과:

관련 테스트 코드:

void main() {
  TestWidgetsFlutterBinding.ensureInitialized();

  group('LocalizationOptions Web Tests', () {
    void setWebLocale(Locale locale) {
      TestWidgetsFlutterBinding.instance.platformDispatcher.localesTestValue = [locale];
    }

    test('Returns English options by default when locale is unsupported (Web)', () {
      setWebLocale(const Locale('xx'));
      final options = LocalizationOptions.getLocalizationOptions();
      expect(options.languageCode, 'en');
      expect(options.pickerTitle, 'Select Friend(s)');
      expect(options.confirm, 'OK');
    });
  });
}
CLAassistant commented 3 days ago

CLA assistant check
All committers have signed the CLA.