,

Unreal Web Browser 註冊 JavaScript

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

Unreal Web Browser 註冊 JavaScript
Unreal

近期專案的需求是要內開一個 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 中要全部小寫呼叫。