gpt4 book ai didi

objective-c - 我可以为 Safari View Controller 预加载 Web 内容吗?

转载 作者:IT王子 更新时间:2023-10-29 05:13:23 26 4
gpt4 key购买 nike

我可以毫无问题地创建 Safari View Controller:

let svc = SFSafariViewController(URL: NSURL(string: remote_url)!, entersReaderIfAvailable: true)
self.presentViewController(svc, animated: true, completion: nil)

在向用户显示 View Controller 之前,有什么方法可以预加载 URL 吗?

例如,我可以先在后台预加载 URL(网页内容),然后在用户点击某些内容后,我可以立即将内容显示在 Safari View Controller 中。用户会感觉页面加载更快或更即时。

附言解决方法/黑客攻击也是可以接受的。例如,使用缓存或在后台启动 View Controller 等。

编辑:请仅考虑 SFSafariViewController。

最佳答案

这是一个解决方案。显然,如果您立即单击按钮,您将看到正在加载。但基本上,我加载浏览器并将 View 放在另一个 View 后面,然后在另一个 View 中放置一个按钮。

当您按下按钮时,浏览器会被带到最前面,并且已经加载。这里唯一的问题是我没有使用任何转换,但这至少是一种解决方案。

import UIKit
import SafariServices

class ViewController: UIViewController {
var svc = SFSafariViewController(URL: NSURL(string: "https://microsoft.com/")!, entersReaderIfAvailable: true)
var safariView:UIView?
let containerView = UIView()
let btn = UIButton()

override func viewDidLoad() {
super.viewDidLoad()
//let tmpView = svc.view
addChildViewController(svc)
svc.didMoveToParentViewController(self)
svc.view.frame = view.frame
containerView.frame = view.frame
containerView.backgroundColor = UIColor.redColor()
safariView = svc.view
view.addSubview(safariView!)
view.addSubview(containerView)

btn.setTitle("Webizer", forState: UIControlState.Normal)
btn.titleLabel!.textColor = UIColor.blackColor()
btn.addTarget(self, action: "buttonTouched:", forControlEvents: .TouchUpInside)
btn.frame = CGRectMake(20, 50, 100, 100)
containerView.addSubview(btn)

view.sendSubviewToBack(safariView!)

// Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

@IBAction func buttonTouched(sender: AnyObject) {
view.bringSubviewToFront(safariView!)
//self.presentViewController(svc, animated: true, completion: nil)
}


}

关于objective-c - 我可以为 Safari View Controller 预加载 Web 内容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35129632/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com