From 2ce3b75e622cd83e7520196f864acf14ebdf2a69 Mon Sep 17 00:00:00 2001 From: Chris Li Date: Sun, 27 Nov 2016 07:04:06 -0500 Subject: [PATCH] commit --- Kiwix-iOS/Controller/Main/JSInjection.swift | 6 ++++++ Kiwix-iOS/Controller/Main/MainDelegates.swift | 7 +++++-- Kiwix-iOS/Info.plist | 2 +- Kiwix-iOSWidgets/Bookmarks/Info.plist | 2 +- Kiwix/JavaScripts/getSnippet.js | 19 +------------------ Kiwix/JavaScripts/injection.js | 19 +++++++++++++++++++ 6 files changed, 33 insertions(+), 22 deletions(-) diff --git a/Kiwix-iOS/Controller/Main/JSInjection.swift b/Kiwix-iOS/Controller/Main/JSInjection.swift index 295cba9c..f5b6ac5a 100644 --- a/Kiwix-iOS/Controller/Main/JSInjection.swift +++ b/Kiwix-iOS/Controller/Main/JSInjection.swift @@ -11,6 +11,12 @@ import JavaScriptCore class JS { + class func inject(webView: UIWebView) { + guard let url = Bundle.main.url(forResource: "injection", withExtension: "js"), + let jString = try? String(contentsOf: url) else {return} + webView.stringByEvaluatingJavaScript(from: jString) + } + class func preventDefaultLongTap(webView: UIWebView) { let jString = "document.body.style.webkitTouchCallout='none';" webView.context.evaluateScript(jString) diff --git a/Kiwix-iOS/Controller/Main/MainDelegates.swift b/Kiwix-iOS/Controller/Main/MainDelegates.swift index 070e4200..449b7808 100644 --- a/Kiwix-iOS/Controller/Main/MainDelegates.swift +++ b/Kiwix-iOS/Controller/Main/MainDelegates.swift @@ -28,6 +28,7 @@ extension MainController: UIWebViewDelegate, SFSafariViewControllerDelegate { } func webViewDidFinishLoad(_ webView: UIWebView) { + JS.inject(webView: webView) JS.preventDefaultLongTap(webView: webView) URLResponseCache.shared.stop() @@ -157,8 +158,10 @@ extension MainController: ButtonDelegates { func didLongPressBookmarkButton() { showBookmarkHUD() -// guard let url -// let article = Article.fetch(url: <#T##URL#>, context: <#T##NSManagedObjectContext#>) + guard let url = webView.request?.url, + let article = Article.fetch(url: url, context: AppDelegate.persistentContainer.viewContext) else {return} + article.title = JS.getTitle(from: webView) + } } diff --git a/Kiwix-iOS/Info.plist b/Kiwix-iOS/Info.plist index 62c93e4d..131ff26f 100644 --- a/Kiwix-iOS/Info.plist +++ b/Kiwix-iOS/Info.plist @@ -49,7 +49,7 @@ CFBundleVersion - 1.8.3396 + 1.8.3401 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS diff --git a/Kiwix-iOSWidgets/Bookmarks/Info.plist b/Kiwix-iOSWidgets/Bookmarks/Info.plist index 217f17bb..2ea4ebe5 100644 --- a/Kiwix-iOSWidgets/Bookmarks/Info.plist +++ b/Kiwix-iOSWidgets/Bookmarks/Info.plist @@ -21,7 +21,7 @@ CFBundleSignature ???? CFBundleVersion - 1.8.3396 + 1.8.3401 NSExtension NSExtensionMainStoryboard diff --git a/Kiwix/JavaScripts/getSnippet.js b/Kiwix/JavaScripts/getSnippet.js index d508e013..243a6806 100644 --- a/Kiwix/JavaScripts/getSnippet.js +++ b/Kiwix/JavaScripts/getSnippet.js @@ -1,19 +1,2 @@ -function getSnippet() { - var element = document.getElementById('mw-content-text'); - if (element) { - var children = element.children; - for (i = 0; i < children.length; i++) { - var child = children[i]; - if (child.tagName == 'P') { - var text = child.textContent || child.innerText || ""; - if (text.replace(/\s/g, '').length) { - var regex = /\[[0-9|a-z|A-Z| ]*\]/g; - text = text.replace(regex, ""); - return text; - } - } - } - } - return null; -} + getSnippet(); diff --git a/Kiwix/JavaScripts/injection.js b/Kiwix/JavaScripts/injection.js index 1dae06e1..88560198 100644 --- a/Kiwix/JavaScripts/injection.js +++ b/Kiwix/JavaScripts/injection.js @@ -136,3 +136,22 @@ function startCallBack() { function stopCallBack() { window.onscroll = undefined; } + +function getSnippet() { + var element = document.getElementById('mw-content-text'); + if (element) { + var children = element.children; + for (i = 0; i < children.length; i++) { + var child = children[i]; + if (child.tagName == 'P') { + var text = child.textContent || child.innerText || ""; + if (text.replace(/\s/g, '').length) { + var regex = /\[[0-9|a-z|A-Z| ]*\]/g; + text = text.replace(regex, ""); + return text; + } + } + } + } + return null; +}