GuidesAPI GuideChangelog
Log In
Guides

Flutter WebView Bridge 설정 가이드

Flutter 애플리케이션과 웹 콘텐츠 간의 통신을 구현하기 위해 webview_flutter 패키지를 사용하여 WebView와 브릿지 설정 방법을 설명합니다.

이 가이드는 WebView에서 JavaScript와 Flutter 간 메시지를 주고받는 기본적인 방법을 제공합니다.


패키지 추가

프로젝트의 pubspec.yaml 파일에 webview_flutter 패키지를 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  webview_flutter: ^3.0.0

명령어를 실행하여 패키지를 설치합니다:

flutter pub get

WebView 위젯 설정

Flutter에서 WebView를 구현하여 웹 페이지를 로드하고 JavaScript와 통신을 설정합니다.

샘플 코드

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';

class WebViewExample extends StatefulWidget {
  @override
  _WebViewExampleState createState() => _WebViewExampleState();
}

class _WebViewExampleState extends State<WebViewExample> {
  final Completer<WebViewController> _controller = Completer<WebViewController>();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('WebView Example'),
      ),
      body: WebView(
        initialUrl: 'https://yourwebsite.com',
        javascriptMode: JavascriptMode.unrestricted,
        onWebViewCreated: (WebViewController webViewController) {
          _controller.complete(webViewController);
        },
        javascriptChannels: <JavascriptChannel>{
          _createJavascriptChannel(),
        },
      ),
    );
  }

  JavascriptChannel _createJavascriptChannel() {
    return JavascriptChannel(
      name: 'FlutterBridge',
      onMessageReceived: (JavascriptMessage message) {
        print('Message received from web: ${message.message}');
      },
    );
  }
}

웹 페이지에서 Flutter로 메시지 보내기

웹 페이지에서 Flutter로 메시지를 보내는 방법을 설명합니다. window.FlutterBridge.postMessage를 사용하여 WebView와 연결된 브릿지로 데이터를 보냅니다.

샘플 코드

웹 페이지 JavaScript입니다.

function sendMessageToFlutter(message) {
  if (window.FlutterBridge) {
    window.FlutterBridge.postMessage(message);
  }
}

예제 동작

  1. 위 JavaScript 함수는 웹 페이지에 포함됩니다.
  2. sendMessageToFlutter('Hello from Web!')를 호출하면 Flutter로 메시지가 전달됩니다.
  3. Flutter에서 메시지를 수신하고 로그로 출력합니다.

Flutter에서 웹 페이지로 메시지 보내기

Flutter에서 WebView 내 JavaScript로 메시지를 보냅니다. evaluateJavascript 메서드를 사용하여 JavaScript 코드를 실행할 수 있습니다.

샘플 코드

void sendMessageToWeb(WebViewController controller) async {
  final url = await controller.currentUrl();
  print('Current URL: $url');
  controller.evaluateJavascript("alert('This is a message from Flutter!')");
}

예제 동작

  1. sendMessageToWeb 함수가 호출되면, WebView에서 JavaScript로 alert 메시지가 실행됩니다.
  2. 웹 페이지에서 JavaScript를 통해 메시지를 받을 수 있습니다.

요약

  • webview_flutter 패키지를 사용하여 Flutter와 WebView 간 통신을 설정합니다.
  • JavaScript와 Flutter 간의 양방향 메시지 전송을 구현할 수 있습니다.
  • 웹 페이지에서 Flutter로 메시지를 보낼 때 JavascriptChannel을 활용합니다.
  • Flutter에서 웹 페이지로 메시지를 보낼 때 evaluateJavascript 메서드를 사용합니다.

추가 참고 자료


Did this page help you?
🏠 소스라이브 🎬 소스클립 🔗 소스링크 📢 소스애드
🧩 API 가이드
🆕 최근 업데이트
💬 도움이 더 필요하신가요?
메일로 문의 카카오톡 채널로 문의
담당자에게 문의하기

궁금한 점이나 불편했던 점을 남겨주시면 담당자가 확인 후 답변드릴게요.

가이드 챗봇
* AI를 활용해 답변해서 사실과 다를 수도 있어요. 더 궁금한 사항은 '담당자에게 문의하기'를 이용해주세요.
💡 궁금한 솔루션(예: 라이브, 링크 등)을 함께 적어주시면 더 정확한 답변을 받을 수 있어요.