localServer.dart 991 B

1234567891011121314151617181920212223242526272829303132333435
  1. import 'dart:io';
  2. import 'package:flutter/foundation.dart';
  3. import 'package:flutter_inappwebview/flutter_inappwebview.dart';
  4. ///Single instance
  5. class LocalServer {
  6. final InAppLocalhostServer? _localhostServer;
  7. Future<void> startLocalServer() async {
  8. if (_localhostServer?.isRunning() == true) {
  9. HttpClient client = HttpClient();
  10. HttpClientRequest? request;
  11. try {
  12. request = await client.getUrl(Uri.parse('http://localhost:8080/'));
  13. } catch (error) {
  14. debugPrint(error.toString());
  15. }
  16. final response = await request?.close();
  17. client.close();
  18. if (response?.statusCode == 200) {
  19. return;
  20. }
  21. }
  22. await _localhostServer?.close();
  23. await _localhostServer?.start();
  24. }
  25. LocalServer._internal(this._localhostServer);
  26. factory LocalServer() => _instance;
  27. static late final LocalServer _instance =
  28. LocalServer._internal(InAppLocalhostServer());
  29. static LocalServer getInstance() => _instance;
  30. }