The Webview Univeral Flutter package for Appeto SDK.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 
 
 

50 lignes
1.3 KiB

  1. //
  2. // Created by yangbin on 2021/11/12.
  3. //
  4. #include <windows.h>
  5. #include "flutter_view.h"
  6. #include <iostream>
  7. #include "utils.h"
  8. #include "message_channel_plugin.h"
  9. namespace webview_window {
  10. FlutterView::FlutterView(std::vector<std::string> arguments) {
  11. flutter::DartProject project(L"data");
  12. project.set_dart_entrypoint_arguments(std::move(arguments));
  13. // The size here must match the window dimensions to avoid unnecessary surface
  14. // creation / destruction in the startup path.
  15. flutter_controller_ = std::make_unique<flutter::FlutterViewController>(0, 0, project);
  16. // Ensure that basic setup of the controller was successful.
  17. if (!flutter_controller_->engine() || !flutter_controller_->view()) {
  18. std::cerr << "Failed to setup Flutter engine." << std::endl;
  19. return;
  20. }
  21. RegisterClientMessageChannelPlugin(flutter_controller_->engine()->GetRegistrarForPlugin("WebviewUniversalPlugin"));
  22. }
  23. FlutterView::~FlutterView() {
  24. if (flutter_controller_) {
  25. flutter_controller_ = nullptr;
  26. }
  27. }
  28. std::optional<LRESULT> FlutterView::HandleTopLevelWindowProc(HWND hwnd, UINT message, WPARAM w_param, LPARAM l_param) {
  29. return flutter_controller_->HandleTopLevelWindowProc(hwnd, message, w_param, l_param);
  30. }
  31. void FlutterView::ReloadSystemFonts() {
  32. flutter_controller_->engine()->ReloadSystemFonts();
  33. }
  34. void FlutterView::ForceRedraw() {
  35. }
  36. }