function executeJavascript() { return "Execute JavaScript." } function sendFlutterApp() { flutterJavaScript.postMessage("Post message from JavaScript.");
flutter-web/flutterjs.html at main · MymyserDemo/flutter-web
flutter web interface. Contribute to MymyserDemo/flutter-web development by creating an account on GitHub.
flutter-web/main.dart at main · MymyserDemo/flutter-web
flutter web interface. Contribute to MymyserDemo/flutter-web development by creating an account on GitHub.
import 'package:flutter/material.dart'; import 'package:webview_flutter/webview_flutter.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Javascript Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: const MyHomePage(title: 'Flutter Javascript Demo Home Page'), ); } } class MyHomePage extends StatefulWidget { const MyHomePage({Key? key, required this.title}) : super(key: key); final String title; @override State<MyHomePage> createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { late WebViewController _controller; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: WebView( onWebViewCreated: (WebViewController webViewController) async { _controller = webViewController; // 生成されたWebViewController情報を取得する }, initialUrl: 'https://mymyser.com/flutterjs.html', javascriptMode: JavascriptMode.unrestricted, javascriptChannels: { JavascriptChannel( name: 'flutterJavaScript', onMessageReceived: (result) async { print(result.message); }, ) }, ), floatingActionButton: FloatingActionButton( onPressed: _executeJavascript, ), ); } Future<void> _executeJavascript() async { String result = await _controller.runJavascriptReturningResult('executeJavascript()'); print(result); } }