private Browser browser;
// Use this for initialization
void Start () {
browser = GetComponent<Browser>();
//接收网页推送事件,
browser.RegisterFunction("showbox", args =>
{
// Debug.Log("xx");
int xPos = args[0];
int yPos = args[1];
Debug.Log("The <color=green>green</color> button was clicked at " + xPos + ", " + yPos);
});
}
// Update is called once per frame
void Update () {
}
public void OnButtonclickEvenTest()
{
//调用页面中任何可用的js(自上而下)
browser.EvalJS("showboxd(5,6)").Then(ret => Debug.Log("Result: " + ret.Value)).Done();
//查询页面中的数据,可以查看返回值(测试多返回值时好像只返回最后一个值)
browser.CallFunction("showboxd", 5, 6).Then((ret)=>Debug.Log("Result: "+ret.Value)).Done();
}
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.box{
width: 200px;
height: 200px;
border: 1px solid red;
line-height: 200px;
text-align: center;
cursor: pointer;
}
</style>
</head>
<body>
<div class="box" onclick="showbox(1,2)">
Test....
</div>
</body>
<script>
function showboxd(a,b){
let element = document.getElementsByClassName('box')[0];
element.style.color = "red";
console.log("点击按钮变红,返回false")
return "False";
}
</script>
</html>
js中的console.log的推送信息会显示在
onConsoleMessage += (message, source) => {
var text = source + ": " + message;
Debug.Log(message);
};
如果你在unity协程中操作某些Embedded Browser程序,你要等待操作完成后再继续
var promise = browser.EvalJS("document.title");
yield return promise.ToWaitFor();
Debug.Log("Document title: " + promise.Value);