added enterpriseAuthenticationAppLinkPolicyEnabled android webview setting
This commit is contained in:
parent
b889efebf3
commit
6d2408de0e
|
@ -6,7 +6,7 @@
|
||||||
- Added `PrintJobController` to manage print jobs
|
- Added `PrintJobController` to manage print jobs
|
||||||
- Added `WebAuthenticationSession` for iOS
|
- Added `WebAuthenticationSession` for iOS
|
||||||
- Added `pauseAllMediaPlayback`, `setAllMediaPlaybackSuspended`, `closeAllMediaPresentations`, `requestMediaPlaybackState`, `isInFullscreen`, `getCameraCaptureState`, `setCameraCaptureState`, `getMicrophoneCaptureState`, `setMicrophoneCaptureState` WebView controller methods
|
- Added `pauseAllMediaPlayback`, `setAllMediaPlaybackSuspended`, `closeAllMediaPresentations`, `requestMediaPlaybackState`, `isInFullscreen`, `getCameraCaptureState`, `setCameraCaptureState`, `getMicrophoneCaptureState`, `setMicrophoneCaptureState` WebView controller methods
|
||||||
- Added `underPageBackgroundColor`, `isTextInteractionEnabled`, `isSiteSpecificQuirksModeEnabled`, `upgradeKnownHostsToHTTPS`, `forceDarkStrategy`, `willSuppressErrorPage`, `algorithmicDarkeningAllowed`, `requestedWithHeaderMode` WebView settings
|
- Added `underPageBackgroundColor`, `isTextInteractionEnabled`, `isSiteSpecificQuirksModeEnabled`, `upgradeKnownHostsToHTTPS`, `forceDarkStrategy`, `willSuppressErrorPage`, `algorithmicDarkeningAllowed`, `requestedWithHeaderMode`, `enterpriseAuthenticationAppLinkPolicyEnabled` WebView settings
|
||||||
- Added `onCameraCaptureStateChanged`, `onMicrophoneCaptureStateChanged` WebView events
|
- Added `onCameraCaptureStateChanged`, `onMicrophoneCaptureStateChanged` WebView events
|
||||||
- Added support for `onPermissionRequest` event on iOS 15.0+
|
- Added support for `onPermissionRequest` event on iOS 15.0+
|
||||||
- Added `debugLoggingSettings` static property for WebView and ChromeSafariBrowser
|
- Added `debugLoggingSettings` static property for WebView and ChromeSafariBrowser
|
||||||
|
|
|
@ -391,6 +391,9 @@ final public class InAppWebView extends InputAwareWebView implements InAppWebVie
|
||||||
customSettings.requestedWithHeaderMode != null) {
|
customSettings.requestedWithHeaderMode != null) {
|
||||||
WebSettingsCompat.setRequestedWithHeaderMode(settings, customSettings.requestedWithHeaderMode);
|
WebSettingsCompat.setRequestedWithHeaderMode(settings, customSettings.requestedWithHeaderMode);
|
||||||
}
|
}
|
||||||
|
if (WebViewFeature.isFeatureSupported(WebViewFeature.ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY)) {
|
||||||
|
WebSettingsCompat.setEnterpriseAuthenticationAppLinkPolicyEnabled(settings, customSettings.enterpriseAuthenticationAppLinkPolicyEnabled);
|
||||||
|
}
|
||||||
|
|
||||||
contentBlockerHandler.getRuleList().clear();
|
contentBlockerHandler.getRuleList().clear();
|
||||||
for (Map<String, Map<String, Object>> contentBlocker : customSettings.contentBlockers) {
|
for (Map<String, Map<String, Object>> contentBlocker : customSettings.contentBlockers) {
|
||||||
|
@ -1043,6 +1046,11 @@ final public class InAppWebView extends InputAwareWebView implements InAppWebVie
|
||||||
newCustomSettings.requestedWithHeaderMode != null) {
|
newCustomSettings.requestedWithHeaderMode != null) {
|
||||||
WebSettingsCompat.setRequestedWithHeaderMode(settings, newCustomSettings.requestedWithHeaderMode);
|
WebSettingsCompat.setRequestedWithHeaderMode(settings, newCustomSettings.requestedWithHeaderMode);
|
||||||
}
|
}
|
||||||
|
if (newSettingsMap.get("enterpriseAuthenticationAppLinkPolicyEnabled") != null &&
|
||||||
|
!Util.objEquals(customSettings.enterpriseAuthenticationAppLinkPolicyEnabled, newCustomSettings.enterpriseAuthenticationAppLinkPolicyEnabled) &&
|
||||||
|
WebViewFeature.isFeatureSupported(WebViewFeature.ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY)) {
|
||||||
|
WebSettingsCompat.setEnterpriseAuthenticationAppLinkPolicyEnabled(settings, newCustomSettings.enterpriseAuthenticationAppLinkPolicyEnabled);
|
||||||
|
}
|
||||||
|
|
||||||
customSettings = newCustomSettings;
|
customSettings = newCustomSettings;
|
||||||
}
|
}
|
||||||
|
|
|
@ -117,6 +117,7 @@ public class InAppWebViewSettings implements ISettings<InAppWebViewInterface> {
|
||||||
public Boolean algorithmicDarkeningAllowed = false;
|
public Boolean algorithmicDarkeningAllowed = false;
|
||||||
@Nullable
|
@Nullable
|
||||||
public Integer requestedWithHeaderMode;
|
public Integer requestedWithHeaderMode;
|
||||||
|
public Boolean enterpriseAuthenticationAppLinkPolicyEnabled = true;
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
|
@ -384,6 +385,9 @@ public class InAppWebViewSettings implements ISettings<InAppWebViewInterface> {
|
||||||
case "requestedWithHeaderMode":
|
case "requestedWithHeaderMode":
|
||||||
requestedWithHeaderMode = (Integer) value;
|
requestedWithHeaderMode = (Integer) value;
|
||||||
break;
|
break;
|
||||||
|
case "enterpriseAuthenticationAppLinkPolicyEnabled":
|
||||||
|
enterpriseAuthenticationAppLinkPolicyEnabled = (Boolean) value;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -479,6 +483,7 @@ public class InAppWebViewSettings implements ISettings<InAppWebViewInterface> {
|
||||||
settings.put("willSuppressErrorPage", willSuppressErrorPage);
|
settings.put("willSuppressErrorPage", willSuppressErrorPage);
|
||||||
settings.put("algorithmicDarkeningAllowed", algorithmicDarkeningAllowed);
|
settings.put("algorithmicDarkeningAllowed", algorithmicDarkeningAllowed);
|
||||||
settings.put("requestedWithHeaderMode", requestedWithHeaderMode);
|
settings.put("requestedWithHeaderMode", requestedWithHeaderMode);
|
||||||
|
settings.put("enterpriseAuthenticationAppLinkPolicyEnabled", enterpriseAuthenticationAppLinkPolicyEnabled);
|
||||||
return settings;
|
return settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -573,6 +578,9 @@ public class InAppWebViewSettings implements ISettings<InAppWebViewInterface> {
|
||||||
if (WebViewFeature.isFeatureSupported(WebViewFeature.REQUESTED_WITH_HEADER_CONTROL)) {
|
if (WebViewFeature.isFeatureSupported(WebViewFeature.REQUESTED_WITH_HEADER_CONTROL)) {
|
||||||
realSettings.put("requestedWithHeaderMode", WebSettingsCompat.getRequestedWithHeaderMode(settings));
|
realSettings.put("requestedWithHeaderMode", WebSettingsCompat.getRequestedWithHeaderMode(settings));
|
||||||
}
|
}
|
||||||
|
if (WebViewFeature.isFeatureSupported(WebViewFeature.ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY)) {
|
||||||
|
realSettings.put("enterpriseAuthenticationAppLinkPolicyEnabled", WebSettingsCompat.getEnterpriseAuthenticationAppLinkPolicyEnabled(settings));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return realSettings;
|
return realSettings;
|
||||||
}
|
}
|
||||||
|
|
|
@ -204,6 +204,10 @@ class WebViewFeature_ {
|
||||||
static const REQUESTED_WITH_HEADER_CONTROL =
|
static const REQUESTED_WITH_HEADER_CONTROL =
|
||||||
const WebViewFeature_._internal("REQUESTED_WITH_HEADER_CONTROL");
|
const WebViewFeature_._internal("REQUESTED_WITH_HEADER_CONTROL");
|
||||||
|
|
||||||
|
///This feature covers [InAppWebViewSettings.enterpriseAuthenticationAppLinkPolicyEnabled].
|
||||||
|
static const ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY =
|
||||||
|
const WebViewFeature_._internal("ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY");
|
||||||
|
|
||||||
///Return whether a feature is supported at run-time. On devices running Android version `Build.VERSION_CODES.LOLLIPOP` and higher,
|
///Return whether a feature is supported at run-time. On devices running Android version `Build.VERSION_CODES.LOLLIPOP` and higher,
|
||||||
///this will check whether a feature is supported, depending on the combination of the desired feature, the Android version of device,
|
///this will check whether a feature is supported, depending on the combination of the desired feature, the Android version of device,
|
||||||
///and the WebView APK on the device. If running on a device with a lower API level, this will always return `false`.
|
///and the WebView APK on the device. If running on a device with a lower API level, this will always return `false`.
|
||||||
|
@ -419,6 +423,10 @@ class AndroidWebViewFeature_ {
|
||||||
static const REQUESTED_WITH_HEADER_CONTROL =
|
static const REQUESTED_WITH_HEADER_CONTROL =
|
||||||
const AndroidWebViewFeature_._internal("REQUESTED_WITH_HEADER_CONTROL");
|
const AndroidWebViewFeature_._internal("REQUESTED_WITH_HEADER_CONTROL");
|
||||||
|
|
||||||
|
///This feature covers [InAppWebViewSettings.enterpriseAuthenticationAppLinkPolicyEnabled].
|
||||||
|
static const ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY =
|
||||||
|
const AndroidWebViewFeature_._internal("ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY");
|
||||||
|
|
||||||
///Return whether a feature is supported at run-time. On devices running Android version `Build.VERSION_CODES.LOLLIPOP` and higher,
|
///Return whether a feature is supported at run-time. On devices running Android version `Build.VERSION_CODES.LOLLIPOP` and higher,
|
||||||
///this will check whether a feature is supported, depending on the combination of the desired feature, the Android version of device,
|
///this will check whether a feature is supported, depending on the combination of the desired feature, the Android version of device,
|
||||||
///and the WebView APK on the device. If running on a device with a lower API level, this will always return `false`.
|
///and the WebView APK on the device. If running on a device with a lower API level, this will always return `false`.
|
||||||
|
|
|
@ -205,6 +205,11 @@ class WebViewFeature {
|
||||||
static const REQUESTED_WITH_HEADER_CONTROL = WebViewFeature._internal(
|
static const REQUESTED_WITH_HEADER_CONTROL = WebViewFeature._internal(
|
||||||
'REQUESTED_WITH_HEADER_CONTROL', 'REQUESTED_WITH_HEADER_CONTROL');
|
'REQUESTED_WITH_HEADER_CONTROL', 'REQUESTED_WITH_HEADER_CONTROL');
|
||||||
|
|
||||||
|
///This feature covers [InAppWebViewSettings.enterpriseAuthenticationAppLinkPolicyEnabled].
|
||||||
|
static const ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY =
|
||||||
|
WebViewFeature._internal('ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY',
|
||||||
|
'ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY');
|
||||||
|
|
||||||
///Set of all values of [WebViewFeature].
|
///Set of all values of [WebViewFeature].
|
||||||
static final Set<WebViewFeature> values = [
|
static final Set<WebViewFeature> values = [
|
||||||
WebViewFeature.CREATE_WEB_MESSAGE_CHANNEL,
|
WebViewFeature.CREATE_WEB_MESSAGE_CHANNEL,
|
||||||
|
@ -252,6 +257,7 @@ class WebViewFeature {
|
||||||
WebViewFeature.SUPPRESS_ERROR_PAGE,
|
WebViewFeature.SUPPRESS_ERROR_PAGE,
|
||||||
WebViewFeature.ALGORITHMIC_DARKENING,
|
WebViewFeature.ALGORITHMIC_DARKENING,
|
||||||
WebViewFeature.REQUESTED_WITH_HEADER_CONTROL,
|
WebViewFeature.REQUESTED_WITH_HEADER_CONTROL,
|
||||||
|
WebViewFeature.ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY,
|
||||||
].toSet();
|
].toSet();
|
||||||
|
|
||||||
///Gets a possible [WebViewFeature] instance from [String] value.
|
///Gets a possible [WebViewFeature] instance from [String] value.
|
||||||
|
@ -515,6 +521,12 @@ class AndroidWebViewFeature {
|
||||||
static const REQUESTED_WITH_HEADER_CONTROL = AndroidWebViewFeature._internal(
|
static const REQUESTED_WITH_HEADER_CONTROL = AndroidWebViewFeature._internal(
|
||||||
'REQUESTED_WITH_HEADER_CONTROL', 'REQUESTED_WITH_HEADER_CONTROL');
|
'REQUESTED_WITH_HEADER_CONTROL', 'REQUESTED_WITH_HEADER_CONTROL');
|
||||||
|
|
||||||
|
///This feature covers [InAppWebViewSettings.enterpriseAuthenticationAppLinkPolicyEnabled].
|
||||||
|
static const ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY =
|
||||||
|
AndroidWebViewFeature._internal(
|
||||||
|
'ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY',
|
||||||
|
'ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY');
|
||||||
|
|
||||||
///Set of all values of [AndroidWebViewFeature].
|
///Set of all values of [AndroidWebViewFeature].
|
||||||
static final Set<AndroidWebViewFeature> values = [
|
static final Set<AndroidWebViewFeature> values = [
|
||||||
AndroidWebViewFeature.CREATE_WEB_MESSAGE_CHANNEL,
|
AndroidWebViewFeature.CREATE_WEB_MESSAGE_CHANNEL,
|
||||||
|
@ -562,6 +574,7 @@ class AndroidWebViewFeature {
|
||||||
AndroidWebViewFeature.SUPPRESS_ERROR_PAGE,
|
AndroidWebViewFeature.SUPPRESS_ERROR_PAGE,
|
||||||
AndroidWebViewFeature.ALGORITHMIC_DARKENING,
|
AndroidWebViewFeature.ALGORITHMIC_DARKENING,
|
||||||
AndroidWebViewFeature.REQUESTED_WITH_HEADER_CONTROL,
|
AndroidWebViewFeature.REQUESTED_WITH_HEADER_CONTROL,
|
||||||
|
AndroidWebViewFeature.ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY,
|
||||||
].toSet();
|
].toSet();
|
||||||
|
|
||||||
///Gets a possible [AndroidWebViewFeature] instance from [String] value.
|
///Gets a possible [AndroidWebViewFeature] instance from [String] value.
|
||||||
|
|
|
@ -673,7 +673,10 @@ class InAppWebViewSettings {
|
||||||
///
|
///
|
||||||
///If Android is applying Force Dark to WebView then WebView will ignore the value of this setting and behave as if it were set to true.
|
///If Android is applying Force Dark to WebView then WebView will ignore the value of this setting and behave as if it were set to true.
|
||||||
///
|
///
|
||||||
///**NOTE**: available on Android 29+ and only if [WebViewFeature.ALGORITHMIC_DARKENING] feature is supported.
|
///**NOTE**: available on Android only if [WebViewFeature.ALGORITHMIC_DARKENING] feature is supported.
|
||||||
|
///
|
||||||
|
///**Supported Platforms/Implementations**:
|
||||||
|
///- Android native WebView
|
||||||
bool algorithmicDarkeningAllowed;
|
bool algorithmicDarkeningAllowed;
|
||||||
|
|
||||||
///Sets how the WebView will set the `X-Requested-With` header on requests.
|
///Sets how the WebView will set the `X-Requested-With` header on requests.
|
||||||
|
@ -682,8 +685,26 @@ class InAppWebViewSettings {
|
||||||
///The default behavior may vary depending on the WebView implementation.
|
///The default behavior may vary depending on the WebView implementation.
|
||||||
///
|
///
|
||||||
///**NOTE**: available on Android only if [WebViewFeature.REQUESTED_WITH_HEADER_CONTROL] feature is supported.
|
///**NOTE**: available on Android only if [WebViewFeature.REQUESTED_WITH_HEADER_CONTROL] feature is supported.
|
||||||
|
///
|
||||||
|
///**Supported Platforms/Implementations**:
|
||||||
|
///- Android native WebView
|
||||||
RequestedWithHeaderMode? requestedWithHeaderMode;
|
RequestedWithHeaderMode? requestedWithHeaderMode;
|
||||||
|
|
||||||
|
///Sets whether EnterpriseAuthenticationAppLinkPolicy if set by admin is allowed to have any
|
||||||
|
///effect on WebView.
|
||||||
|
///
|
||||||
|
///EnterpriseAuthenticationAppLinkPolicy in WebView allows admins to specify authentication
|
||||||
|
///urls. When WebView is redirected to authentication url, and an app on the device has
|
||||||
|
///registered as the default handler for the url, that app is launched.
|
||||||
|
///
|
||||||
|
///The default value is `true`.
|
||||||
|
///
|
||||||
|
///**NOTE**: available on Android only if [WebViewFeature.ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY] feature is supported.
|
||||||
|
///
|
||||||
|
///**Supported Platforms/Implementations**:
|
||||||
|
///- Android native WebView
|
||||||
|
bool enterpriseAuthenticationAppLinkPolicyEnabled;
|
||||||
|
|
||||||
///Set to `true` to disable the bouncing of the WebView when the scrolling has reached an edge of the content. The default value is `false`.
|
///Set to `true` to disable the bouncing of the WebView when the scrolling has reached an edge of the content. The default value is `false`.
|
||||||
///
|
///
|
||||||
///**Supported Platforms/Implementations**:
|
///**Supported Platforms/Implementations**:
|
||||||
|
@ -1161,6 +1182,7 @@ class InAppWebViewSettings {
|
||||||
this.willSuppressErrorPage = false,
|
this.willSuppressErrorPage = false,
|
||||||
this.algorithmicDarkeningAllowed = false,
|
this.algorithmicDarkeningAllowed = false,
|
||||||
this.requestedWithHeaderMode,
|
this.requestedWithHeaderMode,
|
||||||
|
this.enterpriseAuthenticationAppLinkPolicyEnabled = true,
|
||||||
this.disallowOverScroll = false,
|
this.disallowOverScroll = false,
|
||||||
this.enableViewportScale = false,
|
this.enableViewportScale = false,
|
||||||
this.suppressesIncrementalRendering = false,
|
this.suppressesIncrementalRendering = false,
|
||||||
|
@ -1310,6 +1332,7 @@ class InAppWebViewSettings {
|
||||||
"willSuppressErrorPage": willSuppressErrorPage,
|
"willSuppressErrorPage": willSuppressErrorPage,
|
||||||
"algorithmicDarkeningAllowed": algorithmicDarkeningAllowed,
|
"algorithmicDarkeningAllowed": algorithmicDarkeningAllowed,
|
||||||
"requestedWithHeaderMode": requestedWithHeaderMode?.toNativeValue(),
|
"requestedWithHeaderMode": requestedWithHeaderMode?.toNativeValue(),
|
||||||
|
"enterpriseAuthenticationAppLinkPolicyEnabled": enterpriseAuthenticationAppLinkPolicyEnabled,
|
||||||
"disallowOverScroll": disallowOverScroll,
|
"disallowOverScroll": disallowOverScroll,
|
||||||
"enableViewportScale": enableViewportScale,
|
"enableViewportScale": enableViewportScale,
|
||||||
"suppressesIncrementalRendering": suppressesIncrementalRendering,
|
"suppressesIncrementalRendering": suppressesIncrementalRendering,
|
||||||
|
@ -1496,6 +1519,7 @@ class InAppWebViewSettings {
|
||||||
settings.willSuppressErrorPage = map["willSuppressErrorPage"];
|
settings.willSuppressErrorPage = map["willSuppressErrorPage"];
|
||||||
settings.algorithmicDarkeningAllowed = map["algorithmicDarkeningAllowed"];
|
settings.algorithmicDarkeningAllowed = map["algorithmicDarkeningAllowed"];
|
||||||
settings.requestedWithHeaderMode = RequestedWithHeaderMode.fromNativeValue(map["requestedWithHeaderMode"]);
|
settings.requestedWithHeaderMode = RequestedWithHeaderMode.fromNativeValue(map["requestedWithHeaderMode"]);
|
||||||
|
settings.enterpriseAuthenticationAppLinkPolicyEnabled = map["enterpriseAuthenticationAppLinkPolicyEnabled"];
|
||||||
}
|
}
|
||||||
else if (defaultTargetPlatform == TargetPlatform.iOS ||
|
else if (defaultTargetPlatform == TargetPlatform.iOS ||
|
||||||
defaultTargetPlatform == TargetPlatform.macOS) {
|
defaultTargetPlatform == TargetPlatform.macOS) {
|
||||||
|
|
Loading…
Reference in New Issue