WebKitWebViewControllerCreationParams constructor
WebKitWebViewControllerCreationParams({
- @visibleForTesting WebKitProxy webKitProxy = const WebKitProxy(),
- Set<
PlaybackMediaTypes> mediaTypesRequiringUserAction = const <PlaybackMediaTypes>{PlaybackMediaTypes.audio, PlaybackMediaTypes.video}, - bool allowsInlineMediaPlayback = false,
- @visibleForTesting InstanceManager? instanceManager,
Constructs a WebKitWebViewControllerCreationParams.
Implementation
WebKitWebViewControllerCreationParams({
@visibleForTesting this.webKitProxy = const WebKitProxy(),
this.mediaTypesRequiringUserAction = const <PlaybackMediaTypes>{
PlaybackMediaTypes.audio,
PlaybackMediaTypes.video,
},
this.allowsInlineMediaPlayback = false,
this.limitsNavigationsToAppBoundDomains = false,
@visibleForTesting InstanceManager? instanceManager,
}) : _instanceManager = instanceManager ?? NSObject.globalInstanceManager {
_configuration = webKitProxy.createWebViewConfiguration(
instanceManager: _instanceManager,
);
if (mediaTypesRequiringUserAction.isEmpty) {
_configuration.setMediaTypesRequiringUserActionForPlayback(
<WKAudiovisualMediaType>{WKAudiovisualMediaType.none},
);
} else {
_configuration.setMediaTypesRequiringUserActionForPlayback(
mediaTypesRequiringUserAction
.map<WKAudiovisualMediaType>(
(PlaybackMediaTypes type) => type._toWKAudiovisualMediaType(),
)
.toSet(),
);
}
_configuration.setAllowsInlineMediaPlayback(allowsInlineMediaPlayback);
// `WKWebViewConfiguration.limitsNavigationsToAppBoundDomains` is only
// supported on iOS versions 14+. So this only calls it if the value is set
// to true.
if (limitsNavigationsToAppBoundDomains) {
_configuration.setLimitsNavigationsToAppBoundDomains(
limitsNavigationsToAppBoundDomains,
);
}
}