본문 바로가기

카테고리 없음

[Flutter] web에서 이모지(emoji)를 색상으로 바꾸는 법(흑백에서)

반응형

웹 이모지

Flutter 웹은 기본적으로 흑백 이모지가 적용됨

https://docs.flutter.dev/release/release-notes/release-notes-3.13.0

 

 

Flutter 3.10 릴리즈 노트 확인

기존 Noto Emoji 가 Noto Color Emoji 로 변경되어 있음

 

<!DOCTYPE html>
<html>
<head>
  <!--
    If you are serving your web app in a path other than the root, change the
    href value below to reflect the base path you are serving from.

    The path provided below has to start and end with a slash "/" in order for
    it to work correctly.

    For more details:
    * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base

    This is a placeholder for base href that will be replaced by the value of
    the `--base-href` argument provided to `flutter build`.
  -->
  <base href="$FLUTTER_BASE_HREF">

  <meta charset="UTF-8">
  <meta content="IE=Edge" http-equiv="X-UA-Compatible">
  <meta name="description" content="A new Flutter project.">

  <!-- iOS meta tags & icons -->
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <meta name="apple-mobile-web-app-title" content="namu">
  <link rel="apple-touch-icon" href="icons/Icon-192.png">

  <!-- Favicon -->
  <link rel="icon" type="image/png" href="favicon.png"/>

  <title>namu</title>
  <link rel="manifest" href="manifest.json">

  <script>
    // The value below is injected by flutter build, do not touch.
    const serviceWorkerVersion = null;
  </script>
  <!-- This script adds the flutter initialization JS code -->
  <script src="flutter.js" defer></script>
</head>
<body>
  <script>
    window.addEventListener('load', function(ev) {
      // Download main.dart.js
      _flutter.loader.loadEntrypoint({
        serviceWorker: {
          serviceWorkerVersion: serviceWorkerVersion,
        },
        onEntrypointLoaded: function(engineInitializer) {
         let config = {
              // uses Color Emoji font
              useColorEmoji: true,
            };
          engineInitializer.initializeEngine(config).then(function(appRunner) {
            appRunner.runApp();
          });
        }
      });
    });
  </script>
</body>
</html>

 

아래와 같이 코드를 수정

onEntrypointLoaded: function(engineInitializer) {
         let config = {
              // uses Color Emoji font
              useColorEmoji: true,
            };
          engineInitializer.initializeEngine(config).then(function(appRunner) {
            appRunner.runApp();
          });
        }

 

 

적용 방법

기본 설정을 수정할 수 있음
https://docs.flutter.dev/platform-integration/web/initialization

web/index.html에 컬러 이모지 설정 추가

 

 

적용 후

컬러로 잘 나옴.

위에서 아래와 같이 바뀝니다. 

새로 로딩시 잠시동안 깨진 글자로 보이는 이슈가 있긴하다.

반응형