123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- // Copyright aXiuShen. All Rights Reserved.
- #include "WebViewFunLib.h"
- #include "HAL/FileManager.h"
- #include "Misc/FileHelper.h"
- #include "Misc/Paths.h"
- #ifndef USING_WEBBROWSER
- #include "CefWebViewFunLib.h"
- #include "CefImitateInput.h"
- #include "CefWebCookie.h"
- #include "CefZipReader.h"
- #endif
- #include "cefcorelib.h"
- bool UWebViewFunLib::SetCookie(const FString& URL, const FWebCookie& Cookie) {
- #ifndef USING_WEBBROWSER
- webview::FWebCookie in;
- in.Name = Cookie.Name;
- in.Value = Cookie.Value;
- in.Domain = Cookie.Domain;
- in.bSecure = Cookie.bSecure;
- in.bHttpOnly = Cookie.bHttpOnly;
- in.bHasExpires = Cookie.bHasExpires;
- in.Expires = Cookie.Expires;
- return UWebViewFunLibImp::SetCookie(URL, in);
- #else
- return false;
- #endif
- }
- bool UWebViewFunLib::DeleteCookies(const FString& URL, const FString& CookieName) {
- #ifndef USING_WEBBROWSER
- return UWebViewFunLibImp::DeleteCookies(URL, CookieName);
- #else
- return false;
- #endif
- }
- void UWebViewFunLib::PopupURL(const FString& URL) {
- #ifndef USING_WEBBROWSER
- UWebViewFunLibImp::PopupURL(URL);
- #else
- return;
- #endif
- }
- FString UWebViewFunLib::EncodeURL(const FString& URL, const bool use_plus) {
- #ifndef USING_WEBBROWSER
- return UWebViewFunLibImp::EncodeURL(URL, use_plus);
- #else
- return FString();
- #endif
- }
- FString UWebViewFunLib::Base64Encode(const FString& data) {
- #ifndef USING_WEBBROWSER
- return UWebViewFunLibImp::Base64Encode(data);
- #else
- return FString();
- #endif
- }
- FString UWebViewFunLib::Base64Decode(const FString& base64) {
- #ifndef USING_WEBBROWSER
- return UWebViewFunLibImp::Base64Decode(base64);
- #else
- return FString();
- #endif
- }
- FString UWebViewFunLib::Base64EncodeFile(const FString& file) {
- #ifndef USING_WEBBROWSER
- return UWebViewFunLibImp::Base64EncodeFile(file);
- #else
- return FString();
- #endif
- }
- bool UWebViewFunLib::Base64DecodeFile(const FString& base64,const FString& file) {
- #ifndef USING_WEBBROWSER
- return UWebViewFunLibImp::Base64DecodeFile(base64, file);
- #else
- return false;
- #endif
- }
- bool UWebViewFunLib::Zip(const FString& Dir, const FString& ZipFile, const bool IncludeHiddenFiles) {
- #ifndef USING_WEBBROWSER
- return UWebViewFunLibImp::Zip(Dir, ZipFile, IncludeHiddenFiles);
- #else
- return false;
- #endif
- }
- bool UWebViewFunLib::UnZip(const FString& zipFile, const FString& passwd,UZipReader*& Reader) {
- #ifndef USING_WEBBROWSER
- Reader = NewObject<UZipReader>();
- return Reader->Open(zipFile, passwd);
- #else
- return false;
- #endif
- }
- FImitateInput& UWebViewFunLib::AddMouse(FImitateInput& screen, const WebView_ImitateInput_Mouse mouse, const FIntPoint& p) {
- //FImitateInput screen = _screen;
- FString type;
- switch (mouse) {
- case WebView_ImitateInput_Mouse::WebView_ImitateInput_Mouse_Down:type = TEXT("mouse_down"); break;
- case WebView_ImitateInput_Mouse::WebView_ImitateInput_Mouse_Up:type = TEXT("mouse_up"); break;
- case WebView_ImitateInput_Mouse::WebView_ImitateInput_Mouse_Move:type = TEXT("mouse_move"); break;
- default :return screen;
- }
- FString cmd = FString::Printf(TEXT("{\"type\":\"%s\",\"pos\":{\"x\":%d,\"y\":%d}}"), *type, p.X, p.Y);
- screen.Event.Push(cmd);
- return screen;
- }
- FImitateInput& UWebViewFunLib::AddClicked(FImitateInput& screen, const FIntPoint& p) {
- /*FImitateInput screen =*/ AddMouse(screen, WebView_ImitateInput_Mouse::WebView_ImitateInput_Mouse_Down, p);
- return AddMouse(screen, WebView_ImitateInput_Mouse::WebView_ImitateInput_Mouse_Up, p);
- }
- FImitateInput& UWebViewFunLib::AddText(FImitateInput& screen, const FString& text) {
- FString cmd = FString::Printf(TEXT("{\"type\":\"input\",\"text\":\"%s\"}"), *text);
- //FImitateInput screen(screen);
- screen.Event.Push(cmd);
- return screen;
- }
- FImitateInput& UWebViewFunLib::AddDelay(FImitateInput& screen, const int ms) {
- FString cmd = FString::Printf(TEXT("{\"type\":\"delay\",\"ms\":%d}"), ms);
- //FImitateInput screen(_screen);
- screen.Event.Push(cmd);
- return screen;
- }
- FImitateInput& UWebViewFunLib::AddKeystroke(FImitateInput& screen, const WebView_ImitateInput_Key keyboard, const FKey& key, const TArray<FKey>& CombinKey) {
- FString type;
- //FImitateInput screen(_screen);
- switch (keyboard) {
- case WebView_ImitateInput_Key::WebView_ImitateInput_Key_Down:type = TEXT("key_down"); break;
- case WebView_ImitateInput_Key::WebView_ImitateInput_Key_Up:type = TEXT("key_up"); break;
- case WebView_ImitateInput_Key::WebView_ImitateInput_Key_Char:type = TEXT("key_char"); break;
- default:return screen;
- }
- const uint32* pcode = 0;// key.GetFName();
- const uint32* pcharacter = 0;
- int modify = 0 ;
- #ifndef USING_WEBBROWSER
- modify = UWebViewFunLibImp::KeytoInner(CombinKey);
- #endif
- FKey inK = key;
- FInputKeyManager::Get().GetCodesFromKey(inK, pcode, pcharacter);
- uint32 code = 0;
- uint32 character = 0;
- if (pcode)code = *pcode;
- if (pcharacter)character = *pcharacter;
- if (keyboard != WebView_ImitateInput_Key::WebView_ImitateInput_Key_Char)character = code;
- FString cmd = FString::Printf(TEXT("{\"type\":\"%s\",\"code\":%d,\"character\":%d,\"modify\":%d}"), *type, code, character, modify);
- screen.Event.Push(cmd);
- return screen;
- }
- FImitateInput& UWebViewFunLib::AddKey(FImitateInput& screen, const FKey& key, const TArray<FKey> CombinKey) {
- /*FImitateInput screen =*/ AddKeystroke(screen, WebView_ImitateInput_Key::WebView_ImitateInput_Key_Down, key, CombinKey);
- AddKeystroke(screen, WebView_ImitateInput_Key::WebView_ImitateInput_Key_Char, key, CombinKey);
- return AddKeystroke(screen, WebView_ImitateInput_Key::WebView_ImitateInput_Key_Up, key, CombinKey);
- }
- FImitateInput& UWebViewFunLib::ShowLog(FImitateInput& screen, bool show) {
- //FImitateInput screen(_screen);
- if (show) {
- screen.Event.Add(TEXT(""));
- return screen;
- }
- for (int32 Index = screen.Event.Num() - 1; Index >= 0; --Index) {
- auto& onEv = screen.Event[Index];
- if (onEv.Len() == 0)screen.Event.RemoveAt(Index);
- }
- return screen;
- }
- FImitateInput& UWebViewFunLib::Clear(FImitateInput& _screen) {
- //FImitateInput screen(_screen);
- _screen.Event.Empty();
- return _screen;
- }
|