Unreal Web Browser 註冊 JavaScript
近期專案的需求是要內開一個 Web Browser 來開網頁給使用者操作,交互的資訊難免會需要回傳到引擎內使用,所以就來記錄一下。

近期專案的需求是要內開一個 Web Browser 來開網頁給使用者操作,交互的資訊難免會需要回傳到引擎內使用,所以就來記錄一下。
如果要註冊的 function 之類的是共通的,可以直接繼承 UWebBrowser 來覆寫 RebuildWidget 方法,但由於 Unreal 的 Web Browser 核心是 SWebBrowser,所以我是開一個 class 將 UWebBrowser 內的 code 搬過來再自己改。
我在 RebuildWidget 回傳物件前,進行物件綁定
TSharedRef<SWidget> UTestWebBrowser::RebuildWidget()
{
// ... 前置過程省略
// 註冊 UObject
WebBrowserWidget->BindUObject("TestObject", this);
return WebBrowserWidget.ToSharedRef();
}
在 RebuildWidget 註冊物件
定義一個要給 JavaScript 呼叫的 function
UFUNCTION(BlueprintCallable)
void SetNickName(FString Parameter) const;
這樣在網頁中的 JavaScript 就可以這樣呼叫
ue.testobject.setnickname('Jack');
需要注意的是,在 javascript 中要全部小寫呼叫。