在Hololens 2 Unity混合现实项目中集成Microsoft.Web.WebView2.Core的问题
针对Hololens2 Unity项目WebView语音滚动的问题解决方案
一、修复MRTK WebView预览版的JS执行问题
MRTK的WebView预览组件没有ExecuteScriptAsync方法,对应的正确JS执行API是EvaluateJavaScriptAsync,直接替换脚本中的方法即可解决CS1061错误。
- 确保脚本挂载在包含
WebView组件的GameObject上,且保留using Microsoft.MixedReality.WebView;命名空间引用。 - 语音控制滚动的示例代码:
using Microsoft.MixedReality.WebView; using UnityEngine; using System.Threading.Tasks; public class WebViewScrollHandler : MonoBehaviour { private WebView webView; void Start() { webView = GetComponent<WebView>(); } // 绑定语音命令的向上滚动方法 public async Task ScrollUp() { if (webView != null) { await webView.EvaluateJavaScriptAsync("window.scrollBy(0, -50);"); } } // 绑定语音命令的向下滚动方法 public async Task ScrollDown() { if (webView != null) { await webView.EvaluateJavaScriptAsync("window.scrollBy(0, 50);"); } } }
二、在Unity中正确集成WebView2插件
Unity原生不支持直接通过NuGet添加WebView2包,需通过官方适配的Unity插件导入:
- 打开Unity的Package Manager,点击右上角的
+按钮,选择Add package from git URL。 - 输入微软官方维护的WebView2 Unity插件Git仓库地址(可在微软Edge开发者专区查询到该公开仓库),等待包导入完成。
- 调整项目.NET版本:打开
Player Settings > Other Settings > Configuration,将Scripting Runtime Version设置为.NET 4.x Equivalent,确保与WebView2兼容。 - WebView2需初始化完成后才能调用
ExecuteScriptAsync,需监听初始化事件:
using Microsoft.Web.WebView2.Core; using UnityEngine; using System.Threading.Tasks; public class WebView2ScrollHandler : MonoBehaviour { private CoreWebView2 coreWebView2; // 拖拽场景中的WebView2组件到此处 public WebView2 webView2; void Start() { webView2.CoreWebView2InitializationCompleted += OnWebView2Initialized; } private void OnWebView2Initialized(object sender, CoreWebView2InitializationCompletedEventArgs e) { if (e.IsSuccess) { coreWebView2 = webView2.CoreWebView2; } } public async Task ScrollUp() { if (coreWebView2 != null) { await coreWebView2.ExecuteScriptAsync("window.scrollBy(0, -50);"); } } }
三、关键配置与注意事项
- Hololens2部署要求:在
Player Settings中,将Target SDK设为Universal Windows Platform,Minimum SDK Version选择10.0.19041.0或更高版本(WebView2依赖该版本及以上的Windows SDK)。 - 权限配置:在生成的
Package.appxmanifest文件中,添加Internet (Client)权限,确保WebView可以正常加载网页内容。 - 测试建议:优先部署到Hololens2实体设备上测试,Unity编辑器中的WebView预览可能存在兼容性问题。
内容的提问来源于stack exchange,提问作者alseny gueye
相关产品推荐
相关产品推荐

