| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import 'dart:io';
- import 'dart:typed_data';
- import 'package:dsbridge_flutter/dsbridge_flutter.dart';
- import 'package:electronic_assistant/base/base_controller.dart';
- import 'package:electronic_assistant/module/talk/mindview/js_api.dart';
- import 'package:webview_flutter/webview_flutter.dart';
- import 'package:webview_flutter_wkwebview/webview_flutter_wkwebview.dart';
- import 'package:path_provider/path_provider.dart';
- class MindViewController extends BaseController {
- late final DWebViewController webViewController;
- @override
- void onInit() {
- super.onInit();
- late final PlatformWebViewControllerCreationParams params;
- if (WebViewPlatform.instance is WebKitWebViewPlatform) {
- params = WebKitWebViewControllerCreationParams(
- allowsInlineMediaPlayback: true,
- mediaTypesRequiringUserAction: const <PlaybackMediaTypes>{},
- );
- } else {
- params = const PlatformWebViewControllerCreationParams();
- }
- webViewController = DWebViewController.fromPlatformCreationParams(params);
- webViewController.setJavaScriptMode(JavaScriptMode.unrestricted);
- webViewController.enableZoom(false);
- webViewController.loadRequest(Uri.parse('http://192.168.10.144:9528'));
- Future.delayed(const Duration(seconds: 3), () {
- webViewController.callHandler(JsMindApi.functionToJsExport,
- args: ['test'], handler: (value) {
- saveToFile(value);
- });
- });
- }
- Future<void> saveToFile(dynamic data) async {
- Uint8List? bytes = convertMapToUint8List(data);
- if (bytes == null) {
- return;
- }
- final directory = await getApplicationDocumentsDirectory();
- final file = File('${directory.path}/output_file.png');
- await file.writeAsBytes(bytes);
- }
- Uint8List? convertMapToUint8List(dynamic map) {
- if (map is Map) {
- final value = map.values.toList().cast<int>();
- return Uint8List.fromList(value);
- }
- return null;
- }
- @override
- void onReady() {
- super.onReady();
- }
- }
|