上一篇WebUI文章介绍了UE4中WebUI插件的下载、打开、创建和加载网页。本文继续描述通过WebUI、UE和网页实现双向通信。有一点是因为WebUI使用的浏览器内核不是最新的浏览器内核,所以不支持一些新的JS语法和新的CSS。例如,不支持解构语法。所以在制作页面的时候需要注意这些问题。调试如果遇到问题,就需要进行调试。WebUI加载网页后,点击网页上的任意元素,然后按shift+ctrl+i调出网页控制台查看错误。引入通信JS代码要实现UE与页面的通信,首先需要在页面中引入一段js代码,如下:"object"!=typeofue||"object"!=typeofue.interface?("object"!=typeofue&&(ue={}),(ue.interface={}),(ue.interface.broadcast=function(e,t){if("string"==typeofe){varo=[e,""];void0!==t&&(o[1]=t);varn=encodeURIComponent(JSON.stringify(o));"object"==typeofhistory&&"function"==typeofhistory.pushState?(history.pushState({},"","#"+n),history.pushState({},"","#"+encodeURIComponent("[]"))):((文档。location.hash=n),(document.location.hash=encodeURIComponent("[]")))}})):(function(e){(ue.interface={}),(ue.interface.broadcast=function(t,o){"string"==typeoft&&(void0!==o?e.broadcast(t,JSON.stringify(o)):e.broadcast(t,""))})})(ue.interface),(window.ue4=ue.interface.broadcast);window.ue=ue;这段js代码片段是WebUI官方推荐的。网页向UE发送消息。网页向UE发送消息。通过ue4功能给UE发送消息比较满意。ue4函数支持两个参数,name和data。名称为字符串格式,数据为json格式,如下图:ue4("cmd",{value:123})UE接受消息UE接受消息,可以通过蓝图监听webui消息,如下图(蓝图)所示:其中name和Data是网页传递的参数,Callback这里不做详细描述,一般用不到。该网页接受来自UE的消息。网页除了向UE发送消息外,还可以接收UE发来的消息。只需在ue.interface对象上添加一个回调函数来接受消息,如下所示:ue.interface.add=function(data){const{initValue}=JSON.parse(data);//todo};UE向网页发送消息。UE向网页发送消息的蓝图如下,调用webUI的Call方法,Function传递函数名,Data传递函数参数:本文总结了UE与网页双向通信的思路。细节需要自己去尝试。阳光虽好,也要自己晒,别人却不能替你晒。最后,关注公众号“ITMan表叔”添加作者微信进行交流,及时收到更多有价值的文章。
