WebSlate 性能和安全性
性能
由于 WebSlate 是加载的网页,因此请务必考虑性能影响:
场景通常以 60fps 的速度执行,最多 10 个活动 WebSlates。 无论内容如何,都可以按比例观察帧速率和常规性能下降,与放置在场景中的 WebSlate 数量成比例。
内容在 WebSlate 中加载并执行,该线程独立于场景的更新和呈现线程(s),因此不太可能直接影响帧速率。 但是,在运行时复杂性和内存使用率方面,考虑在网页上运行的 JavaScript 成本仍然很重要。
为了帮助节省性能,自动暂停超过 30 个屏幕的 WebSlate。 它们在屏幕上快速恢复,但这可能会影响托管页面上的主动运行服务。 如果这是个问题,开发人员可以使用 prefab 的“阻止挂起”复选框禁用挂起。 请注意,这样做可能会导致场景消耗更多资源,因为这些 WebSlate 始终处于活动状态。
由于 WebSlate 默认情况下没有任何外部导航 UI,因此最佳做法是仅加载自定义 URL,其中网站导航是循环的,可以在页面内完成。 例如,可以使用导航边栏或指向中心页面的链接来完成此操作。
内容性能分析器(CPA)工具包括一个 WebSlate 分析器,用于测量 Unity 呈现管道在帧中呈现 WebSlate 的平均时间。
度量基于 Unity 的探查器记录器,需要播放模式。 分析器将相机移到每个 WebSlate 上,以收集足够的探查器样本并计算平均呈现时间。
这提供了对 Unity 呈现管道上下文中 WebSlate 呈现时间的第一阶段高级分析。 它不提供 WebSlate 内容本身的帧速率。
如果 Unity 的呈现管道超出呈现 WebSlates(当前为 10 毫秒)的阈值,则 CPA 工具会发出警告。
性能探查器也提供相同的度量值。 当超出类别的预算津贴时,性能探查器上的组通常将颜色从绿色更改为红色。 目前,WebSlate 组仅显示为绿色,直到为 WebSlates 合理化合理的呈现时间预算。
安全限制
WebSlate 被锁定到他们导航到的 URL,从而阻止恶意重定向。 除非显式列为允许的域(请参阅下文),否则阻止所有意外到外部域的超链接导航。
WebSlate 仅限于在初始域或指定的 URL 和服务器的重定向中进行导航。
WebSlate 中的导航仅限于 HTTPS。
阻止设备访问网络摄像头、麦克风和地理位置。
WebSlate 域允许列表
为了确保针对基于 URL 的意外攻击途径(如网络钓鱼)的安全性,WebSlate 默认将导航限制到加载到 WebSlate 的第一页的域下包含的 URL。 例如,启动的 https://www.microsoft.com/ WebSlate 将仅导航到其 URL 以“www.microsoft.com”开头的页面。 虽然这可确保用户不会意外地偏离预期导航流,但某些用例(如用户身份验证)可能会过度限制默认值,在此期间,可能会重定向到子域或第三方身份验证提供程序。
适应这些用例的方法是将域添加到 WebSlate 的允许列表。
自动添加域(建议)
在 Unity 编辑器中使用 WebSlates 时,可以选择启用“收集允许的域”。 这将删除域导航限制,以便在“播放”模式下运行时自由导航以测试方案。 在“播放”模式下导航时,WebSlate 将记录你在后台访问的域。
在本例中,我们将从 microsoft.com 扩展导航,以包括 learn.microsoft.com。
退出“播放”模式后,将在顶级 Assets 文件夹中找到名为“WebViewAllowedDomains.asset”的资产。
单击此资产将为你提供在初始 URL 域之外访问的额外域的列表。 可以右键单击、复制值,然后将值粘贴到 WebSlate 组件的“允许的域”字段中。
注意:此选项无法在上传的场景中启用。 将“收集允许的域”保留为启用状态不会删除最终场景中的限制。 但是,只要域添加到 WebSlate,允许的域列表就会保留并允许导航。
手动添加域
如果已知道需要哪些域,可以通过展开“允许的域”下拉列表并将补充域添加到 Unity GUI 中的列表中,手动将它们添加到 WebSlate。