@capgo/inappbrowser 0.3.0 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/CapgoInappbrowser.podspec +1 -1
  2. package/README.md +4 -4
  3. package/android/build.gradle +9 -9
  4. package/android/src/main/java/ee/forgr/capacitor_inappbrowser/InAppBrowserPlugin.java +59 -52
  5. package/android/src/main/java/ee/forgr/capacitor_inappbrowser/Options.java +1 -0
  6. package/android/src/main/java/ee/forgr/capacitor_inappbrowser/WebViewCallbacks.java +2 -0
  7. package/android/src/main/java/ee/forgr/capacitor_inappbrowser/WebViewDialog.java +96 -91
  8. package/android/src/main/res/layout/activity_browser.xml +1 -1
  9. package/android/src/main/res/values/browser_theme.xml +3 -0
  10. package/android/src/main/res/values/styles.xml +2 -10
  11. package/dist/docs.json +4 -4
  12. package/dist/esm/definitions.js.map +1 -1
  13. package/dist/esm/index.js +1 -1
  14. package/dist/esm/index.js.map +1 -1
  15. package/dist/esm/web.js.map +1 -1
  16. package/dist/plugin.cjs.js +1 -3
  17. package/dist/plugin.cjs.js.map +1 -1
  18. package/dist/plugin.js +1 -3
  19. package/dist/plugin.js.map +1 -1
  20. package/ios/Plugin/Assets.xcassets/Back.imageset/Back.png +0 -0
  21. package/ios/Plugin/Assets.xcassets/Back.imageset/Back@2x.png +0 -0
  22. package/ios/Plugin/Assets.xcassets/Back.imageset/Back@3x.png +0 -0
  23. package/ios/Plugin/Assets.xcassets/Back.imageset/Contents.json +26 -0
  24. package/ios/Plugin/Assets.xcassets/Contents.json +6 -0
  25. package/ios/Plugin/Assets.xcassets/Forward.imageset/Contents.json +26 -0
  26. package/ios/Plugin/Assets.xcassets/Forward.imageset/Forward.png +0 -0
  27. package/ios/Plugin/Assets.xcassets/Forward.imageset/Forward@2x.png +0 -0
  28. package/ios/Plugin/Assets.xcassets/Forward.imageset/Forward@3x.png +0 -0
  29. package/ios/Plugin/Enums.swift +4 -3
  30. package/ios/Plugin/InAppBrowserPlugin.swift +37 -38
  31. package/ios/Plugin/WKWebViewController.swift +152 -152
  32. package/package.json +19 -14
@@ -9,11 +9,11 @@
9
9
  import UIKit
10
10
  import WebKit
11
11
 
12
- fileprivate let estimatedProgressKeyPath = "estimatedProgress"
13
- fileprivate let titleKeyPath = "title"
14
- fileprivate let cookieKey = "Cookie"
12
+ private let estimatedProgressKeyPath = "estimatedProgress"
13
+ private let titleKeyPath = "title"
14
+ private let cookieKey = "Cookie"
15
15
 
