SFSafariViewController 在导航栏和底部工具栏中是否始终具有相同的 UI 元素?

Will SFSafariViewController always have the same UI elements in the navigation bar and the bottom toolbar?

我有一个使用 SFSafariViewController 的应用程序。用户点击一个按钮,一个 webview 出现在应用程序中,显示网站的内容。我正在使用 XCUI 测试框架来测试 UI。

我注意到当 webview 出现时,导航栏和底部工具栏似乎总是有相同的 UI 元素。

导航栏UI 元素(从左到右):

  1. "Done" 按钮
  2. URL link
  3. 重新加载按钮

底部工具栏UI 元素(从左到右):

  1. 后退箭头按钮
  2. 前进箭头按钮
  3. 分享按钮
  4. “在 Safari 中打开”按钮

从 UI 测试的角度来看,我可以假设这些 UI 元素将始终作为 SFSafari VC 的默认值存在吗?

您可以在此处查看 SFSafariViewController 可用的完整配置:https://developer.apple.com/documentation/safariservices/sfsafariviewcontroller/dismissbuttonstyle。据我所知,以下是开箱即用的配置:

  1. 左上角的"done"按钮可以更改为不同的外观(DoneCloseCancel是选项):https://developer.apple.com/documentation/safariservices/sfsafariviewcontroller/dismissbuttonstyle
  2. 您可以使用 barCollapsingEnabled 属性 制作顶部导航栏 "collapsable"。 https://developer.apple.com/documentation/safariservices/sfsafariviewcontroller/configuration/2887469-barcollapsingenabled

  3. 您可以更改 barcontrols(按钮)的首选色调。

除此之外,SFSafariViewController 几乎没有可用于自定义的选项。

所以您的问题的答案是:不,您不能假设这些元素将始终存在。但是,在大多数情况下它们会存在。总的来说,我不会假设任何东西,因为 Apple 可以在未来的 iOS 版本中随时更改它。