@capgo/capacitor-inappbrowser 8.6.15
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/CapgoCapacitorInappbrowser.podspec +17 -0
- package/LICENSE +373 -0
- package/Package.swift +28 -0
- package/README.md +1610 -0
- package/android/build.gradle +64 -0
- package/android/src/main/AndroidManifest.xml +22 -0
- package/android/src/main/assets/proxy-bridge.js +586 -0
- package/android/src/main/java/ee/forgr/capacitor_inappbrowser/ActiveWebViewSupport.java +10 -0
- package/android/src/main/java/ee/forgr/capacitor_inappbrowser/CustomSchemeInterceptSupport.java +51 -0
- package/android/src/main/java/ee/forgr/capacitor_inappbrowser/InAppBrowserPlugin.java +1820 -0
- package/android/src/main/java/ee/forgr/capacitor_inappbrowser/MobileAppBridgeScript.java +122 -0
- package/android/src/main/java/ee/forgr/capacitor_inappbrowser/NativeProxyRule.java +128 -0
- package/android/src/main/java/ee/forgr/capacitor_inappbrowser/Options.java +725 -0
- package/android/src/main/java/ee/forgr/capacitor_inappbrowser/ProxyBridge.java +93 -0
- package/android/src/main/java/ee/forgr/capacitor_inappbrowser/ProxyRequestSupport.java +869 -0
- package/android/src/main/java/ee/forgr/capacitor_inappbrowser/ProxyResponseRouting.java +35 -0
- package/android/src/main/java/ee/forgr/capacitor_inappbrowser/SafeAreaInsetsSupport.java +28 -0
- package/android/src/main/java/ee/forgr/capacitor_inappbrowser/WebViewCallbacks.java +42 -0
- package/android/src/main/java/ee/forgr/capacitor_inappbrowser/WebViewDialog.java +6022 -0
- package/android/src/main/java/ee/forgr/capacitor_inappbrowser/WebViewPermissionSupport.java +58 -0
- package/android/src/main/res/.gitkeep +0 -0
- package/android/src/main/res/drawable/arrow_back_disabled.xml +9 -0
- package/android/src/main/res/drawable/arrow_back_enabled.xml +9 -0
- package/android/src/main/res/drawable/arrow_forward_disabled.xml +9 -0
- package/android/src/main/res/drawable/arrow_forward_enabled.xml +9 -0
- package/android/src/main/res/drawable/ic_clear_24px.xml +9 -0
- package/android/src/main/res/drawable/ic_refresh.xml +9 -0
- package/android/src/main/res/drawable/ic_share.xml +10 -0
- package/android/src/main/res/layout/activity_browser.xml +32 -0
- package/android/src/main/res/layout/bridge_layout_main.xml +15 -0
- package/android/src/main/res/layout/content_browser.xml +17 -0
- package/android/src/main/res/layout/tool_bar.xml +87 -0
- package/android/src/main/res/values/browser_theme.xml +3 -0
- package/android/src/main/res/values/colors.xml +5 -0
- package/android/src/main/res/values/dimens.xml +3 -0
- package/android/src/main/res/values/strings.xml +13 -0
- package/android/src/main/res/values/styles.xml +4 -0
- package/android/src/main/res/values/themes.xml +27 -0
- package/android/src/main/res/xml/file_paths.xml +14 -0
- package/dist/docs.json +3200 -0
- package/dist/esm/definitions.d.ts +1507 -0
- package/dist/esm/definitions.js +40 -0
- package/dist/esm/definitions.js.map +1 -0
- package/dist/esm/index.d.ts +6 -0
- package/dist/esm/index.js +102 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/web.d.ts +47 -0
- package/dist/esm/web.js +120 -0
- package/dist/esm/web.js.map +1 -0
- package/dist/plugin.cjs.js +270 -0
- package/dist/plugin.cjs.js.map +1 -0
- package/dist/plugin.js +273 -0
- package/dist/plugin.js.map +1 -0
- package/ios/Sources/InAppBrowserPlugin/Enums.swift +65 -0
- package/ios/Sources/InAppBrowserPlugin/InAppBrowserPlugin.swift +1932 -0
- package/ios/Sources/InAppBrowserPlugin/ProxySchemeHandler.swift +1185 -0
- package/ios/Sources/InAppBrowserPlugin/WKWebView+SchemeHandling.swift +43 -0
- package/ios/Sources/InAppBrowserPlugin/WKWebViewController.swift +3032 -0
- package/package.json +139 -0
package/android/src/main/java/ee/forgr/capacitor_inappbrowser/CustomSchemeInterceptSupport.java
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
package ee.forgr.capacitor_inappbrowser;
|
|
2
|
+
|
|
3
|
+
import java.util.Arrays;
|
|
4
|
+
import java.util.HashSet;
|
|
5
|
+
import java.util.Locale;
|
|
6
|
+
import java.util.Set;
|
|
7
|
+
|
|
8
|
+
final class CustomSchemeInterceptSupport {
|
|
9
|
+
|
|
10
|
+
private static final Set<String> EXCLUDED_SCHEMES = new HashSet<>(Arrays.asList("http", "https", "file", "tel", "mailto", "sms"));
|
|
11
|
+
|
|
12
|
+
private CustomSchemeInterceptSupport() {}
|
|
13
|
+
|
|
14
|
+
static boolean shouldEmitInterceptEvent(String rawUrl) {
|
|
15
|
+
String scheme = extractScheme(rawUrl);
|
|
16
|
+
return scheme != null && !EXCLUDED_SCHEMES.contains(scheme);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
private static String extractScheme(String rawUrl) {
|
|
20
|
+
if (rawUrl == null || rawUrl.isBlank()) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
int separatorIndex = rawUrl.indexOf(':');
|
|
25
|
+
if (separatorIndex <= 0) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
String scheme = rawUrl.substring(0, separatorIndex);
|
|
30
|
+
if (!isAsciiLetter(scheme.charAt(0))) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
for (int index = 1; index < scheme.length(); index++) {
|
|
35
|
+
char character = scheme.charAt(index);
|
|
36
|
+
if (!isAsciiLetter(character) && !isAsciiDigit(character) && character != '+' && character != '-' && character != '.') {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return scheme.toLowerCase(Locale.ROOT);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
private static boolean isAsciiLetter(char character) {
|
|
45
|
+
return (character >= 'A' && character <= 'Z') || (character >= 'a' && character <= 'z');
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
private static boolean isAsciiDigit(char character) {
|
|
49
|
+
return character >= '0' && character <= '9';
|
|
50
|
+
}
|
|
51
|
+
}
|