From 8fefa5e9546419d3995b61292fd516b3e7ad1b83 Mon Sep 17 00:00:00 2001 From: farfromrefuge Date: Thu, 3 Aug 2023 14:49:09 +0200 Subject: [PATCH] fix(webview): ios ensure configuration is correctly set in view creation --- src/webview/index.ios.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/webview/index.ios.ts b/src/webview/index.ios.ts index 421eecc..a18d91e 100644 --- a/src/webview/index.ios.ts +++ b/src/webview/index.ios.ts @@ -47,6 +47,8 @@ export class AWebView extends WebViewExtBase { public viewPortSize = { initialScale: 1.0 }; private limitsNavigationsToAppBoundDomains = false; + private allowsInlineMediaPlayback = false; + private mediaTypesRequiringUser = true; public createNativeView() { const configuration = WKWebViewConfiguration.new(); @@ -60,18 +62,18 @@ export class AWebView extends WebViewExtBase { configuration.preferences.setValueForKey(true, 'allowFileAccessFromFileURLs'); configuration.setValueForKey(true, 'allowUniversalAccessFromFileURLs'); configuration.limitsNavigationsToAppBoundDomains = this.limitsNavigationsToAppBoundDomains; + configuration.mediaTypesRequiringUserActionForPlayback = this.mediaTypesRequiringUser ? WKAudiovisualMediaTypes.All : WKAudiovisualMediaTypes.None; + configuration.allowsInlineMediaPlayback = this.allowsInlineMediaPlayback; if (this.supportXLocalScheme) { this.wkCustomUrlSchemeHandler = new CustomUrlSchemeHandler(); configuration.setURLSchemeHandlerForURLScheme(this.wkCustomUrlSchemeHandler, this.interceptScheme); } - const webview = new WKWebView({ + return new WKWebView({ frame: CGRectZero, configuration }); - - return webview; } public initNativeView() { @@ -455,12 +457,12 @@ export class AWebView extends WebViewExtBase { nativeView.scrollView.userInteractionEnabled = !!enabled; } [mediaPlaybackRequiresUserActionProperty.setNative](enabled: boolean) { - // this.nativeViewProtected.configuration.mediaTypesRequiringUserActionForPlayback = enabled ? WKAudiovisualMediaTypes.All : WKAudiovisualMediaTypes.None; - this.nativeViewProtected.configuration.setValueForKey(enabled ? WKAudiovisualMediaTypes.All : WKAudiovisualMediaTypes.None, 'mediaTypesRequiringUserActionForPlayback'); + this.nativeViewProtected.configuration.mediaTypesRequiringUserActionForPlayback = enabled ? WKAudiovisualMediaTypes.All : WKAudiovisualMediaTypes.None; + // this.nativeViewProtected.configuration.setValueForKey(enabled ? WKAudiovisualMediaTypes.All : WKAudiovisualMediaTypes.None, 'mediaTypesRequiringUserActionForPlayback'); } [allowsInlineMediaPlaybackProperty.setNative](enabled: boolean) { - this.nativeViewProtected.configuration.setValueForKey(enabled, 'allowsInlineMediaPlayback'); - // this.nativeViewProtected.configuration.allowsInlineMediaPlayback = enabled; + // this.nativeViewProtected.configuration.setValueForKey(enabled, 'allowsInlineMediaPlayback'); + this.nativeViewProtected.configuration.allowsInlineMediaPlayback = enabled; } /**