Flutter Web Build에서의 오류 수정

2025. 6. 12. 23:48·IT 공부/Flutter
반응형

 

Flutter 웹 빌드를 계속해서 시도해보고 있는데 생각보다 웹에서의 제약조건이 많다.

아무렴.. Flutter는 모바일에서 주로 쓰일 목적으로 만들어졌는걸..ㅎㅎ

 

무튼 웹에서는 지원되지 않는 여러 메서드들이 있다.

 


 

1.  subscribeToTopic() 메서드 미지원

웹에서는 해당 메서드가 지원되지 않는다. 

이 메서드는 어떤 주제를 구독한 사용자들에게 전부 메시지를 보내는 메서드이다.

주로 많은 인원에게 메시지를 한 번에 보낼 때 유용하다.

 

파이어베이스와 연동이 되어있어야 사용이 가능한데 원래는 한글을 사용할 수 없었다고 한다.

그런데 찾아보니 오픈라이브러리를 만든사람이 있어서 데이터를 저장하고 불러올때마다 변환을 하면 한글도 사용이 가능하다.

 

 


 

2. 로컬 알림 미지원

웹에서는 로컬 알림 플러그인을 초기화하지 않는다. 따라서 웹에서는 브라우저 알림을 사용하도록 수정해야 한다.

이런 여러 설정을 바꿀 때마다 서버를 재시작해서 테스트를 이어가야한다.

 


 

3. Platform 클래스 미지원

웹에서는 dart:io의 Platform 클래스가 지원되지 않는다.

따라서 Platform.isAndroid와 같은 메서드는 사용이 불가하다.

 

아예 Platform 클래스 관련 명령어가 있기만 해도 오류가 난다 ..ㅋㅋ

 

그래서 아래와 같이 헬퍼를 구성해봤다.

import 'package:flutter/foundation.dart';
import 'dart:io' if (dart.library.html) 'dart:html' as io;

/// 플랫폼 판별 헬퍼
class PlatformHelper {
  static bool get isAndroid {
    if (kIsWeb) return false;
    try {
      return _getPlatform().isAndroid;
    } catch (e) {
      return false;
    }
  }

  static bool get isIOS {
    if (kIsWeb) return false;
    try {
      return _getPlatform().isIOS;
    } catch (e) {
      return false;
    }
  }

  static bool get isWeb => kIsWeb;

  static bool get isMobile => !kIsWeb;

  static String get operatingSystem {
    if (kIsWeb) return 'web';
    try {
      return _getPlatform().operatingSystem;
    } catch (e) {
      return 'unknown';
    }
  }

  static dynamic _getPlatform() {
    if (kIsWeb) {
      throw UnsupportedError('Platform is not available on web');
    }
    return io.Platform;
  }
}

 

웹에서는 dart:html만 임포트 되기때문에 Platform 클래스 자체가 없다.

dart:io는 임포트 자체가 안된다..ㅎ

웹이 아닐때에만 Platform 클래스에 접근하도록 설정했다.

웹빌드시에는 절대 Platform 클래스가 쓰이지 않도록 잘 설정해야한다.

그리고 앱에서는 dart:html 라이브러리를 임포트하지 못하기 때문에 이것도 분기설정을 잘해야 한다.


 

4. AndroidInAppWebViewController 미지원

Flutter 웹에서는 dart:io 라이브러리의 대부분이 지원되지 않는다.

 


 

5. FlutterBackgroundService 미지원

웹에서는 백그라운드 서비스가 필요없어서 이 기능도 건너뛰도록 설정하자.

 


 

6. AwesomeNotifications 미지원

AwesomeNotifications는 로컬/푸시 알림 기능을 쉽게 구현할 수 있도록 도와주는

오픈소스 알림 라이브러리이다. 이것도 미지원 ㅎ

반응형

'IT 공부 > Flutter' 카테고리의 다른 글

Flutter 웹빌드시 안정적인 초기화 설정을 위한 index.html 파일 설정  (0) 2025.06.19
KakaoCDN(Contents Delivery Network) 이미지 로드 안될때  (0) 2025.06.16
Flutter 웹에서 Firebase사용시 오류 해결법  (4) 2025.06.12
'IT 공부/Flutter' 카테고리의 다른 글
  • Flutter 웹빌드시 안정적인 초기화 설정을 위한 index.html 파일 설정
  • KakaoCDN(Contents Delivery Network) 이미지 로드 안될때
  • Flutter 웹에서 Firebase사용시 오류 해결법
청학동버블티
청학동버블티
인터넷 사용법, 컴퓨터 활용법, 스마트폰 활용법, 코딩정보 등 유용한 IT 정보들을 소개합니다.
  • 청학동버블티
    IT 기록
    청학동버블티
    • 전체보기 (32)
      • 개발일지 : 모멘톡(momentalk) (6)
      • IT 공부 (4)
        • CS (0)
        • Flutter (4)
        • Dart (0)
      • 내일배움캠프 (Flutter 5기) (20)
        • Dart (1)
        • Flutter (10)
      • ETC (1)
        • 리뷰 (1)
        • 메모장 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
청학동버블티
Flutter Web Build에서의 오류 수정
상단으로

티스토리툴바