1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- // Engine/Source/Runtime/WebBrowser/Private/Native/NativeJSScripting.h
- #pragma once
- #include "CoreMinimal.h"
- #include "WebInterfaceJSFunction.h"
- #include "WebInterfaceJSScripting.h"
- typedef TSharedRef<class FNativeInterfaceJSScripting> FNativeInterfaceJSScriptingRef;
- typedef TSharedPtr<class FNativeInterfaceJSScripting> FNativeInterfaceJSScriptingPtr;
- class FNativeWebInterfaceBrowserProxy;
- /**
- * Implements handling of bridging UObjects client side with JavaScript renderer side.
- */
- class FNativeInterfaceJSScripting
- : public FWebInterfaceJSScripting
- , public TSharedFromThis<FNativeInterfaceJSScripting>
- {
- public:
- //static const FString JSMessageTag;
- FNativeInterfaceJSScripting(bool bJSBindingToLoweringEnabled, TSharedRef<FNativeWebInterfaceBrowserProxy> Window);
- virtual void BindUObject(const FString& Name, UObject* Object, bool bIsPermanent = true) override;
- virtual void UnbindUObject(const FString& Name, UObject* Object = nullptr, bool bIsPermanent = true) override;
- bool OnJsMessageReceived(const FString& Message);
- FString ConvertStruct(UStruct* TypeInfo, const void* StructPtr);
- FString ConvertObject(UObject* Object);
- virtual void InvokeJSFunction(FGuid FunctionId, int32 ArgCount, FWebInterfaceJSParam Arguments[], bool bIsError=false) override;
- virtual void InvokeJSErrorResult(FGuid FunctionId, const FString& Error) override;
- void PageLoaded();
- private:
- FString GetInitializeScript();
- void InvokeJSFunctionRaw(FGuid FunctionId, const FString& JSValue, bool bIsError=false);
- bool IsValid()
- {
- return WindowPtr.Pin().IsValid();
- }
- /** Message handling helpers */
- bool HandleExecuteUObjectMethodMessage(const TArray<FString>& Params);
- void ExecuteJavascript(const FString& Javascript);
- TWeakPtr<FNativeWebInterfaceBrowserProxy> WindowPtr;
- bool bLoaded;
- };
|