UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AndroidWebBrowserWindow.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6
7#if USE_ANDROID_JNI
8
9#include "IWebBrowserWindow.h"
10#include "Widgets/SWidget.h"
12
14class SWebBrowserView;
15
20 : public IWebBrowserWindow
21 , public TSharedFromThis<FAndroidWebBrowserWindow>
22{
23 // The WebBrowserSingleton should be the only one creating instances of this class
24 friend class FWebBrowserSingleton;
25 // CreateWidget should only be called by the WebBrowserView
26 friend class SWebBrowserView;
27 friend class SAndroidWebBrowserWidget;
28
29private:
41 FAndroidWebBrowserWindow(FString Url, TOptional<FString> ContentsToLoad, bool bShowErrorMessage, bool bThumbMouseButtonNavigation, bool bUseTransparency, bool bJSBindingToLoweringEnabled, const FString& InUserAgentApplication, bool bMobileJSReturnInDict);
42
47
48public:
51
52public:
53
54 // IWebBrowserWindow Interface
55
56 virtual void LoadURL(FString NewURL) override;
57 virtual void LoadString(FString Contents, FString DummyURL) override;
58 virtual void SetViewportSize(FIntPoint WindowSize, FIntPoint WindowPos) override;
59 virtual FIntPoint GetViewportSize() const override;
60 virtual FSlateShaderResource* GetTexture(bool bIsPopup = false) override;
61 virtual bool IsValid() const override;
62 virtual bool IsInitialized() const override;
63 virtual bool IsClosing() const override;
65 virtual FString GetTitle() const override;
66 virtual FString GetUrl() const override;
67 virtual void GetSource(TFunction<void (const FString&)> Callback) const override;
68 virtual bool OnKeyDown(const FKeyEvent& InKeyEvent) override;
69 virtual bool OnKeyUp(const FKeyEvent& InKeyEvent) override;
70 virtual bool OnKeyChar(const FCharacterEvent& InCharacterEvent) override;
71 virtual FReply OnMouseButtonDown(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent, bool bIsPopup) override;
72 virtual FReply OnMouseButtonUp(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent, bool bIsPopup) override;
73 virtual FReply OnMouseButtonDoubleClick(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent, bool bIsPopup) override;
74 virtual FReply OnMouseMove(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent, bool bIsPopup) override;
75 virtual void OnMouseLeave(const FPointerEvent& MouseEvent) override;
76 virtual void SetSupportsMouseWheel(bool bValue) override;
77 virtual bool GetSupportsMouseWheel() const override;
78 virtual FReply OnMouseWheel(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent, bool bIsPopup) override;
79 virtual FReply OnTouchGesture(const FGeometry& MyGeometry, const FPointerEvent& GestureEvent, bool bIsPopup) override;
80 virtual void OnFocus(bool SetFocus, bool bIsPopup) override;
81 virtual void OnCaptureLost() override;
82 virtual bool CanGoBack() const override;
83 virtual void GoBack() override;
84 virtual bool CanGoForward() const override;
85 virtual void GoForward() override;
86 virtual bool IsLoading() const override;
87 virtual void Reload() override;
88 virtual void StopLoad() override;
89 virtual void ExecuteJavascript(const FString& Script) override;
90 virtual void CloseBrowser(bool bForce, bool bBlockTillClosed) override;
91 virtual void BindUObject(const FString& Name, UObject* Object, bool bIsPermanent = true) override;
92 virtual void UnbindUObject(const FString& Name, UObject* Object = nullptr, bool bIsPermanent = true) override;
93 virtual int GetLoadError() override;
94 virtual void SetIsDisabled(bool bValue) override;
95 virtual TSharedPtr<SWindow> GetParentWindow() const override;
96 virtual void SetParentWindow(TSharedPtr<SWindow> Window) override;
97 virtual void ShowFloatingCloseButton(bool bShow, bool bDraggable) override;
98
99 DECLARE_DERIVED_EVENT(FAndroidWebBrowserWindow, IWebBrowserWindow::FOnDocumentStateChanged, FOnDocumentStateChanged);
101 {
102 return DocumentStateChangedEvent;
103 }
104
105 DECLARE_DERIVED_EVENT(FAndroidWebBrowserWindow, IWebBrowserWindow::FOnTitleChanged, FOnTitleChanged);
106 virtual FOnTitleChanged& OnTitleChanged() override
107 {
108 return TitleChangedEvent;
109 }
110
111 DECLARE_DERIVED_EVENT(FAndroidWebBrowserWindow, IWebBrowserWindow::FOnUrlChanged, FOnUrlChanged);
112 virtual FOnUrlChanged& OnUrlChanged() override
113 {
114 return UrlChangedEvent;
115 }
116
117 DECLARE_DERIVED_EVENT(FAndroidWebBrowserWindow, IWebBrowserWindow::FOnToolTip, FOnToolTip);
118 virtual FOnToolTip& OnToolTip() override
119 {
120 return ToolTipEvent;
121 }
122
123 DECLARE_DERIVED_EVENT(FAndroidWebBrowserWindow, IWebBrowserWindow::FOnNeedsRedraw, FOnNeedsRedraw);
124 virtual FOnNeedsRedraw& OnNeedsRedraw() override
125 {
126 return NeedsRedrawEvent;
127 }
128
129 virtual FOnBeforeBrowse& OnBeforeBrowse() override
130 {
131 return BeforeBrowseDelegate;
132 }
133
134 virtual FOnLoadUrl& OnLoadUrl() override
135 {
136 return LoadUrlDelegate;
137 }
138
139 virtual FOnCreateWindow& OnCreateWindow() override
140 {
141 return CreateWindowDelegate;
142 }
143
144 virtual FOnCloseWindow& OnCloseWindow() override
145 {
146 return CloseWindowDelegate;
147 }
148
150 {
151 return FloatingCloseButtonPressedDelegate;
152 }
153
155 {
157 }
158
159 virtual FOnBeforePopupDelegate& OnBeforePopup() override
160 {
161 return BeforePopupDelegate;
162 }
163
165 {
166 return BeforeResourceLoadDelegate;
167 }
168
170 {
171 return ResourceLoadCompleteDelegate;
172 }
173
175 {
176 return ConsoleMessageDelegate;
177 }
178
179 DECLARE_DERIVED_EVENT(FAndroidWebBrowserWindow, IWebBrowserWindow::FOnShowPopup, FOnShowPopup);
180 virtual FOnShowPopup& OnShowPopup() override
181 {
182 return ShowPopupEvent;
183 }
184
185 DECLARE_DERIVED_EVENT(FAndroidWebBrowserWindow, IWebBrowserWindow::FOnDismissPopup, FOnDismissPopup);
186 virtual FOnDismissPopup& OnDismissPopup() override
187 {
188 return DismissPopupEvent;
189 }
190
191 virtual FOnShowDialog& OnShowDialog() override
192 {
193 return ShowDialogDelegate;
194 }
195
196 virtual FOnDismissAllDialogs& OnDismissAllDialogs() override
197 {
198 return DismissAllDialogsDelegate;
199 }
200
202 {
203 return SuppressContextMenuDelgate;
204 }
205
206 virtual FOnDragWindow& OnDragWindow() override
207 {
208 return DragWindowDelegate;
209 }
210
211 virtual FOnUnhandledKeyDown& OnUnhandledKeyDown() override
212 {
213 return UnhandledKeyDownDelegate;
214 }
215
216 virtual FOnUnhandledKeyUp& OnUnhandledKeyUp() override
217 {
218 return UnhandledKeyUpDelegate;
219 }
220
221 virtual FOnUnhandledKeyChar& OnUnhandledKeyChar() override
222 {
223 return UnhandledKeyCharDelegate;
224 }
225
226public:
227
231 void CheckTickActivity() override;
232
236 void SetTickLastFrame();
237
241 bool IsVisible();
242
247private:
248
249 void SetTitle(const FString& InTitle)
250 {
251 Title = InTitle;
252 OnTitleChanged().Broadcast(Title);
253 }
254
255 void NotifyDocumentError(const FString& InCurrentUrl, int InErrorCode);
257
258 bool OnJsMessageReceived(const FString& Command, const TArray<FString>& Params, const FString& Origin);
259
261
263
265 FString Title;
266
268 FString CurrentUrl;
269
271 TOptional<FString> ContentsToLoad;
272
274 FString UserAgentApplication;
275
277 bool bUseTransparency;
278
280 FOnDocumentStateChanged DocumentStateChangedEvent;
281
283 FOnTitleChanged TitleChangedEvent;
284
286 FOnUrlChanged UrlChangedEvent;
287
289 FOnToolTip ToolTipEvent;
290
292 FOnNeedsRedraw NeedsRedrawEvent;
293
295 FOnBeforeBrowse BeforeBrowseDelegate;
296
298 FOnLoadUrl LoadUrlDelegate;
299
301 FOnBeforePopupDelegate BeforePopupDelegate;
302
304 FOnBeforeResourceLoadDelegate BeforeResourceLoadDelegate;
305
307 FOnResourceLoadCompleteDelegate ResourceLoadCompleteDelegate;
308
310 FOnConsoleMessageDelegate ConsoleMessageDelegate;
311
313 FOnCreateWindow CreateWindowDelegate;
314
316 FOnCloseWindow CloseWindowDelegate;
317
319 FOnFloatingCloseButtonPressed FloatingCloseButtonPressedDelegate;
320
322 FOnShowPopup ShowPopupEvent;
323
325 FOnDismissPopup DismissPopupEvent;
326
328 FOnShowDialog ShowDialogDelegate;
329
331 FOnDismissAllDialogs DismissAllDialogsDelegate;
332
334 FOnSuppressContextMenu SuppressContextMenuDelgate;
335
337 FOnUnhandledKeyDown UnhandledKeyDownDelegate;
338
340 FOnUnhandledKeyUp UnhandledKeyUpDelegate;
341
343 FOnUnhandledKeyChar UnhandledKeyCharDelegate;
344
346 FOnDragWindow DragWindowDelegate;
347
350 int ErrorCode;
351
352 FMobileJSScriptingPtr Scripting;
353
354 mutable TOptional<TFunction<void (const FString&)>> GetPageSourceCallback;
355
356 TSharedPtr<SWindow> ParentWindow;
357
359
361 bool bIsDisabled;
362
364 bool bIsVisible;
365
367 bool bTickedLastFrame;
368};
369
371
372#endif // USE_ANDROID_JNI
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_DERIVED_EVENT(OwningType, BaseTypeEvent, EventName)
Definition Delegate.h:231
EWebBrowserDocumentState
Definition IWebBrowserWindow.h:18
bool IsLoading()
Definition UObjectGlobals.cpp:2087
WidgetT * CreateWidget(OwnerType OwningObject, TSubclassOf< UUserWidget > UserWidgetClass=WidgetT::StaticClass(), FName WidgetName=NAME_None)
Definition UserWidget.h:1811
Definition CursorReply.h:16
static FCursorReply Unhandled()
Definition CursorReply.h:24
Definition Reply.h:24
Definition SlateShaderResource.h:44
Definition WebBrowserSingleton.h:52
Definition IWebBrowserWindow.h:85
virtual bool GetSupportsMouseWheel() const =0
virtual FReply OnMouseButtonUp(const FGeometry &MyGeometry, const FPointerEvent &MouseEvent, bool bIsPopup)=0
virtual bool OnKeyUp(const FKeyEvent &InKeyEvent)=0
virtual FOnSuppressContextMenu & OnSuppressContextMenu()=0
virtual void CloseBrowser(bool bForce, bool bBlockTillClosed=false)=0
virtual bool OnKeyDown(const FKeyEvent &InKeyEvent)=0
virtual FIntPoint GetViewportSize() const =0
virtual FOnTitleChanged & OnTitleChanged()=0
virtual bool CanGoForward() const =0
virtual bool OnKeyChar(const FCharacterEvent &InCharacterEvent)=0
virtual bool CanGoBack() const =0
virtual FOnUnhandledKeyUp & OnUnhandledKeyUp()=0
virtual void LoadURL(FString NewURL)=0
virtual FOnDismissPopup & OnDismissPopup()=0
virtual void SetIsDisabled(bool bValue)=0
virtual void ExecuteJavascript(const FString &Script)=0
virtual bool IsValid() const =0
virtual void GoForward()=0
virtual TSharedPtr< class SWindow > GetParentWindow() const =0
virtual void SetViewportSize(FIntPoint WindowSize, FIntPoint WindowPos=FIntPoint::NoneValue)=0
virtual FOnUrlChanged & OnUrlChanged()=0
virtual void OnMouseLeave(const FPointerEvent &MouseEvent)=0
virtual void StopLoad()=0
virtual FString GetUrl() const =0
virtual FOnConsoleMessageDelegate & OnConsoleMessage()=0
virtual void OnFocus(bool SetFocus, bool bIsPopup)=0
virtual void ShowFloatingCloseButton(bool bShow, bool bDraggable)=0
virtual FReply OnMouseWheel(const FGeometry &MyGeometry, const FPointerEvent &MouseEvent, bool bIsPopup)=0
virtual void OnCaptureLost()=0
virtual FOnBeforeResourceLoadDelegate & OnBeforeResourceLoad()=0
virtual FOnDismissAllDialogs & OnDismissAllDialogs()=0
virtual bool IsClosing() const =0
virtual FSlateShaderResource * GetTexture(bool bIsPopup=false)=0
virtual void GetSource(TFunction< void(const FString &)> Callback) const =0
virtual FReply OnMouseButtonDown(const FGeometry &MyGeometry, const FPointerEvent &MouseEvent, bool bIsPopup)=0
virtual void SetParentWindow(TSharedPtr< class SWindow > Window)=0
virtual void BindUObject(const FString &Name, UObject *Object, bool bIsPermanent=true)=0
virtual FOnNeedsRedraw & OnNeedsRedraw()=0
virtual void SetSupportsMouseWheel(bool bValue)=0
virtual EWebBrowserDocumentState GetDocumentLoadingState() const =0
virtual FOnFloatingCloseButtonPressed & OnFloatingCloseButtonPressed()=0
virtual void GoBack()=0
virtual FCursorReply OnCursorQuery(const FGeometry &MyGeometry, const FPointerEvent &CursorEvent)=0
virtual void UnbindUObject(const FString &Name, UObject *Object, bool bIsPermanent=true)=0
virtual FReply OnTouchGesture(const FGeometry &MyGeometry, const FPointerEvent &GestureEvent, bool bIsPopup)=0
virtual bool IsLoading() const =0
virtual void CheckTickActivity()
Definition IWebBrowserWindow.h:376
virtual FOnBeforePopupDelegate & OnBeforePopup()=0
virtual FOnDocumentStateChanged & OnDocumentStateChanged()=0
virtual void LoadString(FString Contents, FString DummyURL)=0
virtual FOnUnhandledKeyChar & OnUnhandledKeyChar()=0
virtual bool IsInitialized() const =0
virtual FString GetTitle() const =0
virtual int GetLoadError()=0
virtual FReply OnMouseMove(const FGeometry &MyGeometry, const FPointerEvent &MouseEvent, bool bIsPopup)=0
virtual FOnToolTip & OnToolTip()=0
virtual void Reload()=0
virtual FReply OnMouseButtonDoubleClick(const FGeometry &MyGeometry, const FPointerEvent &MouseEvent, bool bIsPopup)=0
virtual FOnResourceLoadCompleteDelegate & OnResourceLoadComplete()=0
virtual FOnUnhandledKeyDown & OnUnhandledKeyDown()=0
Definition SWebBrowserView.h:39
Definition Array.h:670
Definition AndroidPlatformMisc.h:14
Definition SharedPointer.h:1640
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition Object.h:95
Definition Events.h:606
Definition Geometry.h:40
Definition Events.h:431
Definition Events.h:695
Definition Optional.h:131
Definition IntPoint.h:25