WebSlate 性能和安全性

性能

显示 Web 内容并与之交互概述

由于 WebSlate 是加载的网页,因此请务必考虑性能影响:

  • 场景通常以 60fps 的速度运行,最多 10 个活动 WebSlate。 无论内容如何,都可以观察到帧速率和一般性能下降与放置在场景中的 WebSlate 数量成比例。

  • 内容在 WebSlate 中加载和执行,该线程与场景的更新和呈现线程 () 分开,因此不太可能直接影响帧速率。 但是,在运行时复杂性和内存使用量方面,考虑在网页上运行的 JavaScript 的成本仍然很重要。

  • 为了帮助提高性能,屏幕外超过 30 的 WebSlates 会自动挂起。 它们在屏幕上恢复后会很快恢复,但这可能会影响托管页上主动运行的服务。 如果这是一个问题,开发人员可以使用 prefab 的“阻止挂起”复选框禁用挂起。 请注意,这样做可能会导致场景消耗更多资源,因为这些 WebSlate 始终保持活动状态。

    带暂停防护圈圈的 WebSlate

  • 由于 WebSlates 默认情况下没有任何外部导航 UI,因此最佳做法是仅加载自定义 URL,其中网站导航是循环的,可以在页面内完成。 例如,可以使用导航边栏或指向中心页面的链接来完成此作。

  • 内容性能分析器 (CPA) 工具包括一个 WebSlate 分析器,用于测量Unity呈现管道在帧中呈现 WebSlate 的平均时间。

    • 测量基于Unity的探查器记录器,需要“播放”模式。 分析器在每个 WebSlate 上移动相机,以收集足够的探查器样本并计算平均呈现时间。

    • 这会在Unity的呈现管道的上下文中提供 WebSlate 呈现时间的第一阶段高级分析。 它不提供 WebSlate 内容本身的帧速率。

    • 如果Unity的呈现管道超过当前 10 毫秒) (呈现 WebSlates 的阈值,则 CPA 工具将提供警告。

    • 性能探查器也可以使用相同的度量值。 超过某个类别的预算限额时,性能探查器上的组通常会将颜色从绿色更改为红色。 目前,在合理化 WebSlates 的呈现时间预算之前,WebSlate 组仅显示为绿色。

    使用 CPA 工具进行 WebSlate 性能分析。

安全限制

  • WebSlate 会锁定到它们导航到的 URL,从而防止恶意重定向。 阻止所有到外部域的意外超链接导航,除非显式列为允许的域 (请参阅下面的) 。

  • WebSlates 仅限于在初始域或指定的 URL 和服务器的重定向中进行导航。

  • WebSlate 中的导航仅限于 HTTPS。

  • 阻止设备访问网络摄像头、麦克风和地理位置。

WebSlate 域允许列表

为了确保针对基于 URL 的意外攻击途径(例如钓鱼)的安全性,WebSlates 默认将导航限制为加载到 WebSlate 中第一页的域下的 URL。 例如,在 上 https://www.microsoft.com/ 启动的 WebSlate 将仅导航到其 URL 以“www.microsoft.com”开头的页面。 虽然这可确保用户不会意外地偏离预期导航流,但对于某些用例(例如用户身份验证)来说,它可能是限制过度的默认值,在此期间,可能会重定向到子域或第三方身份验证提供程序。

适应这些用例的方法是将域添加到 WebSlate 的允许列表。

在 Unity 编辑器中使用 WebSlates 时,可以选择启用“收集允许的域”。 这将删除域导航限制,以便在“播放”模式下运行时可以自由导航以测试方案。 在“播放”模式下导航时,WebSlate 将记录你在后台访问的域。

“收集允许的域”复选框处于启用状态。

在本例中,我们将从 microsoft.com 扩展导航,以包括 learn.microsoft.com

退出“播放”模式后,会在顶级“资产”文件夹中找到名为“WebViewAllowedDomains.asset”的资产

WebSlate 允许的域资产。

单击此资产会显示在初始 URL 域之外访问的其他域的列表。 可以右键单击、复制值,然后将这些值粘贴到 WebSlate 组件的“允许的域”字段中。

复制允许的域。 粘贴允许的域。

注意:此选项无法在上传的场景中启用。 保持启用“收集允许的域”不会消除最终场景中的限制。 但是,只要域添加到 WebSlate,允许的域列表就会保留,并且将允许导航。

手动添加域

如果已经知道需要哪些域,可以通过展开“允许的域”下拉列表并将补充域添加到Unity GUI 中的列表,手动将它们添加到 WebSlate。

使用加号按钮手动添加允许的域

后续步骤