@capgo/inappbrowser 6.13.2 → 6.14.0
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.
- package/README.md +20 -21
- package/android/src/main/java/ee/forgr/capacitor_inappbrowser/InAppBrowserPlugin.java +118 -80
- package/android/src/main/java/ee/forgr/capacitor_inappbrowser/Options.java +9 -0
- package/android/src/main/java/ee/forgr/capacitor_inappbrowser/WebViewDialog.java +739 -37
- package/dist/docs.json +54 -62
- package/dist/esm/definitions.d.ts +12 -13
- package/dist/esm/definitions.js.map +1 -1
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js.map +1 -1
- package/ios/Plugin/InAppBrowserPlugin.swift +38 -22
- package/ios/Plugin/WKWebViewController.swift +16 -107
- package/package.json +1 -1
- package/ios/Plugin/Assets.xcassets/Contents.json +0 -6
|
@@ -165,7 +165,6 @@ open class WKWebViewController: UIViewController, WKScriptMessageHandler {
|
|
|
165
165
|
open var preShowScript: String?
|
|
166
166
|
open var leftNavigationBarItemTypes: [BarButtonItemType] = []
|
|
167
167
|
open var rightNavigaionBarItemTypes: [BarButtonItemType] = []
|
|
168
|
-
open var toolbarItemTypes: [BarButtonItemType] = [.back, .forward, .activity]
|
|
169
168
|
|
|
170
169
|
// Status bar style to be applied
|
|
171
170
|
open var statusBarStyle: UIStatusBarStyle = .default
|
|
@@ -374,14 +373,6 @@ open class WKWebViewController: UIViewController, WKScriptMessageHandler {
|
|
|
374
373
|
stopBarButtonItem.tintColor = tintColor
|
|
375
374
|
activityBarButtonItem.tintColor = tintColor
|
|
376
375
|
doneBarButtonItem.tintColor = tintColor
|
|
377
|
-
flexibleSpaceBarButtonItem.tintColor = tintColor
|
|
378
|
-
|
|
379
|
-
// Update toolbar items
|
|
380
|
-
if let items = toolbarItems {
|
|
381
|
-
for item in items {
|
|
382
|
-
item.tintColor = tintColor
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
376
|
|
|
386
377
|
// Update navigation items
|
|
387
378
|
if let leftItems = navigationItem.leftBarButtonItems {
|
|
@@ -433,13 +424,6 @@ open class WKWebViewController: UIViewController, WKScriptMessageHandler {
|
|
|
433
424
|
updateButtonTintColors()
|
|
434
425
|
}
|
|
435
426
|
}
|
|
436
|
-
|
|
437
|
-
if let toolbar = navigationController?.toolbar {
|
|
438
|
-
if toolbar.backgroundColor == UIColor.black || toolbar.backgroundColor == UIColor.white {
|
|
439
|
-
toolbar.backgroundColor = isDarkMode ? UIColor.black : UIColor.white
|
|
440
|
-
toolbar.tintColor = textColor
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
427
|
}
|
|
444
428
|
}
|
|
445
429
|
|
|
@@ -595,9 +579,7 @@ open class WKWebViewController: UIViewController, WKScriptMessageHandler {
|
|
|
595
579
|
// Don't force toolbar visibility
|
|
596
580
|
if self.viewHeightPortrait == nil {
|
|
597
581
|
self.viewHeightPortrait = self.view.safeAreaLayoutGuide.layoutFrame.size.height
|
|
598
|
-
|
|
599
|
-
self.viewHeightPortrait! += bottomPadding
|
|
600
|
-
}
|
|
582
|
+
self.viewHeightPortrait! += bottomPadding
|
|
601
583
|
if self.navigationController?.navigationBar.isHidden == true {
|
|
602
584
|
self.viewHeightPortrait! += topPadding
|
|
603
585
|
}
|
|
@@ -607,9 +589,7 @@ open class WKWebViewController: UIViewController, WKScriptMessageHandler {
|
|
|
607
589
|
// Don't force toolbar visibility
|
|
608
590
|
if self.viewHeightLandscape == nil {
|
|
609
591
|
self.viewHeightLandscape = self.view.safeAreaLayoutGuide.layoutFrame.size.height
|
|
610
|
-
|
|
611
|
-
self.viewHeightLandscape! += bottomPadding
|
|
612
|
-
}
|
|
592
|
+
self.viewHeightLandscape! += bottomPadding
|
|
613
593
|
if self.navigationController?.navigationBar.isHidden == true {
|
|
614
594
|
self.viewHeightLandscape! += topPadding
|
|
615
595
|
}
|
|
@@ -956,79 +936,6 @@ fileprivate extension WKWebViewController {
|
|
|
956
936
|
|
|
957
937
|
navigationItem.rightBarButtonItems = rightBarButtons
|
|
958
938
|
|
|
959
|
-
// Create toolbar items
|
|
960
|
-
if !toolbarItemTypes.isEmpty {
|
|
961
|
-
// Check if toolbar has back and forward buttons
|
|
962
|
-
let hasBackButton = toolbarItemTypes.contains(where: {
|
|
963
|
-
if case .back = $0 { return true }
|
|
964
|
-
return false
|
|
965
|
-
})
|
|
966
|
-
|
|
967
|
-
let hasForwardButton = toolbarItemTypes.contains(where: {
|
|
968
|
-
if case .forward = $0 { return true }
|
|
969
|
-
return false
|
|
970
|
-
})
|
|
971
|
-
|
|
972
|
-
let hasReloadButton = toolbarItemTypes.contains(where: {
|
|
973
|
-
if case .reload = $0 { return true }
|
|
974
|
-
return false
|
|
975
|
-
})
|
|
976
|
-
|
|
977
|
-
if hasBackButton && hasForwardButton {
|
|
978
|
-
// Create Android-like toolbar with evenly spaced buttons
|
|
979
|
-
var items: [UIBarButtonItem] = []
|
|
980
|
-
let flexSpace = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
|
|
981
|
-
|
|
982
|
-
// Add spacing before back button
|
|
983
|
-
items.append(flexSpace)
|
|
984
|
-
|
|
985
|
-
// Add back button
|
|
986
|
-
items.append(backBarButtonItem)
|
|
987
|
-
|
|
988
|
-
// Add spacing between buttons
|
|
989
|
-
items.append(flexSpace)
|
|
990
|
-
|
|
991
|
-
// Add forward button
|
|
992
|
-
items.append(forwardBarButtonItem)
|
|
993
|
-
|
|
994
|
-
// Add spacing between buttons
|
|
995
|
-
items.append(flexSpace)
|
|
996
|
-
|
|
997
|
-
// Add reload button if present
|
|
998
|
-
if hasReloadButton {
|
|
999
|
-
items.append(reloadBarButtonItem)
|
|
1000
|
-
items.append(flexSpace)
|
|
1001
|
-
}
|
|
1002
|
-
|
|
1003
|
-
setToolbarItems(items, animated: true)
|
|
1004
|
-
} else {
|
|
1005
|
-
// For other toolbar types, map the items directly
|
|
1006
|
-
let items = toolbarItemTypes.map { type -> UIBarButtonItem in
|
|
1007
|
-
switch type {
|
|
1008
|
-
case .back:
|
|
1009
|
-
return backBarButtonItem
|
|
1010
|
-
case .forward:
|
|
1011
|
-
return forwardBarButtonItem
|
|
1012
|
-
case .reload:
|
|
1013
|
-
return reloadBarButtonItem
|
|
1014
|
-
case .stop:
|
|
1015
|
-
return stopBarButtonItem
|
|
1016
|
-
case .activity:
|
|
1017
|
-
return activityBarButtonItem
|
|
1018
|
-
case .done:
|
|
1019
|
-
return doneBarButtonItem
|
|
1020
|
-
case .flexibleSpace:
|
|
1021
|
-
return flexibleSpaceBarButtonItem
|
|
1022
|
-
case .custom:
|
|
1023
|
-
return UIBarButtonItem()
|
|
1024
|
-
}
|
|
1025
|
-
}
|
|
1026
|
-
setToolbarItems(items, animated: true)
|
|
1027
|
-
}
|
|
1028
|
-
} else {
|
|
1029
|
-
setToolbarItems([], animated: false)
|
|
1030
|
-
}
|
|
1031
|
-
|
|
1032
939
|
// After all buttons are set up, apply tint color
|
|
1033
940
|
updateButtonTintColors()
|
|
1034
941
|
}
|
|
@@ -1052,11 +959,6 @@ fileprivate extension WKWebViewController {
|
|
|
1052
959
|
}
|
|
1053
960
|
|
|
1054
961
|
let isLoading = webView?.isLoading ?? false
|
|
1055
|
-
toolbarItems = toolbarItems?.map {
|
|
1056
|
-
barButtonItem -> UIBarButtonItem in
|
|
1057
|
-
return updateReloadBarButtonItem(barButtonItem, isLoading)
|
|
1058
|
-
}
|
|
1059
|
-
|
|
1060
962
|
navigationItem.leftBarButtonItems = navigationItem.leftBarButtonItems?.map {
|
|
1061
963
|
barButtonItem -> UIBarButtonItem in
|
|
1062
964
|
return updateReloadBarButtonItem(barButtonItem, isLoading)
|
|
@@ -1071,9 +973,8 @@ fileprivate extension WKWebViewController {
|
|
|
1071
973
|
func setUpState() {
|
|
1072
974
|
navigationController?.setNavigationBarHidden(false, animated: true)
|
|
1073
975
|
|
|
1074
|
-
//
|
|
1075
|
-
|
|
1076
|
-
navigationController?.setToolbarHidden(hideToolbar, animated: true)
|
|
976
|
+
// Always hide toolbar since we never want it
|
|
977
|
+
navigationController?.setToolbarHidden(true, animated: true)
|
|
1077
978
|
|
|
1078
979
|
// Set tint colors but don't override specific colors
|
|
1079
980
|
if tintColor == nil {
|
|
@@ -1082,12 +983,10 @@ fileprivate extension WKWebViewController {
|
|
|
1082
983
|
let textColor = isDarkMode ? UIColor.white : UIColor.black
|
|
1083
984
|
|
|
1084
985
|
navigationController?.navigationBar.tintColor = textColor
|
|
1085
|
-
navigationController?.toolbar.tintColor = textColor
|
|
1086
986
|
progressView?.progressTintColor = textColor
|
|
1087
987
|
} else {
|
|
1088
988
|
progressView?.progressTintColor = tintColor
|
|
1089
989
|
navigationController?.navigationBar.tintColor = tintColor
|
|
1090
|
-
navigationController?.toolbar.tintColor = tintColor
|
|
1091
990
|
}
|
|
1092
991
|
}
|
|
1093
992
|
|
|
@@ -1095,9 +994,7 @@ fileprivate extension WKWebViewController {
|
|
|
1095
994
|
progressView?.progress = 0
|
|
1096
995
|
|
|
1097
996
|
navigationController?.navigationBar.tintColor = previousNavigationBarState.tintColor
|
|
1098
|
-
navigationController?.toolbar.tintColor = previousToolbarState.tintColor
|
|
1099
997
|
|
|
1100
|
-
navigationController?.setToolbarHidden(previousToolbarState.hidden, animated: true)
|
|
1101
998
|
navigationController?.setNavigationBarHidden(previousNavigationBarState.hidden, animated: true)
|
|
1102
999
|
}
|
|
1103
1000
|
|
|
@@ -1136,11 +1033,23 @@ fileprivate extension WKWebViewController {
|
|
|
1136
1033
|
}
|
|
1137
1034
|
|
|
1138
1035
|
func handleURLWithApp(_ url: URL, targetFrame: WKFrameInfo?) -> Bool {
|
|
1036
|
+
// If preventDeeplink is true, don't try to open URLs in external apps
|
|
1037
|
+
if self.preventDeeplink {
|
|
1038
|
+
return false
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1139
1041
|
let hosts = UrlsHandledByApp.hosts
|
|
1140
1042
|
let schemes = UrlsHandledByApp.schemes
|
|
1141
1043
|
let blank = UrlsHandledByApp.blank
|
|
1142
1044
|
|
|
1143
1045
|
var tryToOpenURLWithApp = false
|
|
1046
|
+
|
|
1047
|
+
// Handle all non-http(s) schemes by default
|
|
1048
|
+
if let scheme = url.scheme?.lowercased(), !scheme.hasPrefix("http") {
|
|
1049
|
+
tryToOpenURLWithApp = true
|
|
1050
|
+
}
|
|
1051
|
+
|
|
1052
|
+
// Also handle specific hosts and schemes from UrlsHandledByApp
|
|
1144
1053
|
if let host = url.host, hosts.contains(host) {
|
|
1145
1054
|
tryToOpenURLWithApp = true
|
|
1146
1055
|
}
|
package/package.json
CHANGED