Closed8
[UE5]BlueprintとWebBrowserの通信のやり方を考える
あまりユースケースがないかもしれないがBlueprintとWebBrowserの通信について考える
ここでいうWebBrowserはWebBrowserプラグインによって追加されるUMGのことである
UEバージョン:5.1.1
Blueprint から WebBrowser へ
Blueprint
ExecuteJavascriptノードを使ってJavaScriptを実行
下記の例だとbodyタグに設定したイベントを実行している
実際はdetailの中身は下記のようにJson Blueprint Utilitiesを使って組み立てる必要がある
JavaScript
EventListenerで受け取る
document.body.addEventListener("RequestBrowserEvent", (e) => {
/** 処理 */
});
WebBrowser から Blueprint へ
自分が見た限りBlueprintからWebBrowser側をのぞけるノードは下記3点
- GetTitleText(titleタグの内容)
- GetUrl(開いているURL)
- OnConsoleMessage(console.logをフックしていてその内容を受け取ることができる)
どれもスマートではないがイベントとしてうけとれるOnConsoleMessageが良さそうだった
Javascript
送りたい内容を文字列にしてconsole.logで流す。下記ではObjectをJSON文字列にしている
console.log(
JSON.stringify({
event: "SampleEvent",
payload: "SamplePayload",
})
);
Blueprint
console.logがブラウザ側で実行されるとBlueprint側ではOnConsoleMessageが実行される。上記の内容だとJSON文字列が送られてくるので下記のようにJsonObjectに変換してあとは好きに処理する
このスクラップは2023/03/20にクローズされました