mirror of
https://github.com/kiwix/kiwix-apple.git
synced 2025-09-27 13:59:04 -04:00
web view delegate with response cache
This commit is contained in:
parent
73774c57a6
commit
962f5b8f3e
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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
|
|
||||||
}
|
|
||||||
}
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user