SFSafariViewController 在导航栏和底部工具栏中是不是始终具有相同的 UI 元素?
Posted
技术标签:
【中文标题】SFSafariViewController 在导航栏和底部工具栏中是不是始终具有相同的 UI 元素?【英文标题】:Will SFSafariViewController always have the same UI elements in the navigation bar and the bottom toolbar?SFSafariViewController 在导航栏和底部工具栏中是否始终具有相同的 UI 元素? 【发布时间】:2020-01-10 20:45:55 【问题描述】:我有一个使用 SFSafariViewController 的应用程序。用户单击一个按钮,应用程序内会出现一个 web 视图,显示网站的内容。我正在使用 XCUITest 框架来测试 UI。
我注意到当 webview 出现时,导航栏和底部工具栏似乎总是有相同的 UI 元素。
导航栏 UI 元素(从左到右):
-
“完成”按钮
网址链接
重新加载按钮
底部工具栏 UI 元素(从左到右):
-
后退箭头按钮
前进箭头按钮
分享按钮
在 Safari 中打开按钮
从 UI 测试的角度来看,我是否可以假设这些 UI 元素将始终作为 SFSafari VC 的默认值存在?
【问题讨论】:
【参考方案1】:您可以在此处查看 SFSafariViewController 的完整配置:https://developer.apple.com/documentation/safariservices/sfsafariviewcontroller/dismissbuttonstyle。据我所知,以下是开箱即用的配置:
-
左上角的“完成”按钮可以更改为不同的外观(
Done
、Close
和Cancel
是选项):https://developer.apple.com/documentation/safariservices/sfsafariviewcontroller/dismissbuttonstyle
您可以使用barCollapsingEnabled
属性使顶部导航栏“可折叠”。 https://developer.apple.com/documentation/safariservices/sfsafariviewcontroller/configuration/2887469-barcollapsingenabled
您可以更改bar
和controls
(按钮)的首选色调。
除此之外,SFSafariViewController 几乎没有可用于自定义的选项。
所以你的问题的答案是:不,你不能假设这些元素会一直存在。但是,在大多数情况下它们会存在。总的来说,我不会假设任何事情,因为 Apple 总是可以在未来的 ios 版本中更改它。
【讨论】:
以上是关于SFSafariViewController 在导航栏和底部工具栏中是不是始终具有相同的 UI 元素?的主要内容,如果未能解决你的问题,请参考以下文章
使用 SFSafariViewController 的主要优势是啥?
如何在 SwiftUI 中使用 SFSafariViewController?
SFSafariViewController 显示任何 URL 的空白屏幕