SafariView

license

关于

SafariView 是一个软件包,如果您想在应用程序内部显示网页内容(例如您的网站),可以使用它。 在 UIKit 中有一个名为 SFSafariController 的组件可以实现此功能,但此组件不适用于 SwiftUI。 如果您使用此软件包,您可以像与原生 SwiftUI View 交互一样使用它。

⚠️ 重要提示
由于此视图使用 SFSafariViewController,请注意 Apple 针对该特定组件的规则。 您可以在此处查看文档
“根据 App Store 审核指南,此视图(控制器)必须用于向用户清晰地呈现信息;该控制器不得被其他视图或层隐藏或遮蔽。 此外,应用程序不得使用此视图在用户不知情或未经其同意的情况下跟踪用户。”

安装和使用

安装

  1. 将 SwiftPackage 导入到 Xcode 中
  2. 该软件包应出现在左侧面板的导航器中
  3. 将 SafariView 添加到 sheet() 或 fullscreen() 修饰符
  4. 重新构建您的代码

示例代码

import SwiftUI
import SafariView

struct ContentView: View {

    @State private var isPresented = false

    var body: some View {
        Button("Open in SafariView") {
            isPresented.toggle()
        }
        .sheet(isPresented: $isPresented) {
            SafariView(url: URL(string: "https://apple.com")!)
        }
    }
}

如果您想查看关于如何使用的完整演示项目,请在此处查看 here

截图

自定义

此视图的初始化中唯一强制性的参数是 url⚠️请确保您提供有效的 URL。
除此之外,您还可以在初始化器中指定可选参数以进行自定义。 可用参数

一个可能的初始化示例可以是

SafariView(
	url: URL(string: "https://apple.com")!,
	isBarCollapsing: true,
	entersReaderIfAvailable: true)

问题

如果您发现任何错误或对改进有任何想法,您可以在此处创建一个 issue。 尝试尽可能精确地描述您的问题。 也欢迎您贡献并创建 Pull Request。

许可证

此项目根据 MIT 许可证获得许可。

有关更多信息,请参见 LICENSE