WebSlate 性能和安全性

性能

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

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

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

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

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

    带暂停防护的 WebSlate 圆圈

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

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

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

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

    • 如果 Unity 的呈现管道超出呈现 WebSlates(当前为 10 毫秒)的阈值,则 CPA 工具会发出警告。

    • 性能探查器也提供相同的度量值。 当超出类别的预算津贴时,性能探查器上的组通常将颜色从绿色更改为红色。 目前,WebSlate 组仅显示为绿色,直到为 WebSlates 合理化合理的呈现时间预算。

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

安全限制

  • 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”的资产。

WebSlate 允许的域资产。

单击此资产将为你提供在初始 URL 域之外访问的额外域的列表。 可以右键单击、复制值,然后将值粘贴到 WebSlate 组件的“允许的域”字段中。

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

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

手动添加域

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

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

后续步骤