Skip to content

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+
guard let 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)