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にクローズされました