From 04789819fd7d6e0188f3eb7618643dcc49d40b33 Mon Sep 17 00:00:00 2001 From: Seungsoo Lee Date: Wed, 4 Jun 2025 16:52:13 +0900 Subject: [PATCH 1/3] [webview_flutter] Add support for mouse events In addition to existing touch events, support for mouse events is added. By default, the up/down/move input of a physical mouse will trigger touch events. --- .../webview_flutter/tizen/project_def.prop | 2 +- .../tizen/src/ewk_internal_api_binding.cc | 19 ++++- .../tizen/src/ewk_internal_api_binding.h | 26 +++++++ packages/webview_flutter/tizen/src/webview.cc | 72 ++++++++++++++++--- packages/webview_flutter/tizen/src/webview.h | 6 ++ 5 files changed, 115 insertions(+), 10 deletions(-) diff --git a/packages/webview_flutter/tizen/project_def.prop b/packages/webview_flutter/tizen/project_def.prop index e8884e080..64b00196a 100644 --- a/packages/webview_flutter/tizen/project_def.prop +++ b/packages/webview_flutter/tizen/project_def.prop @@ -11,7 +11,7 @@ USER_SRCS += src/*.cc # User defines USER_DEFS = USER_UNDEFS = -USER_CPP_DEFS = FLUTTER_PLUGIN_IMPL +USER_CPP_DEFS = FLUTTER_PLUGIN_IMPL EWK_TOUCH_EVENTS_ENABLED USER_CPP_UNDEFS = # User includes diff --git a/packages/webview_flutter/tizen/src/ewk_internal_api_binding.cc b/packages/webview_flutter/tizen/src/ewk_internal_api_binding.cc index 021826d10..3e35a5ae0 100644 --- a/packages/webview_flutter/tizen/src/ewk_internal_api_binding.cc +++ b/packages/webview_flutter/tizen/src/ewk_internal_api_binding.cc @@ -24,8 +24,22 @@ bool EwkInternalApiBinding::Initialize() { // ewk_view view.SetBackgroundColor = reinterpret_cast( dlsym(handle_, "ewk_view_bg_color_set")); + view.TouchEventsEnabledSet = + reinterpret_cast( + dlsym(handle_, "ewk_view_mouse_events_enabled_set")); view.FeedTouchEvent = reinterpret_cast( dlsym(handle_, "ewk_view_feed_touch_event")); + view.MouseEventsEnabledSet = + reinterpret_cast( + dlsym(handle_, "ewk_view_mouse_events_enabled_set")); + view.FeedMouseDown = reinterpret_cast( + dlsym(handle_, "ewk_view_feed_mouse_down")); + view.FeedMouseUp = reinterpret_cast( + dlsym(handle_, "ewk_view_feed_mouse_up")); + view.FeedMouseMove = reinterpret_cast( + dlsym(handle_, "ewk_view_feed_mouse_move")); + view.FeedMouseWheel = reinterpret_cast( + dlsym(handle_, "ewk_view_feed_mouse_wheel")); view.SendKeyEvent = reinterpret_cast( dlsym(handle_, "ewk_view_send_key_event")); view.OffscreenRenderingEnabledSet = @@ -82,7 +96,10 @@ bool EwkInternalApiBinding::Initialize() { console_message.SourceGet = reinterpret_cast( dlsym(handle_, "ewk_console_message_source_get")); - return view.SetBackgroundColor && view.FeedTouchEvent && view.SendKeyEvent && + return view.SetBackgroundColor && view.TouchEventsEnabledSet && + view.FeedTouchEvent && view.MouseEventsEnabledSet && + view.FeedMouseDown && view.FeedMouseUp && view.FeedMouseMove && + view.FeedMouseWheel && view.SendKeyEvent && view.OffscreenRenderingEnabledSet && view.ImeWindowSet && view.KeyEventsEnabledSet && view.SupportVideoHoleSet && view.OnJavaScriptAlert && view.OnJavaScriptConfirm && diff --git a/packages/webview_flutter/tizen/src/ewk_internal_api_binding.h b/packages/webview_flutter/tizen/src/ewk_internal_api_binding.h index 13943cbe5..13dda745c 100644 --- a/packages/webview_flutter/tizen/src/ewk_internal_api_binding.h +++ b/packages/webview_flutter/tizen/src/ewk_internal_api_binding.h @@ -16,6 +16,12 @@ typedef enum { typedef struct _Ewk_Touch_Point Ewk_Touch_Point; +typedef enum { + EWK_Mouse_Button_Left = 1, + EWK_Mouse_Button_Middle = 2, + EWK_Mouse_Button_Right = 3 +} Ewk_Mouse_Button_Type; + struct _Ewk_Touch_Point { int id; int x; @@ -35,10 +41,24 @@ typedef Eina_Bool (*Ewk_View_JavaScript_Prompt_Callback)( typedef Eina_Bool (*EwkViewBgColorSetFnPtr)(Evas_Object* obj, int r, int g, int b, int a); +typedef Eina_Bool (*EwkViewTouchEventsEnabledSetFnPtr)(Evas_Object* view, + Eina_Bool enabled); typedef Eina_Bool (*EwkViewFeedTouchEventFnPtr)(Evas_Object* obj, Ewk_Touch_Event_Type type, const Eina_List* points, const Evas_Modifier* modifiers); +typedef Eina_Bool (*EwkViewMouseEventsEnabledSetFnPtr)(Evas_Object* view, + Eina_Bool enabled); +typedef Eina_Bool (*EwkViewFeedMouseDownFnPtr)(Evas_Object* obj, + Ewk_Mouse_Button_Type button, + int x, int y); +typedef Eina_Bool (*EwkViewFeedMouseUpFnPtr)(Evas_Object* obj, + Ewk_Mouse_Button_Type button, + int x, int y); +typedef Eina_Bool (*EwkViewFeedMouseMoveFnPtr)(Evas_Object* obj, int x, int y); +typedef Eina_Bool (*EwkViewFeedMouseWheelFnPtr)(Evas_Object* obj, + Eina_Bool y_direction, int step, + int x, int y); typedef Eina_Bool (*EwkViewSendKeyEventFnPtr)(Evas_Object* obj, void* key_event, Eina_Bool is_press); typedef void (*EwkViewOffscreenRenderingEnabledSetFnPtr)(Evas_Object* obj, @@ -67,7 +87,13 @@ typedef void (*EwkViewJavaScriptPromptReplyFnPtr)(Evas_Object* o, typedef struct { EwkViewBgColorSetFnPtr SetBackgroundColor = nullptr; + EwkViewTouchEventsEnabledSetFnPtr TouchEventsEnabledSet = nullptr; EwkViewFeedTouchEventFnPtr FeedTouchEvent = nullptr; + EwkViewMouseEventsEnabledSetFnPtr MouseEventsEnabledSet = nullptr; + EwkViewFeedMouseDownFnPtr FeedMouseDown = nullptr; + EwkViewFeedMouseUpFnPtr FeedMouseUp = nullptr; + EwkViewFeedMouseMoveFnPtr FeedMouseMove = nullptr; + EwkViewFeedMouseWheelFnPtr FeedMouseWheel = nullptr; EwkViewSendKeyEventFnPtr SendKeyEvent = nullptr; EwkViewOffscreenRenderingEnabledSetFnPtr OffscreenRenderingEnabledSet = nullptr; diff --git a/packages/webview_flutter/tizen/src/webview.cc b/packages/webview_flutter/tizen/src/webview.cc index 0b172a3b5..54edcb8f7 100644 --- a/packages/webview_flutter/tizen/src/webview.cc +++ b/packages/webview_flutter/tizen/src/webview.cc @@ -225,6 +225,18 @@ void WebView::Resize(double width, double height) { void WebView::Touch(int type, int button, double x, double y, double dx, double dy) { +#ifdef EWK_TOUCH_EVENTS_ENABLED + SendTouchEvent(type, x, y); +#else + if (dx == 0 && dy == 0) { + SendMouseEvent(type, button, x, y, dx, dy); + } else { + SendMouseWheelEvent(true, dy, x, y); + } +#endif +} + +void WebView::SendTouchEvent(int type, double x, double y) { Ewk_Touch_Event_Type mouse_event_type = EWK_TOUCH_START; Evas_Touch_Point_State state = EVAS_TOUCH_POINT_DOWN; if (type == 0) { // down event @@ -253,6 +265,45 @@ void WebView::Touch(int type, int button, double x, double y, double dx, eina_list_free(points); } +void WebView::SendMouseEvent(int type, int button, double x, double y, + double dx, double dy) { + Ewk_Mouse_Button_Type button_type = (Ewk_Mouse_Button_Type)0; + switch (button) { + case 1: + button_type = EWK_Mouse_Button_Left; + break; + case 2: + button_type = EWK_Mouse_Button_Middle; + break; + case 3: + button_type = EWK_Mouse_Button_Right; + break; + } + + int px = x + left_; + int py = y + top_; + if (type == 0) { // down event + button_type_ |= button_type; + EwkInternalApiBinding::GetInstance().view.FeedMouseDown( + webview_instance_, (Ewk_Mouse_Button_Type)button_type_, px, py); + } else if (type == 1) { // move event + EwkInternalApiBinding::GetInstance().view.FeedMouseMove(webview_instance_, + px, py); + } else if (type == 2) { // up event + button_type_ & ~button_type; + EwkInternalApiBinding::GetInstance().view.FeedMouseUp( + webview_instance_, (Ewk_Mouse_Button_Type)button_type_, px, py); + } else { + LOG_WARN("Unknown touch event type: %d", type); + } +} + +void WebView::SendMouseWheelEvent(bool yDirection, int step, double x, + double y) { + EwkInternalApiBinding::GetInstance().view.FeedMouseWheel( + webview_instance_, yDirection, step >= 0 ? 1 : -1, x, y); +} + bool WebView::SendKey(const char* key, const char* string, const char* compose, uint32_t modifiers, uint32_t scan_code, bool is_down) { if (!IsFocused()) { @@ -307,13 +358,13 @@ bool WebView::InitWebView() { chromium_argv); // TODO(jsuya): ewk_init() and ewk_shutdown() are designed to be called only - // once in a process.(If ewk_init() is called after ewk_shutdown() is called, - // SIGTRAP is called internally.) ewk_init() initializes the efl modules and - // web engine's arguments data. The efl modules are initialized by default in - // OS, and arguments data is also initialized through SetArguments() API, so - // calling ewk_init() is not necessary. Therefore, temporarily comment out - // ewk_init() and ewk_shutdown(). It can be reverted depending on updates to - // chromium-efl. + // once in a process.(If ewk_init() is called after ewk_shutdown() is + // called, SIGTRAP is called internally.) ewk_init() initializes the efl + // modules and web engine's arguments data. The efl modules are initialized + // by default in OS, and arguments data is also initialized through + // SetArguments() API, so calling ewk_init() is not necessary. Therefore, + // temporarily comment out ewk_init() and ewk_shutdown(). It can be reverted + // depending on updates to chromium-efl. // ewk_init(); Ecore_Evas* evas = ecore_evas_new("wayland_egl", 0, 0, 1, 1, 0); @@ -342,6 +393,10 @@ bool WebView::InitWebView() { window_); EwkInternalApiBinding::GetInstance().view.KeyEventsEnabledSet( webview_instance_, true); + EwkInternalApiBinding::GetInstance().view.TouchEventsEnabledSet( + webview_instance_, true); + EwkInternalApiBinding::GetInstance().view.MouseEventsEnabledSet( + webview_instance_, true); EwkInternalApiBinding::GetInstance().view.OnJavaScriptAlert( webview_instance_, &WebView::OnJavaScriptAlertDialog, this); @@ -544,7 +599,8 @@ void WebView::HandleWebViewMethodCall(const FlMethodCall& method_call, } else if (method_name == "getScrollPosition") { int32_t x = 0, y = 0; // TODO(jsuya) : ewk_view_scroll_pos_get() returns the position set in - // ewk_view_scroll_set(). Therefore, it currently does not work as intended. + // ewk_view_scroll_set(). Therefore, it currently does not work as + // intended. ewk_view_scroll_pos_get(webview_instance_, &x, &y); flutter::EncodableMap args = { {flutter::EncodableValue("x"), diff --git a/packages/webview_flutter/tizen/src/webview.h b/packages/webview_flutter/tizen/src/webview.h index 648bbc018..b2daaeee7 100644 --- a/packages/webview_flutter/tizen/src/webview.h +++ b/packages/webview_flutter/tizen/src/webview.h @@ -92,6 +92,11 @@ class WebView : public PlatformView { const char* default_text, void* data); + void SendTouchEvent(int type, double x, double y); + void SendMouseEvent(int type, int button, double x, double y, double dx, + double dy); + void SendMouseWheelEvent(bool yDirection, int step, double x, double y); + Evas_Object* webview_instance_ = nullptr; flutter::TextureRegistrar* texture_registrar_; bool engine_policy_ = false; @@ -111,6 +116,7 @@ class WebView : public PlatformView { std::mutex mutex_; std::unique_ptr tbm_pool_; bool disposed_ = false; + int button_type_ = 0; // 0: none, 1: left, 2: right, 3: middle }; #endif // FLUTTER_PLUGIN_WEBVIEW_H_ From 9a412685f5f979306057443377269f14dbdbf3d8 Mon Sep 17 00:00:00 2001 From: Seungsoo Lee Date: Thu, 26 Jun 2025 11:28:57 +0900 Subject: [PATCH 2/3] Apply reviewer's comments --- .../webview_flutter/tizen/project_def.prop | 2 +- .../tizen/src/ewk_internal_api_binding.cc | 2 +- .../tizen/src/ewk_internal_api_binding.h | 6 +- packages/webview_flutter/tizen/src/webview.cc | 77 +++++++++---------- packages/webview_flutter/tizen/src/webview.h | 5 +- 5 files changed, 46 insertions(+), 46 deletions(-) diff --git a/packages/webview_flutter/tizen/project_def.prop b/packages/webview_flutter/tizen/project_def.prop index 64b00196a..ab6475aa6 100644 --- a/packages/webview_flutter/tizen/project_def.prop +++ b/packages/webview_flutter/tizen/project_def.prop @@ -11,7 +11,7 @@ USER_SRCS += src/*.cc # User defines USER_DEFS = USER_UNDEFS = -USER_CPP_DEFS = FLUTTER_PLUGIN_IMPL EWK_TOUCH_EVENTS_ENABLED +USER_CPP_DEFS = FLUTTER_PLUGIN_IMPL WEBVIEW_TIZEN_TOUCH_EVENTS_ENABLED USER_CPP_UNDEFS = # User includes diff --git a/packages/webview_flutter/tizen/src/ewk_internal_api_binding.cc b/packages/webview_flutter/tizen/src/ewk_internal_api_binding.cc index 3e35a5ae0..1d9e22d74 100644 --- a/packages/webview_flutter/tizen/src/ewk_internal_api_binding.cc +++ b/packages/webview_flutter/tizen/src/ewk_internal_api_binding.cc @@ -26,7 +26,7 @@ bool EwkInternalApiBinding::Initialize() { dlsym(handle_, "ewk_view_bg_color_set")); view.TouchEventsEnabledSet = reinterpret_cast( - dlsym(handle_, "ewk_view_mouse_events_enabled_set")); + dlsym(handle_, "ewk_view_touch_events_enabled_set")); view.FeedTouchEvent = reinterpret_cast( dlsym(handle_, "ewk_view_feed_touch_event")); view.MouseEventsEnabledSet = diff --git a/packages/webview_flutter/tizen/src/ewk_internal_api_binding.h b/packages/webview_flutter/tizen/src/ewk_internal_api_binding.h index 13dda745c..c0adea03c 100644 --- a/packages/webview_flutter/tizen/src/ewk_internal_api_binding.h +++ b/packages/webview_flutter/tizen/src/ewk_internal_api_binding.h @@ -17,9 +17,9 @@ typedef enum { typedef struct _Ewk_Touch_Point Ewk_Touch_Point; typedef enum { - EWK_Mouse_Button_Left = 1, - EWK_Mouse_Button_Middle = 2, - EWK_Mouse_Button_Right = 3 + EWK_MOUSE_BUTTON_LEFT = 1, + EWK_MOUSE_BUTTON_MIDDLE = 2, + EWK_MOUSE_BUTTON_RIGHT = 3 } Ewk_Mouse_Button_Type; struct _Ewk_Touch_Point { diff --git a/packages/webview_flutter/tizen/src/webview.cc b/packages/webview_flutter/tizen/src/webview.cc index 54edcb8f7..c143ff390 100644 --- a/packages/webview_flutter/tizen/src/webview.cc +++ b/packages/webview_flutter/tizen/src/webview.cc @@ -11,7 +11,6 @@ #include #include "buffer_pool.h" -#include "ewk_internal_api_binding.h" #include "log.h" #include "webview_factory.h" @@ -223,33 +222,29 @@ void WebView::Resize(double width, double height) { evas_object_resize(webview_instance_, width_, height_); } -void WebView::Touch(int type, int button, double x, double y, double dx, - double dy) { -#ifdef EWK_TOUCH_EVENTS_ENABLED - SendTouchEvent(type, x, y); +void WebView::Touch(int event_type, int button_type, double x, double y, + double dx, double dy) { +#ifdef WEBVIEW_TIZEN_TOUCH_EVENTS_ENABLED + SendTouchEvent(event_type, x, y); #else - if (dx == 0 && dy == 0) { - SendMouseEvent(type, button, x, y, dx, dy); - } else { - SendMouseWheelEvent(true, dy, x, y); - } + SendMouseEvent(event_type, button_type, x, y, dx, dy); #endif } -void WebView::SendTouchEvent(int type, double x, double y) { +void WebView::SendTouchEvent(int event_type, double x, double y) { Ewk_Touch_Event_Type mouse_event_type = EWK_TOUCH_START; Evas_Touch_Point_State state = EVAS_TOUCH_POINT_DOWN; - if (type == 0) { // down event + if (event_type == 0) { // down event mouse_event_type = EWK_TOUCH_START; state = EVAS_TOUCH_POINT_DOWN; - } else if (type == 1) { // move event + } else if (event_type == 1) { // move event mouse_event_type = EWK_TOUCH_MOVE; state = EVAS_TOUCH_POINT_MOVE; - } else if (type == 2) { // up event + } else if (event_type == 2) { // up event mouse_event_type = EWK_TOUCH_END; state = EVAS_TOUCH_POINT_UP; } else { - LOG_WARN("Unknown touch event type: %d", type); + LOG_WARN("Unknown touch event type: %d", event_type); } Eina_List* points = 0; @@ -265,45 +260,42 @@ void WebView::SendTouchEvent(int type, double x, double y) { eina_list_free(points); } -void WebView::SendMouseEvent(int type, int button, double x, double y, - double dx, double dy) { - Ewk_Mouse_Button_Type button_type = (Ewk_Mouse_Button_Type)0; - switch (button) { +void WebView::SendMouseEvent(int event_type, int button_type, double x, + double y, double dx, double dy) { + Ewk_Mouse_Button_Type mouse_button_type = (Ewk_Mouse_Button_Type)0; + switch (button_type) { case 1: - button_type = EWK_Mouse_Button_Left; + mouse_button_type = EWK_MOUSE_BUTTON_LEFT; break; case 2: - button_type = EWK_Mouse_Button_Middle; + mouse_button_type = EWK_MOUSE_BUTTON_RIGHT; break; - case 3: - button_type = EWK_Mouse_Button_Right; + case 4: + mouse_button_type = EWK_MOUSE_BUTTON_MIDDLE; break; } int px = x + left_; int py = y + top_; - if (type == 0) { // down event - button_type_ |= button_type; + + if (event_type == 0) { // down event + mouse_button_type_ = mouse_button_type; EwkInternalApiBinding::GetInstance().view.FeedMouseDown( - webview_instance_, (Ewk_Mouse_Button_Type)button_type_, px, py); - } else if (type == 1) { // move event - EwkInternalApiBinding::GetInstance().view.FeedMouseMove(webview_instance_, - px, py); - } else if (type == 2) { // up event - button_type_ & ~button_type; + webview_instance_, mouse_button_type_, px, py); + } else if (event_type == 1) { + if (dy != 0) { + EwkInternalApiBinding::GetInstance().view.FeedMouseWheel( + webview_instance_, true, dy > 0 ? 1 : -1, px, py); + } + } else if (event_type == 2) { // up event EwkInternalApiBinding::GetInstance().view.FeedMouseUp( - webview_instance_, (Ewk_Mouse_Button_Type)button_type_, px, py); + webview_instance_, mouse_button_type_, px, py); + mouse_button_type_ = mouse_button_type; } else { - LOG_WARN("Unknown touch event type: %d", type); + LOG_WARN("Unknown mouse event type: %d", event_type); } } -void WebView::SendMouseWheelEvent(bool yDirection, int step, double x, - double y) { - EwkInternalApiBinding::GetInstance().view.FeedMouseWheel( - webview_instance_, yDirection, step >= 0 ? 1 : -1, x, y); -} - bool WebView::SendKey(const char* key, const char* string, const char* compose, uint32_t modifiers, uint32_t scan_code, bool is_down) { if (!IsFocused()) { @@ -393,10 +385,17 @@ bool WebView::InitWebView() { window_); EwkInternalApiBinding::GetInstance().view.KeyEventsEnabledSet( webview_instance_, true); +#ifdef WEBVIEW_TIZEN_TOUCH_EVENTS_ENABLED EwkInternalApiBinding::GetInstance().view.TouchEventsEnabledSet( webview_instance_, true); + EwkInternalApiBinding::GetInstance().view.MouseEventsEnabledSet( + webview_instance_, false); +#else + EwkInternalApiBinding::GetInstance().view.TouchEventsEnabledSet( + webview_instance_, false); EwkInternalApiBinding::GetInstance().view.MouseEventsEnabledSet( webview_instance_, true); +#endif EwkInternalApiBinding::GetInstance().view.OnJavaScriptAlert( webview_instance_, &WebView::OnJavaScriptAlertDialog, this); diff --git a/packages/webview_flutter/tizen/src/webview.h b/packages/webview_flutter/tizen/src/webview.h index b2daaeee7..d70be3fca 100644 --- a/packages/webview_flutter/tizen/src/webview.h +++ b/packages/webview_flutter/tizen/src/webview.h @@ -19,6 +19,8 @@ #include #include +#include "ewk_internal_api_binding.h" + typedef flutter::MethodCall FlMethodCall; typedef flutter::MethodResult FlMethodResult; typedef flutter::MethodChannel FlMethodChannel; @@ -95,7 +97,6 @@ class WebView : public PlatformView { void SendTouchEvent(int type, double x, double y); void SendMouseEvent(int type, int button, double x, double y, double dx, double dy); - void SendMouseWheelEvent(bool yDirection, int step, double x, double y); Evas_Object* webview_instance_ = nullptr; flutter::TextureRegistrar* texture_registrar_; @@ -116,7 +117,7 @@ class WebView : public PlatformView { std::mutex mutex_; std::unique_ptr tbm_pool_; bool disposed_ = false; - int button_type_ = 0; // 0: none, 1: left, 2: right, 3: middle + Ewk_Mouse_Button_Type mouse_button_type_ = (Ewk_Mouse_Button_Type)0; }; #endif // FLUTTER_PLUGIN_WEBVIEW_H_ From 688893456a60428202efea64e9729a587fef0030 Mon Sep 17 00:00:00 2001 From: Seungsoo Lee Date: Fri, 27 Jun 2025 15:02:26 +0900 Subject: [PATCH 3/3] Update CHANGELOG, README, and pubspec files --- packages/webview_flutter/CHANGELOG.md | 4 +++- packages/webview_flutter/README.md | 2 +- packages/webview_flutter/pubspec.yaml | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/webview_flutter/CHANGELOG.md b/packages/webview_flutter/CHANGELOG.md index 73f6a495a..02d68cf5b 100644 --- a/packages/webview_flutter/CHANGELOG.md +++ b/packages/webview_flutter/CHANGELOG.md @@ -1,6 +1,8 @@ -## NEXT +## 0.9.6 * Update code format. +* Add support for mouse events. +* Fix crash issue by explicitly enabling touch events on TV. ## 0.9.5 diff --git a/packages/webview_flutter/README.md b/packages/webview_flutter/README.md index cd33d2992..fb4fb61a4 100644 --- a/packages/webview_flutter/README.md +++ b/packages/webview_flutter/README.md @@ -23,7 +23,7 @@ This package is not an _endorsed_ implementation of `webview_flutter`. Therefore ```yaml dependencies: webview_flutter: ^4.10.0 - webview_flutter_tizen: ^0.9.5 + webview_flutter_tizen: ^0.9.6 ``` ## Example diff --git a/packages/webview_flutter/pubspec.yaml b/packages/webview_flutter/pubspec.yaml index 50c862816..03974cb6e 100644 --- a/packages/webview_flutter/pubspec.yaml +++ b/packages/webview_flutter/pubspec.yaml @@ -2,7 +2,7 @@ name: webview_flutter_tizen description: Tizen implementation of the webview_flutter plugin. homepage: https://github.com/flutter-tizen/plugins repository: https://github.com/flutter-tizen/plugins/tree/master/packages/webview_flutter -version: 0.9.5 +version: 0.9.6 environment: sdk: ">=3.1.0 <4.0.0"