getx
getx copied to clipboard
Support to Flutter web WASM
Context: The unavailable library 'dart:html' is imported through these packages:
in this package uses the dart:HTML not valid to use with flutter web wasm
+1 We need upgrade to Flutter 3.22 and compile to Wasm
the workaround is modify the get_utils/src/platform/platform_web.dart in the package
change import 'dart:html' as html; to import 'package:web/web.dart' as html;
Hope this will be fixed soon
+1 Still, the support for Flutter wasm is not there yet
I had to do a horrible hack to work around this issue, posting it here incase anyone else needs this until it's fixed
sed -i 's|import '\''dart:html'\'' as html;|import '\''package:web/web.dart'\'' as html;|g' $HOME/.pub-cache/hosted/pub.dev/get-4.6.6/lib/get_utils/src/platform/platform_web.dart
any new about support to wasm I haves this error:
get-4.6.6/lib/get_utils/src/platform/platform_web.dart:7:1: Error: Type 'html.Navigator' not found. html.Navigator _navigator = html.window.navigator; ^^^^^^^^^^^^^^ ../../../../.pub-cache/hosted/pub.dev/get-4.6.6/lib/get_utils/src/platform/platform_web.dart:7:6: Error: 'Navigator' isn't a type. html.Navigator _navigator = html.window.navigator; ^^^^^^^^^ ../../../../.pub-cache/hosted/pub.dev/get-4.6.6/lib/get_utils/src/platform/platform_web.dart:7:34: Error: Undefined name 'window'. html.Navigator _navigator = html.window.navigator; ^^^^^^
Got same error @JgomesAT
with the release candiate 5 the problme is solved
I have errors with release-candidate-9.2
/AppData/Local/Pub/Cache/hosted/pub.dev/get-5.0.0-release-candidate-9.2/lib/get_connect/sockets/src/sockets_html.dart:4:8: Error: Dart library 'dart:html' is not available on this platform. import 'dart:html'; ^ Context: The unavailable library 'dart:html' is imported through these packages:
main.dart => package:trainchess => package:get => dart:html
Detailed import paths for (some of) the these imports:
main.dart => package:trainchess/main.dart => package:get/get.dart => package:get/get_connect/connect.dart => package:get/get_connect/sockets/sockets.dart => package:get/get_connect/sockets/src/sockets_html.dart => dart:html
main.dart => package:trainchess/main.dart => package:trainchess/src/features/chess/controller/game_list_controller.dart => package:get/get.dart => package:get/get_connect/connect.dart =>
package:get/get_connect/sockets/sockets.dart => package:get/get_connect/sockets/src/sockets_html.dart => dart:html
main.dart => package:trainchess/main.dart => package:trainchess/src/features/chess/controller/game_list_controller.dart => package:trainchess/src/features/chess/controller/base_chess_controller.dart => package:get/get.dart =>
package:get/get_connect/connect.dart => package:get/get_connect/sockets/sockets.dart => package:get/get_connect/sockets/src/sockets_html.dart => dart:html
main.dart => package:trainchess/main.dart => package:trainchess/src/features/chess/controller/game_loader_controller.dart => package:get/get.dart => package:get/get_connect/connect.dart =>
package:get/get_connect/sockets/sockets.dart => package:get/get_connect/sockets/src/sockets_html.dart => dart:html
main.dart => package:trainchess/main.dart => package:trainchess/src/features/chess/controller/game_loader_controller.dart => package:trainchess/src/features/chess/controller/game_list_controller.dart => package:get/get.dart =>
package:get/get_connect/connect.dart => package:get/get_connect/sockets/sockets.dart => package:get/get_connect/sockets/src/sockets_html.dart => dart:html
main.dart => package:trainchess/main.dart => package:trainchess/src/features/chess/controller/game_loader_controller.dart => package:trainchess/src/features/chess/controller/game_list_controller.dart =>
package:trainchess/src/features/chess/controller/base_chess_controller.dart => package:get/get.dart => package:get/get_connect/connect.dart => package:get/get_connect/sockets/sockets.dart =>
package:get/get_connect/sockets/src/sockets_html.dart => dart:html
main.dart => package:trainchess/main.dart => package:trainchess/src/features/chess/controller/game_loader_controller.dart => package:trainchess/src/features/pgn/file_picker_service.dart => package:get/get.dart =>
package:get/get_connect/connect.dart => package:get/get_connect/sockets/sockets.dart => package:get/get_connect/sockets/src/sockets_html.dart => dart:html
main.dart => package:trainchess/main.dart => package:trainchess/src/features/chess/controller/train_controller.dart => package:get/get.dart => package:get/get_connect/connect.dart => package:get/get_connect/sockets/sockets.dart =>
package:get/get_connect/sockets/src/sockets_html.dart => dart:html
main.dart => package:trainchess/main.dart => package:trainchess/src/features/pgn/file_picker_service.dart => package:get/get.dart => package:get/get_connect/connect.dart => package:get/get_connect/sockets/sockets.dart =>
package:get/get_connect/sockets/src/sockets_html.dart => dart:html
main.dart => package:trainchess/main.dart => package:trainchess/src/navigation/app_pages.dart => package:get/get.dart => package:get/get_connect/connect.dart => package:get/get_connect/sockets/sockets.dart =>
package:get/get_connect/sockets/src/sockets_html.dart => dart:html
main.dart => package:trainchess/main.dart => package:trainchess/src/navigation/app_pages.dart => package:trainchess/src/navigation/main_scaffold.dart => package:get/get.dart => package:get/get_connect/connect.dart =>
package:get/get_connect/sockets/sockets.dart => package:get/get_connect/sockets/src/sockets_html.dart => dart:html
main.dart => package:trainchess/main.dart => package:trainchess/src/navigation/app_pages.dart => package:trainchess/src/navigation/main_scaffold.dart => package:trainchess/src/features/chess/controller/game_loader_controller.dart
=> package:get/get.dart => package:get/get_connect/connect.dart => package:get/get_connect/sockets/sockets.dart => package:get/get_connect/sockets/src/sockets_html.dart => dart:html
main.dart => package:trainchess/main.dart => package:trainchess/src/navigation/app_pages.dart => package:trainchess/src/navigation/main_scaffold.dart => package:trainchess/src/features/chess/controller/game_loader_controller.dart
=> package:trainchess/src/features/chess/controller/game_list_controller.dart => package:get/get.dart => package:get/get_connect/connect.dart => package:get/get_connect/sockets/sockets.dart =>
package:get/get_connect/sockets/src/sockets_html.dart => dart:html
main.dart => package:trainchess/main.dart => package:trainchess/src/navigation/app_pages.dart => package:trainchess/src/navigation/main_scaffold.dart => package:trainchess/src/features/chess/controller/game_loader_controller.dart
=> package:trainchess/src/features/chess/controller/game_list_controller.dart => package:trainchess/src/features/chess/controller/base_chess_controller.dart => package:get/get.dart => package:get/get_connect/connect.dart =>
package:get/get_connect/sockets/sockets.dart => package:get/get_connect/sockets/src/sockets_html.dart => dart:html
main.dart => package:trainchess/main.dart => package:trainchess/src/navigation/app_pages.dart => package:trainchess/src/navigation/main_scaffold.dart => package:trainchess/src/features/chess/controller/game_loader_controller.dart
=> package:trainchess/src/features/pgn/file_picker_service.dart => package:get/get.dart => package:get/get_connect/connect.dart => package:get/get_connect/sockets/sockets.dart =>
package:get/get_connect/sockets/src/sockets_html.dart => dart:html
main.dart => package:trainchess/main.dart => package:trainchess/src/navigation/app_pages.dart => package:trainchess/src/navigation/main_scaffold.dart => package:trainchess/src/navigation/side_bar.dart => package:get/get.dart =>
package:get/get_connect/connect.dart => package:get/get_connect/sockets/sockets.dart => package:get/get_connect/sockets/src/sockets_html.dart => dart:html
main.dart => package:trainchess/main.dart => package:trainchess/src/navigation/app_pages.dart => package:trainchess/src/navigation/main_scaffold.dart => package:trainchess/src/navigation/side_bar.dart =>
package:trainchess/src/authentication/edit_profile_dialog.dart => package:get/get.dart => package:get/get_connect/connect.dart => package:get/get_connect/sockets/sockets.dart =>
package:get/get_connect/sockets/src/sockets_html.dart => dart:html
main.dart => package:trainchess/main.dart => package:trainchess/src/navigation/app_pages.dart => package:trainchess/src/navigation/main_scaffold.dart => package:trainchess/src/navigation/side_bar.dart =>
package:trainchess/src/authentication/edit_profile_dialog.dart => package:trainchess/src/authentication/auth_controller.dart => package:get/get.dart => package:get/get_connect/connect.dart =>
package:get/get_connect/sockets/sockets.dart => package:get/get_connect/sockets/src/sockets_html.dart => dart:html
main.dart => package:trainchess/main.dart => package:trainchess/src/navigation/app_pages.dart => package:trainchess/src/navigation/main_scaffold.dart => package:trainchess/src/navigation/side_bar.dart =>
package:trainchess/src/authentication/login_dialog.dart => package:get/get.dart => package:get/get_connect/connect.dart => package:get/get_connect/sockets/sockets.dart => package:get/get_connect/sockets/src/sockets_html.dart =>
dart:html
main.dart => package:trainchess/main.dart => package:trainchess/src/navigation/app_pages.dart => package:trainchess/src/navigation/main_scaffold.dart => package:trainchess/src/navigation/side_bar.dart =>
package:trainchess/src/authentication/login_dialog.dart => package:trainchess/src/authentication/auth_controller.dart => package:get/get.dart => package:get/get_connect/connect.dart => package:get/get_connect/sockets/sockets.dart
=> package:get/get_connect/sockets/src/sockets_html.dart => dart:html
main.dart => package:trainchess/main.dart => package:trainchess/src/navigation/app_pages.dart => package:trainchess/src/navigation/main_scaffold.dart => package:trainchess/src/navigation/side_bar.dart =>
package:trainchess/src/authentication/auth_controller.dart => package:get/get.dart => package:get/get_connect/connect.dart => package:get/get_connect/sockets/sockets.dart => package:get/get_connect/sockets/src/sockets_html.dart =>
dart:html
...
I have the same erro with candidate 9.2
/get-5.0.0-release-candidate-9.2/lib/get_connect/sockets/src/sockets_html.dart:4:8: Error: Dart library 'dart:html' is not available on this platform. import 'dart:html';
../../../../.pub-cache/hosted/pub.dev/get-5.0.0-release-candidate-9.2/lib/get_connect/sockets/src/sockets_html.dart:11:3: Error: Type 'WebSocket' not found. WebSocket? socket; ^^^^^^^^^ ../../../../.pub-cache/hosted/pub.dev/get-5.0.0-release-candidate-9.2/lib/get_connect/sockets/src/sockets_html.dart:11:3: Error: 'WebSocket' isn't a type. WebSocket? socket; ^^^^^^^^^ ../../../../.pub-cache/hosted/pub.dev/get-5.0.0-release-candidate-9.2/lib/get_connect/sockets/src/sockets_html.dart:37:16: Error: The method 'WebSocket' isn't defined for the class 'BaseWebSocket'.
- 'BaseWebSocket' is from 'package:get/get_connect/sockets/src/sockets_html.dart' ('../../../../.pub-cache/hosted/pub.dev/get-5.0.0-release-candidate-9.2/lib/get_connect/sockets/src/sockets_html.dart'). Try correcting the name to the name of an existing method, or defining a method named 'WebSocket'. socket = WebSocket(url); ^^^^^^^^^ ../../../../.pub-cache/hosted/pub.dev/get-5.0.0-release-candidate-9.2/lib/get_connect/sockets/src/sockets_html.dart:104:49: Error: The getter 'WebSocket' isn't defined for the class 'BaseWebSocket'.
- 'BaseWebSocket' is from 'package:get/get_connect/sockets/src/sockets_html.dart' ('../../../../.pub-cache/hosted/pub.dev/get-5.0.0-release-candidate-9.2/lib/get_connect/sockets/src/sockets_html.dart'). Try correcting the name to the name of an existing getter, or defining a getter or field named 'WebSocket'. if (socket != null && socket!.readyState == WebSocket.OPEN) { ^^^^^^^^^ Command: /Users/jorgegomes/Development/Flutter2_SDK/flutter/bin/cache/dart-sdk/bin/dart compile wasm --packages=.dart_tool/package_config.json --extra-compiler-option=--platform=/Users/jorgegomes/Development/Flutter2_SDK/flutter/bin/cache/flutter_web_sdk/kernel/dart2wasm_platform.dill --extra-compiler-option=--delete-tostring-package-uri=dart:ui --extra-compiler-option=--delete-tostring-package-uri=package:flutter --extra-compiler-option=--import-shared-memory --extra-compiler-option=--shared-memory-max-pages=32768 -Ddart.vm.product=true -DFLUTTER_WEB_AUTO_DETECT=false -DFLUTTER_WEB_USE_SKIA=false -DFLUTTER_WEB_USE_SKWASM=true -DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/c9b9d5780da342eb3f0f5e439a7db06f7d112575/
With the previous version 5.0.0-release-candidate-9 works fine
Hi @jonataslaw, could you please fix this for the next release candidate? It is really urgent for our project.
Thanks,
../../../../.pub-cache/hosted/pub.dev/get-5.0.0-release-candidate-9.2/lib/get_connect/sockets/src/sockets_html.dart:11:3: Error: Type 'WebSocket' not
Fixed in latest RC, thank you for reporting this!