Unity中如何将网页调试的控制台消息存入指定字符串?
解决方案
直接修改ExecuteJavaScript的回调逻辑,把JS执行后的返回值赋值给你定义的message变量就行,具体代码调整如下:
public string message; // 要接收调试消息的字符串变量 void SomeFunction(){ // 修正原代码的引号语法问题,避免编译报错 web.ExecuteJavaScript('document.querySelector("iframe").click();', s => { message = s; // 将JS执行结果存入指定变量 // 可选保留日志,方便调试对比 Debug.Log(s); }); }
补充说明
- 原代码里的JS字符串存在引号冲突问题,调整外层为单引号、内部为双引号,或者给内部引号加转义符(比如
\"iframe\"),都能解决语法错误。 - 回调参数
s就是JavaScript代码执行后的返回结果,直接赋值给message就能实现你要的“把调试消息复制到指定变量”的需求。 - 要是后续需要在UI上展示这个变量,注意Unity的主线程限制:如果你的WebView插件回调不在主线程执行,就得切换到主线程再赋值,不过大部分常用插件的回调都是跑在主线程的,先测试即可。
内容的提问来源于stack exchange,提问作者Vika
相关产品推荐
相关产品推荐

