Skip to content

Commit 2208037

Browse files
committed
improve the demo code
1 parent 0f829e5 commit 2208037

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

WKWebViewJavascriptBridgeDemo/ViewController.swift

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,40 @@ import WKWebViewJavascriptBridge
1313
class ViewController: UIViewController {
1414
let webView = WKWebView(frame: CGRect(), configuration: WKWebViewConfiguration())
1515
var bridge: WKWebViewJavascriptBridge!
16+
let callbackBtn = UIButton(type: .custom)
17+
let reloadBtn = UIButton(type: .custom)
1618

1719
override func viewDidLoad() {
1820
super.viewDidLoad()
21+
22+
// setup webView
1923
webView.frame = view.bounds
2024
webView.navigationDelegate = self
2125
view.addSubview(webView)
26+
27+
// setup btns
28+
callbackBtn.backgroundColor = .purple
29+
callbackBtn.setTitle("Call Handler", for: .normal)
30+
callbackBtn.addTarget(self, action: #selector(callHandler), for: .touchUpInside)
31+
view.insertSubview(callbackBtn, aboveSubview: webView)
32+
callbackBtn.frame = CGRect(x: 10, y: UIScreen.main.bounds.size.height - 80, width: UIScreen.main.bounds.size.width * 0.4, height: 35)
33+
reloadBtn.backgroundColor = .orange
34+
reloadBtn.setTitle("Reload Webview", for: .normal)
35+
reloadBtn.addTarget(self, action: #selector(reloadWebView), for: .touchUpInside)
36+
view.insertSubview(reloadBtn, aboveSubview: webView)
37+
reloadBtn.frame = CGRect(x: UIScreen.main.bounds.size.width * 0.6 - 10, y: UIScreen.main.bounds.size.height - 80, width: UIScreen.main.bounds.size.width * 0.4, height: 35)
38+
39+
// setup bridge
2240
bridge = WKWebViewJavascriptBridge(webView: webView)
2341
bridge.register(handlerName: "testiOSCallback") { (paramters, callback) in
2442
print("testiOSCallback called: \(String(describing: paramters))")
2543
callback!("Response from testiOSCallback")
2644
}
45+
bridge.call(handlerName: "testJavascriptHandler", data: ["foo": "before ready"], callback: nil)
46+
}
47+
48+
override func viewWillAppear(_ animated: Bool) {
49+
super.viewWillAppear(animated)
2750
loadDemoPage()
2851
}
2952

@@ -46,6 +69,17 @@ class ViewController: UIViewController {
4669
print("webView loadDemoPage error: \(error)")
4770
}
4871
}
72+
73+
@objc func callHandler() {
74+
let data = ["greetingFromiOS": "Hi there, JS!"]
75+
bridge.call(handlerName: "testJavascriptHandler", data: data) { (response) in
76+
print("testJavascriptHandler responded: \(String(describing: response))")
77+
}
78+
}
79+
80+
@objc func reloadWebView() {
81+
webView.reload()
82+
}
4983
}
5084

5185
extension ViewController: WKNavigationDelegate {

0 commit comments

Comments
 (0)