ios - 如何在应用程序内浏览器中打开在我的 iOS 应用程序中单击的任何 URL?

标签 ios swift inappbrowser sfsafariviewcontroller

如何设置规则,以便当我的用户单击我的应用程序中的任何 Web 链接时,它会在应用程序内浏览器而不是 Safari 中打开?

上下文:我正在构建一个应用程序,该应用程序有多个位置,其中链接要么由我嵌入,要么通过各种用户交互加载,例如指向包含另一个链接的页面的链接。我想确保用户很少离开我的应用,因此想在已经开发的应用内浏览器中打开所有外部 Web 链接

目标版本:iOS 11。 环境/语言:Swift 4

最佳答案

使用 SFSafariViewController 的简单解决方案在单独的包中可用

import SafariServices

Swift 4、iOS 9.0+

let url = URL(string: "your URL here")
let vc = SFSafariViewController(url: url)
present(vc, animated: true)

如果您需要更多控制 - 使用 Configuration参数(Swift 4、iOS 11.0+):

例子:

let config = SFSafariViewController.Configuration()
config.entersReaderIfAvailable = true

let url = URL(string: "your URL here")
let vc = SFSafariViewController(url: url, configuration: config)
present(vc, animated: true)

关于ios - 如何在应用程序内浏览器中打开在我的 iOS 应用程序中单击的任何 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52827616/

相关文章:

javascript - 应用内浏览器不会关闭

paypal - 如何使用 paypal cordova 插件测试我的 cordova 应用程序

ios - Ionic InAppBrowser 没有完成/关闭按钮 iOS

ios - 新的 facebook-ios-sdk 中没有 initWithAppId 方法

ios - 如何测试触摸对话框并进行真正的应用内购买?

Swift:类型不符合协议(protocol) 'ArrayLiteralConvertible'

swift - 从 CoreData Identity 排序数组

ios - 无法自动选择 Xcode 项目

ios - 折叠隐藏的 UIButton

ios - 难以理解数组追加