web view delegate with response cache

This commit is contained in:
Chris Li 2016-09-12 10:43:43 -04:00
parent 73774c57a6
commit 962f5b8f3e
6 changed files with 18 additions and 37 deletions

View File

@ -30,11 +30,15 @@ class MainController: UIViewController {
private(set) var tableOfContentsController: TableOfContentsController? private(set) var tableOfContentsController: TableOfContentsController?
let searchBar = SearchBar() let searchBar = SearchBar()
private(set) var article: Article? { var article: Article? {
willSet(newArticle) { willSet(newArticle) {
article?.removeObserver(self, forKeyPath: "isBookmarked") article?.removeObserver(self, forKeyPath: "isBookmarked")
newArticle?.addObserver(self, forKeyPath: "isBookmarked", options: .New, context: context) newArticle?.addObserver(self, forKeyPath: "isBookmarked", options: .New, context: context)
} }
didSet {
// searchbar title
// bookmarked or not
}
} }
// MARK: - Override // MARK: - Override

View File

@ -23,15 +23,20 @@ extension MainController: UIWebViewDelegate, SFSafariViewControllerDelegate,
} }
func webViewDidStartLoad(webView: UIWebView) { func webViewDidStartLoad(webView: UIWebView) {
URLResponseCache.shared.start()
} }
func webViewDidFinishLoad(webView: UIWebView) { func webViewDidFinishLoad(webView: UIWebView) {
URLResponseCache.shared.stop()
} }
func webView(webView: UIWebView, didFailLoadWithError error: NSError) { func webView(webView: UIWebView, didFailLoadWithError error: NSError) {
// handle error
print(error) print(error)
article = nil
URLResponseCache.shared.stop()
} }
// MARK: - SFSafariViewControllerDelegate // MARK: - SFSafariViewControllerDelegate

View File

@ -49,7 +49,7 @@
</dict> </dict>
</array> </array>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>1.8.133</string> <string>1.8.140</string>
<key>ITSAppUsesNonExemptEncryption</key> <key>ITSAppUsesNonExemptEncryption</key>
<false/> <false/>
<key>LSRequiresIPhoneOS</key> <key>LSRequiresIPhoneOS</key>

View File

@ -21,7 +21,7 @@
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>1.8.135</string> <string>1.8.142</string>
<key>NSExtension</key> <key>NSExtension</key>
<dict> <dict>
<key>NSExtensionMainStoryboard</key> <key>NSExtensionMainStoryboard</key>

View File

@ -1,33 +0,0 @@
//
// PacketAnalyzer.swift
// Kiwix
//
// Created by Chris Li on 7/18/16.
// Copyright © 2016 Chris. All rights reserved.
//
import UIKit
class PacketAnalyzer {
static let sharedInstance = PacketAnalyzer()
private var listening = false
private var images = [(data: NSData, url: NSURL)]()
func startListening() {
listening = true
}
func stopListening() {
listening = false
images.removeAll()
}
func addImage(data: NSData, url: NSURL) {
guard listening else {return}
images.append((data, url))
}
func chooseImage() -> (data: NSData, url: NSURL)? {
return images.first
}
}

View File

@ -15,14 +15,19 @@ class URLResponseCache {
func start() { func start() {
listening = true listening = true
clear()
} }
func stop() { func stop() {
listening = false listening = false
}
func clear() {
responses.removeAll() responses.removeAll()
} }
func cache(response response: NSURLResponse) { func cache(response response: NSURLResponse) {
guard listening else {return}
guard let url = response.URL else {return} guard let url = response.URL else {return}
responses[url] = response responses[url] = response
} }