Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 9b6c13f

Browse files
committed
improve bridge framework code
1 parent 3728637 commit 9b6c13f

File tree

2 files changed

+9
-11
lines changed

2 files changed

+9
-11
lines changed

‎WKWebViewJavascriptBridge/WKWebViewJavascriptBridge.swift‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ public class WKWebViewJavascriptBridge: NSObject {
1414
private let iOS_Native_InjectJavascript = "iOS_Native_InjectJavascript"
1515
private let iOS_Native_FlushMessageQueue = "iOS_Native_FlushMessageQueue"
1616

17-
private weak var webView: WKWebView!
17+
private weak var webView: WKWebView?
1818
private var base: WKWebViewJavascriptBridgeBase!
1919

2020
public init(webView: WKWebView) {
2121
super.init()
2222
self.webView = webView
23-
self.webView.configuration.userContentController.add(self, name: iOS_Native_InjectJavascript)
24-
self.webView.configuration.userContentController.add(self, name: iOS_Native_FlushMessageQueue)
23+
self.webView?.configuration.userContentController.add(self, name: iOS_Native_InjectJavascript)
24+
self.webView?.configuration.userContentController.add(self, name: iOS_Native_FlushMessageQueue)
2525
base = WKWebViewJavascriptBridgeBase()
2626
base.delegate = self
2727
}
@@ -43,7 +43,7 @@ public class WKWebViewJavascriptBridge: NSObject {
4343
}
4444

4545
func flushMessageQueue() {
46-
webView.evaluateJavaScript("WKWebViewJavascriptBridge._fetchQueue();") { (result, error) in
46+
webView?.evaluateJavaScript("WKWebViewJavascriptBridge._fetchQueue();") { (result, error) in
4747
if error != nil {
4848
print("WKWebViewJavascriptBridge: WARNING: Error when trying to fetch data from WKWebView: \(String(describing: error))")
4949
}
@@ -56,7 +56,7 @@ public class WKWebViewJavascriptBridge: NSObject {
5656

5757
extension WKWebViewJavascriptBridge: WKWebViewJavascriptBridgeBaseDelegate {
5858
func evaluateJavascript(javascript: String) {
59-
webView.evaluateJavaScript(javascript, completionHandler: nil)
59+
webView?.evaluateJavaScript(javascript, completionHandler: nil)
6060
}
6161
}
6262

‎WKWebViewJavascriptBridge/WKWebViewJavascriptBridgeBase.swift‎

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,16 +59,14 @@ public class WKWebViewJavascriptBridgeBase: NSObject {
5959
log(message)
6060

6161
if let responseID = message["responseID"] as? String {
62-
let callback = responseCallbacks[responseID]
63-
callback!(message["responseData"]!)
62+
guardlet callback = responseCallbacks[responseID]else{continue}
63+
callback(message["responseData"])
6464
responseCallbacks.removeValue(forKey: responseID)
6565
} else {
6666
var callback: Callback?
6767
if let callbackID = message["callbackID"] {
6868
callback = { (_ responseData: Any?) -> Void in
69-
guard responseData != nil else { return }
70-
71-
let msg = ["responseID": callbackID, "responseData": responseData!] as Message
69+
let msg = ["responseID": callbackID, "responseData": responseData ?? NSNull()] as Message
7270
self.queue(message: msg)
7371
}
7472
} else {
@@ -128,7 +126,7 @@ public class WKWebViewJavascriptBridgeBase: NSObject {
128126
var result: String?
129127
do {
130128
let data = try JSONSerialization.data(withJSONObject: message, options: pretty ? .prettyPrinted : JSONSerialization.WritingOptions(rawValue: 0))
131-
result = String(data: data, encoding: .utf8)!
129+
result = String(data: data, encoding: .utf8)
132130
} catch let error {
133131
log(error)
134132
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /