【问题标题】:Swift 3, iOS 10.3 - Preload UIWebView during Launch ScreenSwift 3,iOS 10.3 - 在启动屏幕期间预加载 UIWebView
【发布时间】:2017-04-20 08:12:58
【问题描述】:

我有一个应用程序,它在不同的 ViewControllers 上有 多个 WebViews,但加载每个需要大约 3 秒。是否可以在 Launch Screen 期间开始加载网页,或者当用户在 FirstViewController 的网页上时加载 SecondViewController 的 WebView?

    import UIKit

    class dabs: UIViewController {
        @IBOutlet weak var webView_dabs: UIWebView!

    override func viewDidLoad() {
        super.viewDidLoad()
        let websiteURL = URL(string: "https://www.skybriefing.com/portal/dabs")
        let websiteURLRequest = URLRequest(url: websiteURL!)
        webView_dabs.loadRequest(websiteURLRequest)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

【问题讨论】:

标签: ios swift uiwebview preload


【解决方案1】:

也许最好的方法是在视图控制器的视图上方放置一个与初始屏幕完全相同的临时视图。

将您的视图控制器作为代理添加到您的UIWebView,并在方法webViewDidFinishLoad: 中关闭临时视图。

理论上,用户只会认为启动画面花费了更多时间。

【讨论】:

  • 注意:除非支持 iOS 7 及更低版本,否则 OP 应该使用WKWebView 而不是UIWebView。随附的 WKNavigationDelegate 类有一个在完成时调用的 method 和在终止时调用的 another
  • 好主意,但由于我的应用程序中有多个 WebView,它不起作用,而且对用户来说会很长
【解决方案2】:

在你的网页视图中使用活动指示器,这样当网站加载时活动指示器将开始动画,当网站完全加载时,动画停止。

在情节提要中添加网络视图和活动指示器。

现在将此代码添加到您的 swift 文件中。

import UIKit

class WebViewController: UIViewController, UIWebViewDelegate {

@IBOutlet var webView: UIWebView!

@IBOutlet var activityIndicator: UIActivityIndicatorView!

override func viewDidLoad() {

    super.viewDidLoad()

    // Do any additional setup after loading the view.

    let url = URL(string: "https://google.com")

    let request = URLRequest(url: url!)

    webView.loadRequest(request)

    webView.scalesPageToFit = true
}

func webViewDidStartLoad(_ webView: UIWebView) {

     print("Activity indicator start")

    activityIndicator.startAnimating()

}

func webViewDidFinishLoad(_ webView: UIWebView) {

     print("Activity indicator stop")

    activityIndicator.stopAnimating()

}
}

确保在您的班级中添加委托。

【讨论】:

    猜你喜欢
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-08
    • 2017-06-24
    • 1970-01-01
    • 2017-04-06
    • 2016-02-23
    相关资源
    最近更新 更多