16
- fileprivate struct UrlsHandledByApp {
16
+ private struct UrlsHandledByApp {
17
17
  public static var hosts = ["itunes.apple.com"]
18
18
  public static var schemes = ["tel", "mailto", "sms"]
19
19
  public static var blank = true
@@ -21,7 +21,7 @@ fileprivate struct UrlsHandledByApp {
21
21
 
22
22
  @objc public protocol WKWebViewControllerDelegate {
23
23
  @objc optional func webViewController(_ controller: WKWebViewController, canDismiss url: URL) -> Bool
24
-
24
+
25
25
  @objc optional func webViewController(_ controller: WKWebViewController, didStart url: URL)
26
26
  @objc optional func webViewController(_ controller: WKWebViewController, didFinish url: URL)
27
27
  @objc optional func webViewController(_ controller: WKWebViewController, didFail url: URL, withError error: Error)
@@ -29,34 +29,34 @@ fileprivate struct UrlsHandledByApp {
29
29
  }
30
30
 
31
31
  open class WKWebViewController: UIViewController {
32
-
32
+
33
33
  public init() {
34
34
  super.init(nibName: nil, bundle: nil)
35
35
  }
36
-
36
+
37
37
  public required init?(coder aDecoder: NSCoder) {
38
38
  super.init(coder: aDecoder)
39
39
  }
40
-
40
+
41
41
  public init(source: WKWebSource?) {
42
42
  super.init(nibName: nil, bundle: nil)
43
43
  self.source = source
44
44
  self.initWebview()
45
45
  }
46
-
46
+
47
47
  public init(url: URL) {
48
48
  super.init(nibName: nil, bundle: nil)
49
49
  self.source = .remote(url)
50
50
  self.initWebview()
51
51
  }
52
-
52
+
53
53
  public init(url: URL, headers: [String: String]) {
54
54
  super.init(nibName: nil, bundle: nil)
55
55
  self.source = .remote(url)
56
56
  self.setHeaders(headers: headers)
57
57
  self.initWebview()
58
58
  }
59
-
59
+
60
60
  open var hasDynamicTitle = false
61
61
  open var source: WKWebSource?
62
62
  /// use `source` instead
@@ -74,7 +74,7 @@ open class WKWebViewController: UIViewController {
74
74
  var viewHeightLandscape: CGFloat?
75
75
  var viewHeightPortrait: CGFloat?
76
76
  var currentViewHeight: CGFloat?
77
-
77
+
78
78
  func setHeaders(headers: [String: String]) {
79
79
  self.headers = headers
80
80
  let userAgent = self.headers?["User-Agent"]
@@ -83,7 +83,7 @@ open class WKWebViewController: UIViewController {
83
83
  self.customUserAgent = userAgent
84
84
  }
85
85
  }
86
-
86
+
87
87
  internal var customUserAgent: String? {
88
88
  didSet {
89
89
  guard let agent = userAgent else {
@@ -92,7 +92,7 @@ open class WKWebViewController: UIViewController {
92
92
  webView?.customUserAgent = agent
93
93
  }
94
94
  }
95
-
95
+
96
96
  open var userAgent: String? {
97
97
  didSet {
98
98
  guard let originalUserAgent = originalUserAgent, let userAgent = userAgent else {
@@ -101,7 +101,7 @@ open class WKWebViewController: UIViewController {
101
101
  webView?.customUserAgent = [originalUserAgent, userAgent].joined(separator: " ")
102
102
  }
103
103
  }
104
-
104
+
105
105
  open var pureUserAgent: String? {
106
106
  didSet {
107
107
  guard let agent = pureUserAgent else {
@@ -110,13 +110,13 @@ open class WKWebViewController: UIViewController {
110
110
  webView?.customUserAgent = agent
111
111
  }
112
112
  }
113
-
113
+
114
114
  open var websiteTitleInNavigationBar = true
115
115
  open var doneBarButtonItemPosition: NavigationBarPosition = .right
116
116
  open var leftNavigaionBarItemTypes: [BarButtonItemType] = []
117
117
  open var rightNavigaionBarItemTypes: [BarButtonItemType] = []
118
118
  open var toolbarItemTypes: [BarButtonItemType] = [.back, .forward, .reload, .activity]
119
-
119
+
120
120
  open var backBarButtonItemImage: UIImage?
121
121
  open var forwardBarButtonItemImage: UIImage?
122
122
  open var reloadBarButtonItemImage: UIImage?
@@ -125,54 +125,54 @@ open class WKWebViewController: UIViewController {
125
125
 
126
126
  fileprivate var webView: WKWebView?
127
127
  fileprivate var progressView: UIProgressView?
128
-
128
+
129
129
  fileprivate var previousNavigationBarState: (tintColor: UIColor, hidden: Bool) = (.black, false)
130
130
  fileprivate var previousToolbarState: (tintColor: UIColor, hidden: Bool) = (.black, false)
131
-
131
+
132
132
  fileprivate var originalUserAgent: String?
133
-
134
- lazy fileprivate var backBarButtonItem: UIBarButtonItem = {
133
+
134
+ fileprivate lazy var backBarButtonItem: UIBarButtonItem = {
135
135
  let bundle = Bundle(for: WKWebViewController.self)
136
136
  return UIBarButtonItem(image: backBarButtonItemImage ?? UIImage(named: "Back", in: bundle, compatibleWith: nil), style: .plain, target: self, action: #selector(backDidClick(sender:)))
137
137
  }()
138
-
139
- lazy fileprivate var forwardBarButtonItem: UIBarButtonItem = {
138
+
139
+ fileprivate lazy var forwardBarButtonItem: UIBarButtonItem = {
140
140
  let bundle = Bundle(for: WKWebViewController.self)
141
141
  return UIBarButtonItem(image: forwardBarButtonItemImage ?? UIImage(named: "Forward", in: bundle, compatibleWith: nil), style: .plain, target: self, action: #selector(forwardDidClick(sender:)))
142
142
  }()
143
-
144
- lazy fileprivate var reloadBarButtonItem: UIBarButtonItem = {
143
+
144
+ fileprivate lazy var reloadBarButtonItem: UIBarButtonItem = {
145
145
  if let image = reloadBarButtonItemImage {
146
146
  return UIBarButtonItem(image: image, style: .plain, target: self, action: #selector(reloadDidClick(sender:)))
147
147
  } else {
148
148
  return UIBarButtonItem(barButtonSystemItem: .refresh, target: self, action: #selector(reloadDidClick(sender:)))
149
149
  }
150
150
  }()
151
-
152
- lazy fileprivate var stopBarButtonItem: UIBarButtonItem = {
151
+
152
+ fileprivate lazy var stopBarButtonItem: UIBarButtonItem = {
153
153
  if let image = stopBarButtonItemImage {
154
154
  return UIBarButtonItem(image: image, style: .plain, target: self, action: #selector(stopDidClick(sender:)))
155
155
  } else {
156
156
  return UIBarButtonItem(barButtonSystemItem: .stop, target: self, action: #selector(stopDidClick(sender:)))
157
157
  }
158
158
  }()
159
-
160
- lazy fileprivate var activityBarButtonItem: UIBarButtonItem = {
159
+
160
+ fileprivate lazy var activityBarButtonItem: UIBarButtonItem = {
161
161
  if let image = activityBarButtonItemImage {
162
162
  return UIBarButtonItem(image: image, style: .plain, target: self, action: #selector(activityDidClick(sender:)))
163
163
  } else {
164
164
  return UIBarButtonItem(barButtonSystemItem: .action, target: self, action: #selector(activityDidClick(sender:)))
165
165
  }
166
166
  }()
167
-
168
- lazy fileprivate var doneBarButtonItem: UIBarButtonItem = {
167
+
168
+ fileprivate lazy var doneBarButtonItem: UIBarButtonItem = {
169
169
  return UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneDidClick(sender:)))
170
170
  }()
171
-
172
- lazy fileprivate var flexibleSpaceBarButtonItem: UIBarButtonItem = {
171
+
172
+ fileprivate lazy var flexibleSpaceBarButtonItem: UIBarButtonItem = {
173
173
  return UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
174
174
  }()
175
-
175
+
176
176
  deinit {
177
177
  webView?.removeObserver(self, forKeyPath: estimatedProgressKeyPath)
178
178
  if websiteTitleInNavigationBar {
@@ -180,64 +180,64 @@ open class WKWebViewController: UIViewController {
180
180
  }
181
181
  webView?.removeObserver(self, forKeyPath: #keyPath(WKWebView.url))
182
182
  }
183
-
184
- override open func viewDidLoad(){
183
+
184
+ override open func viewDidLoad() {
185
185
  super.viewDidLoad()
186
186
  if self.webView == nil {
187
187
  self.initWebview()
188
188
  }
189
189
  }
190
-
190
+
191
191
  open func initWebview() {
192
-
192
+
193
193
  self.view.backgroundColor = UIColor.white
194
-
194
+
195
195
  self.extendedLayoutIncludesOpaqueBars = true
196
196
  self.edgesForExtendedLayout = [.bottom]
197
-
197
+
198
198
  let webConfiguration = WKWebViewConfiguration()
199
199
  let webView = WKWebView(frame: .zero, configuration: webConfiguration)
200
-
200
+
201
201
  webView.uiDelegate = self
202
202
  webView.navigationDelegate = self
203
-
203
+
204
204
  webView.allowsBackForwardNavigationGestures = true
205
205
  webView.isMultipleTouchEnabled = true
206
-
206
+
207
207
  webView.addObserver(self, forKeyPath: estimatedProgressKeyPath, options: .new, context: nil)
208
208
  if websiteTitleInNavigationBar {
209
209
  webView.addObserver(self, forKeyPath: titleKeyPath, options: .new, context: nil)
210
210
  }
211
- webView.addObserver(self, forKeyPath: #keyPath(WKWebView.url) , options: .new, context: nil)
212
- // NotificationCenter.default.addObserver(self, selector: #selector(restateViewHeight), name: UIDevice.orientationDidChangeNotification, object: nil)
213
-
211
+ webView.addObserver(self, forKeyPath: #keyPath(WKWebView.url), options: .new, context: nil)
212
+ // NotificationCenter.default.addObserver(self, selector: #selector(restateViewHeight), name: UIDevice.orientationDidChangeNotification, object: nil)
213
+
214
214
  self.view = webView
215
215
  self.webView = webView
216
-
216
+
217
217
  self.webView?.customUserAgent = self.customUserAgent ?? self.userAgent ?? self.originalUserAgent
218
-
218
+
219
219
  self.navigationItem.title = self.navigationItem.title ?? self.source?.absoluteString
220
-
220
+
221
221
  if let navigation = self.navigationController {
222
222
  self.previousNavigationBarState = (navigation.navigationBar.tintColor, navigation.navigationBar.isHidden)
223
223
  self.previousToolbarState = (navigation.toolbar.tintColor, navigation.toolbar.isHidden)
224
224
  }
225
-
226
- // self.restateViewHeight()
227
-
225
+
226
+ // self.restateViewHeight()
227
+
228
228
  if let s = self.source {
229
229
  self.load(source: s)
230
230
  } else {
231
231
  print("[\(type(of: self))][Error] Invalid url")
232
232
  }
233
233
  }
234
-
234
+
235
235
  open func setupViewElements() {
236
236
  self.setUpProgressView()
237
237
  self.setUpConstraints()
238
238
  self.addBarButtonItems()
239
239
  }
240
-
240
+
241
241
  @objc func restateViewHeight() {
242
242
  var bottomPadding = CGFloat(0.0)
243
243
  var topPadding = CGFloat(0.0)
@@ -272,35 +272,35 @@ open class WKWebViewController: UIViewController {
272
272
  self.currentViewHeight = self.viewHeightLandscape
273
273
  }
274
274
  }
275
-
276
- open override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
277
- // self.view.frame.size.height = self.currentViewHeight!
275
+
276
+ override open func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
277
+ // self.view.frame.size.height = self.currentViewHeight!
278
278
  }
279
-
280
- open override func viewWillLayoutSubviews() {
279
+
280
+ override open func viewWillLayoutSubviews() {
281
281
  restateViewHeight()
282
282
  if self.currentViewHeight != nil {
283
283
  self.view.frame.size.height = self.currentViewHeight!
284
284
  }
285
285
  }
286
-
286
+
287
287
  override open func viewWillAppear(_ animated: Bool) {
288
288
  super.viewWillAppear(animated)
289
289
  self.setupViewElements()
290
290
  setUpState()
291
291
  }
292
-
292
+
293
293
  override open func viewWillDisappear(_ animated: Bool) {
294
294
  super.viewWillDisappear(animated)
295
295
  rollbackState()
296
296
  }
297
-
297
+
298
298
  override open func didReceiveMemoryWarning() {
299
299
  super.didReceiveMemoryWarning()
300
300
  // Dispose of any resources that can be recreated.
301
301
  }
302
-
303
- override open func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
302
+
303
+ override open func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey: Any]?, context: UnsafeMutableRawPointer?) {
304
304
  switch keyPath {
305
305
  case estimatedProgressKeyPath?:
306
306
  guard let estimatedProgress = self.webView?.estimatedProgress else {
@@ -308,12 +308,12 @@ open class WKWebViewController: UIViewController {
308
308
  }
309
309
  self.progressView?.alpha = 1
310
310
  self.progressView?.setProgress(Float(estimatedProgress), animated: true)
311
-
311
+
312
312
  if estimatedProgress >= 1.0 {
313
313
  UIView.animate(withDuration: 0.3, delay: 0.3, options: .curveEaseOut, animations: {
314
314
  self.progressView?.alpha = 0
315
315
  }, completion: {
316
- finished in
316
+ _ in
317
317
  self.progressView?.setProgress(0, animated: false)
318
318
  })
319
319
  }
@@ -322,7 +322,7 @@ open class WKWebViewController: UIViewController {
322
322
  self.navigationItem.title = webView?.url?.host
323
323
  }
324
324
  case "URL":
325
- self.capBrowserPlugin?.notifyListeners("urlChangeEvent", data: ["url" : webView?.url?.absoluteString ?? ""])
325
+ self.capBrowserPlugin?.notifyListeners("urlChangeEvent", data: ["url": webView?.url?.absoluteString ?? ""])
326
326
  default:
327
327
  super.observeValue(forKeyPath: keyPath, of: object, change: change, context: context)
328
328
  }
@@ -331,7 +331,7 @@ open class WKWebViewController: UIViewController {
331
331
 
332
332
  // MARK: - Public Methods
333
333
  public extension WKWebViewController {
334
-
334
+
335
335
  func load(source s: WKWebSource) {
336
336
  switch s {
337
337
  case .remote(let url):
@@ -342,19 +342,19 @@ public extension WKWebViewController {
342
342
  self.load(string: str, base: base)
343
343
  }
344
344
  }
345
-
345
+
346
346
  func load(remote: URL) {
347
347
  webView?.load(createRequest(url: remote))
348
348
  }
349
-
349
+
350
350
  func load(file: URL, access: URL) {
351
351
  webView?.loadFileURL(file, allowingReadAccessTo: access)
352
352
  }
353
-
353
+
354
354
  func load(string: String, base: URL? = nil) {
355
355
  webView?.loadHTMLString(string, baseURL: base)
356
356
  }
357
-
357
+
358
358
  func goBackToFirstPage() {
359
359
  if let firstPageItem = webView?.backForwardList.backList.first {
360
360
  webView?.go(to: firstPageItem)
@@ -375,35 +375,35 @@ fileprivate extension WKWebViewController {
375
375
  if cookie.isSecure && url?.scheme != "https" {
376
376
  result = false
377
377
  }
378
-
378
+
379
379
  return result
380
380
  }
381
381
  }
382
382
  func createRequest(url: URL) -> URLRequest {
383
383
  var request = URLRequest(url: url)
384
-
384
+
385
385
  // Set up headers
386
386
  if let headers = headers {
387
387
  for (field, value) in headers {
388
388
  request.addValue(value, forHTTPHeaderField: field)
389
389
  }
390
390
  }
391
-
391
+
392
392
  // Set up Cookies
393
393
  if let cookies = availableCookies, let value = HTTPCookie.requestHeaderFields(with: cookies)[cookieKey] {
394
394
  request.addValue(value, forHTTPHeaderField: cookieKey)
395
395
  }
396
-
396
+
397
397
  return request
398
398
  }
399
-
399
+
400
400
  func setUpProgressView() {
401
401
  let progressView = UIProgressView(progressViewStyle: .default)
402
402
  progressView.trackTintColor = UIColor(white: 1, alpha: 0)
403
403
  self.progressView = progressView
404
404
  // updateProgressViewFrame()
405
405
  }
406
-
406
+
407
407
  func setUpConstraints() {
408
408
  if !(self.navigationController?.navigationBar.isHidden)! {
409
409
  self.progressView?.frame.origin.y = CGFloat((self.navigationController?.navigationBar.frame.height)!)
@@ -411,7 +411,7 @@ fileprivate extension WKWebViewController {
411
411
  webView?.addObserver(self, forKeyPath: #keyPath(WKWebView.estimatedProgress), options: .new, context: nil)
412
412
  }
413
413
  }
414
-
414
+
415
415
  func addBarButtonItems() {
416
416
  func barButtonItem(_ type: BarButtonItemType) -> UIBarButtonItem? {
417
417
  switch type {
@@ -440,36 +440,36 @@ fileprivate extension WKWebViewController {
440
440
  return item
441
441
  }
442
442
  }
443
-
444
- // if presentingViewController != nil {
445
- switch doneBarButtonItemPosition {
446
- case .left:
447
- if !leftNavigaionBarItemTypes.contains(where: { type in
448
- switch type {
449
- case .done:
450
- return true
451
- default:
452
- return false
453
- }
454
- }) {
455
- leftNavigaionBarItemTypes.insert(.done, at: 0)
443
+
444
+ // if presentingViewController != nil {
445
+ switch doneBarButtonItemPosition {
446
+ case .left:
447
+ if !leftNavigaionBarItemTypes.contains(where: { type in
448
+ switch type {
449
+ case .done:
450
+ return true
451
+ default:
452
+ return false
456
453
  }
457
- case .right:
458
- if !rightNavigaionBarItemTypes.contains(where: { type in
459
- switch type {
460
- case .done:
461
- return true
462
- default:
463
- return false
464
- }
465
- }) {
466
- rightNavigaionBarItemTypes.insert(.done, at: 0)
454
+ }) {
455
+ leftNavigaionBarItemTypes.insert(.done, at: 0)
456
+ }
457
+ case .right:
458
+ if !rightNavigaionBarItemTypes.contains(where: { type in
459
+ switch type {
460
+ case .done:
461
+ return true
462
+ default:
463
+ return false
467
464
  }
468
- case .none:
469
- break
465
+ }) {
466
+ rightNavigaionBarItemTypes.insert(.done, at: 0)
470
467
  }
471
- // }
472
-
468
+ case .none:
469
+ break
470
+ }
471
+ // }
472
+
473
473
  navigationItem.leftBarButtonItems = leftNavigaionBarItemTypes.map {
474
474
  barButtonItemType in
475
475
  if let barButtonItem = barButtonItem(barButtonItemType) {
@@ -477,7 +477,7 @@ fileprivate extension WKWebViewController {
477
477
  }
478
478
  return UIBarButtonItem()
479
479
  }
480
-
480
+
481
481
  navigationItem.rightBarButtonItems = rightNavigaionBarItemTypes.map {
482
482
  barButtonItemType in
483
483
  if let barButtonItem = barButtonItem(barButtonItemType) {
@@ -485,13 +485,13 @@ fileprivate extension WKWebViewController {
485
485
  }
486
486
  return UIBarButtonItem()
487
487
  }
488
-
488
+
489
489
  if toolbarItemTypes.count > 0 {
490
490
  for index in 0..<toolbarItemTypes.count - 1 {
491
491
  toolbarItemTypes.insert(.flexibleSpace, at: 2 * index + 1)
492
492
  }
493
493
  }
494
-
494
+
495
495
  setToolbarItems(toolbarItemTypes.map {
496
496
  barButtonItemType -> UIBarButtonItem in
497
497
  if let barButtonItem = barButtonItem(barButtonItemType) {
@@ -500,11 +500,11 @@ fileprivate extension WKWebViewController {
500
500
  return UIBarButtonItem()
501
501
  }, animated: true)
502
502
  }
503
-
503
+
504
504
  func updateBarButtonItems() {
505
505
  backBarButtonItem.isEnabled = webView?.canGoBack ?? false
506
506
  forwardBarButtonItem.isEnabled = webView?.canGoForward ?? false
507
-
507
+
508
508
  let updateReloadBarButtonItem: (UIBarButtonItem, Bool) -> UIBarButtonItem = {
509
509
  [unowned self] barButtonItem, isLoading in
510
510
  switch barButtonItem {
@@ -517,45 +517,45 @@ fileprivate extension WKWebViewController {
517
517
  }
518
518
  return barButtonItem
519
519
  }
520
-
520
+
521
521
  let isLoading = webView?.isLoading ?? false
522
522
  toolbarItems = toolbarItems?.map {
523
523
  barButtonItem -> UIBarButtonItem in
524
524
  return updateReloadBarButtonItem(barButtonItem, isLoading)
525
525
  }
526
-
526
+
527
527
  navigationItem.leftBarButtonItems = navigationItem.leftBarButtonItems?.map {
528
528
  barButtonItem -> UIBarButtonItem in
529
529
  return updateReloadBarButtonItem(barButtonItem, isLoading)
530
530
  }
531
-
531
+
532
532
  navigationItem.rightBarButtonItems = navigationItem.rightBarButtonItems?.map {
533
533
  barButtonItem -> UIBarButtonItem in
534
534
  return updateReloadBarButtonItem(barButtonItem, isLoading)
535
535
  }
536
536
  }
537
-
537
+
538
538
  func setUpState() {
539
539
  navigationController?.setNavigationBarHidden(false, animated: true)
540
540
  navigationController?.setToolbarHidden(toolbarItemTypes.count == 0, animated: true)
541
-
541
+
542
542
  if let tintColor = tintColor {
543
543
  progressView?.progressTintColor = tintColor
544
544
  navigationController?.navigationBar.tintColor = tintColor
545
545
  navigationController?.toolbar.tintColor = tintColor
546
546
  }
547
547
  }
548
-
548
+
549
549
  func rollbackState() {
550
550
  progressView?.progress = 0
551
-
551
+
552
552
  navigationController?.navigationBar.tintColor = previousNavigationBarState.tintColor
553
553
  navigationController?.toolbar.tintColor = previousToolbarState.tintColor
554
-
554
+
555
555
  navigationController?.setToolbarHidden(previousToolbarState.hidden, animated: true)
556
556
  navigationController?.setNavigationBarHidden(previousNavigationBarState.hidden, animated: true)
557
557
  }
558
-
558
+
559
559
  func checkRequestCookies(_ request: URLRequest, cookies: [HTTPCookie]) -> Bool {
560
560
  if cookies.count <= 0 {
561
561
  return true
@@ -563,38 +563,38 @@ fileprivate extension WKWebViewController {
563
563
  guard let headerFields = request.allHTTPHeaderFields, let cookieString = headerFields[cookieKey] else {
564
564
  return false
565
565
  }
566
-
566
+
567
567
  let requestCookies = cookieString.components(separatedBy: ";").map {
568
568
  $0.trimmingCharacters(in: .whitespacesAndNewlines).split(separator: "=", maxSplits: 1).map(String.init)
569
569
  }
570
-
570
+
571
571
  var valid = false
572
572
  for cookie in cookies {
573
573
  valid = requestCookies.filter {
574
574
  $0[0] == cookie.name && $0[1] == cookie.value
575
- }.count > 0
575
+ }.count > 0
576
576
  if !valid {
577
577
  break
578
578
  }
579
579
  }
580
580
  return valid
581
581
  }
582
-
582
+
583
583
  func openURLWithApp(_ url: URL) -> Bool {
584
584
  let application = UIApplication.shared
585
585
  if application.canOpenURL(url) {
586
586
  application.open(url, options: [:], completionHandler: nil)
587
587
  return true
588
588
  }
589
-
589
+
590
590
  return false
591
591
  }
592
-
592
+
593
593
  func handleURLWithApp(_ url: URL, targetFrame: WKFrameInfo?) -> Bool {
594
594
  let hosts = UrlsHandledByApp.hosts
595
595
  let schemes = UrlsHandledByApp.schemes
596
596
  let blank = UrlsHandledByApp.blank
597
-
597
+
598
598
  var tryToOpenURLWithApp = false
599
599
  if let host = url.host, hosts.contains(host) {
600
600
  tryToOpenURLWithApp = true
@@ -605,18 +605,18 @@ fileprivate extension WKWebViewController {
605
605
  if blank && targetFrame == nil {
606
606
  tryToOpenURLWithApp = true
607
607
  }
608
-
608
+
609
609
  return tryToOpenURLWithApp ? openURLWithApp(url) : false
610
610
  }
611
-
611
+
612
612
  @objc func backDidClick(sender: AnyObject) {
613
613
  webView?.goBack()
614
614
  }
615
-
615
+
616
616
  @objc func forwardDidClick(sender: AnyObject) {
617
617
  webView?.goForward()
618
618
  }
619
-
619
+
620
620
  @objc func reloadDidClick(sender: AnyObject) {
621
621
  webView?.stopLoading()
622
622
  if webView?.url != nil {
@@ -625,16 +625,16 @@ fileprivate extension WKWebViewController {
625
625
  self.load(source: s)
626
626
  }
627
627
  }
628
-
628
+
629
629
  @objc func stopDidClick(sender: AnyObject) {
630
630
  webView?.stopLoading()
631
631
  }
632
-
632
+
633
633
  @objc func activityDidClick(sender: AnyObject) {
634
634
  guard let s = self.source else {
635
635
  return
636
636
  }
637
-
637
+
638
638
  let items: [Any]
639
639
  switch s {
640
640
  case .remote(let u):
@@ -646,15 +646,15 @@ fileprivate extension WKWebViewController {
646
646
  }
647
647
  showDisclaimer(items: items, sender: sender)
648
648
  }
649
-
649
+
650
650
  func showDisclaimer(items: [Any], sender: AnyObject) {
651
651
  let showDisclaimer: Bool = self.shareDisclaimer != nil
652
- if(showDisclaimer) {
652
+ if showDisclaimer {
653
653
  let alert = UIAlertController(
654
654
  title: self.shareDisclaimer?["title"] as? String ?? "Title",
655
655
  message: self.shareDisclaimer?["message"] as? String ?? "Message",
656
656
  preferredStyle: UIAlertController.Style.alert)
657
- alert.addAction(UIAlertAction(title: self.shareDisclaimer?["confirmBtn"] as? String ?? "Confirm", style: UIAlertAction.Style.default, handler: { action in
657
+ alert.addAction(UIAlertAction(title: self.shareDisclaimer?["confirmBtn"] as? String ?? "Confirm", style: UIAlertAction.Style.default, handler: { _ in
658
658
  self.shareDisclaimer = nil
659
659
  self.capBrowserPlugin?.notifyListeners("confirmBtnClicked", data: nil)
660
660
  let activityViewController = UIActivityViewController(activityItems: items, applicationActivities: nil)
@@ -671,28 +671,28 @@ fileprivate extension WKWebViewController {
671
671
  self.present(activityViewController, animated: true, completion: nil)
672
672
  }
673
673
  }
674
-
674
+
675
675
  @objc func doneDidClick(sender: AnyObject) {
676
676
  var canDismiss = true
677
677
  if let url = self.source?.url {
678
678
  canDismiss = delegate?.webViewController?(self, canDismiss: url) ?? true
679
679
  }
680
680
  if canDismiss {
681
- // UIDevice.current.setValue(Int(UIInterfaceOrientation.portrait.rawValue), forKey: "orientation")
681
+ // UIDevice.current.setValue(Int(UIInterfaceOrientation.portrait.rawValue), forKey: "orientation")
682
682
  dismiss(animated: true, completion: nil)
683
683
  }
684
684
  }
685
-
685
+
686
686
  @objc func customDidClick(sender: BlockBarButtonItem) {
687
687
  sender.block?(self)
688
688
  }
689
-
690
- func canRotate() -> Void {}
689
+
690
+ func canRotate() {}
691
691
  }
692
692
 
693
693
  // MARK: - WKUIDelegate
694
694
  extension WKWebViewController: WKUIDelegate {
695
-
695
+
696
696
  }
697
697
 
698
698
  // MARK: - WKNavigationDelegate
@@ -717,7 +717,7 @@ extension WKWebViewController: WKNavigationDelegate {
717
717
  delegate?.webViewController?(self, didFinish: url)
718
718
  }
719
719
  }
720
-
720
+
721
721
  public func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) {
722
722
  updateBarButtonItems()
723
723
  self.progressView?.progress = 0
@@ -726,7 +726,7 @@ extension WKWebViewController: WKNavigationDelegate {
726
726
  delegate?.webViewController?(self, didFail: url, withError: error)
727
727
  }
728
728
  }
729
-
729
+
730
730
  public func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
731
731
  updateBarButtonItems()
732
732
  self.progressView?.progress = 0
@@ -735,7 +735,7 @@ extension WKWebViewController: WKNavigationDelegate {
735
735
  delegate?.webViewController?(self, didFail: url, withError: error)
736
736
  }
737
737
  }
738
-
738
+
739
739
  public func webView(_ webView: WKWebView, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
740
740
  if let bypassedSSLHosts = bypassedSSLHosts, bypassedSSLHosts.contains(challenge.protectionSpace.host) {
741
741
  let credential = URLCredential(trust: challenge.protectionSpace.serverTrust!)
@@ -744,7 +744,7 @@ extension WKWebViewController: WKNavigationDelegate {
744
744
  completionHandler(.performDefaultHandling, nil)
745
745
  }
746
746
  }
747
-
747
+
748
748
  public func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
749
749
  var actionPolicy: WKNavigationActionPolicy = .allow
750
750
  defer {
@@ -754,23 +754,23 @@ extension WKWebViewController: WKNavigationDelegate {
754
754
  print("Cannot handle empty URLs")
755
755
  return
756
756
  }
757
-
757
+
758
758
  if !self.allowsFileURL && u.isFileURL {
759
759
  print("Cannot handle file URLs")
760
760
  return
761
761
  }
762
-
762
+
763
763
  if handleURLWithApp(u, targetFrame: navigationAction.targetFrame) {
764
764
  actionPolicy = .cancel
765
765
  return
766
766
  }
767
-
767
+
768
768
  if u.host == self.source?.url?.host, let cookies = availableCookies, !checkRequestCookies(navigationAction.request, cookies: cookies) {
769
769
  self.load(remote: u)
770
770
  actionPolicy = .cancel
771
771
  return
772
772
  }
773
-
773
+
774
774
  if let navigationType = NavigationType(rawValue: navigationAction.navigationType.rawValue), let result = delegate?.webViewController?(self, decidePolicy: u, navigationType: navigationType) {
775
775
  actionPolicy = result ? .allow : .cancel
776
776
  }
@@ -778,6 +778,6 @@ extension WKWebViewController: WKNavigationDelegate {
778
778
  }
779
779
 
780
780
  class BlockBarButtonItem: UIBarButtonItem {
781
-
781
+
782
782
  var block: ((WKWebViewController) -> Void)?
783
783
  }