我想更改SFSafariViewController导航栏上的完成按钮标题外观(iOS9.0 更高版本)。
我正在尝试使用显示 URL SFSafariViewController。这是我的代码:(topmostController指向,是的,最顶层的控制器)
SFSafariViewController *safariVc = [[SFSafariViewController alloc] initWithURL:url];
[[UIViewController topmostController] presentViewController:safariVc animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
无论我尝试提供什么 URL,我都会得到以下信息:
地址栏空白且无响应,刷新按钮不执行任何操作,所有底部按钮均被禁用,没有页面,顶部栏布局混乱。
我已经多次尝试使用多个域,但它总是相同的。我究竟做错了什么?
objective-c uiviewcontroller ios sfsafariviewcontroller ios10
如何检查 URL 在 Swift 4 中是否有效?我正在构建一个供个人使用的简单网络浏览器,尽管我知道每次都要输入完整的 URL,但我宁愿收到警报,也不愿忘记时应用程序崩溃。
import UIKit
import SafariServices
class MainViewController: UIViewController {
@IBOutlet weak var urlTextField: UITextField!
@IBAction func startBrowser(_ sender: Any) {
if let url = self.urlTextField.text {
let sfViewController = SFSafariViewController(url: NSURL(string: url)! as URL)
self.present(sfViewController, animated: true, completion: nil)
}
print ("Now browsing in SFSafariViewController")
}
}
Run Code Online (Sandbox Code Playgroud)
例如,如果我输入不带 http:// 或 https:// 的网址,应用程序将崩溃并显示错误'NSInvalidArgumentException', reason: 'The specified URL has an unsupported scheme. Only HTTP and HTTPS URLs are supported.'
在我的应用程序中,我正在实现一项功能,其中某些部分我需要使用 SFSafariViewController 打开我的网站。为此,我也不希望用户在 Web 应用程序中再次登录,因此在打开 SFSafariViewController 之前,我想传递一些令牌、邮件和其他所需信息。那么这是否可行并且允许我使用浏览器缓存。