I have an existing Xamarin Forms application, for Android and iOS, which shows some HTML content from local storage (the purpose is to view this content while offline) in We
Unhandled Promise Rejection: NotAllowedError: The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission. It's not solved yet.
It is a UIWebView bug , I add the below code, it works now.
self.webView.mediaPlaybackRequiresUserAction = NO;
self.webView.allowsPictureInPictureMediaPlayback = YES;
Try setting mediaPlaybackRequiresUserAction
to NO
for the webview. I'm seeing the same issue (UIWebView
and WKWebView
both) in iOS 12.2. Works fine in iOS 12.1 and earlier.
When debugging, you see this error in safari console:
Unhandled Promise Rejection: NotAllowedError: The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission
https://developer.apple.com/documentation/uikit/uiwebview/1617954-mediaplaybackrequiresuseraction?language=objc
https://developer.apple.com/documentation/webkit/wkwebviewconfiguration/1614727-mediaplaybackrequiresuseraction?language=objc
I replaced the UIWebView (Which is now deprecated) by the WKWebView and it seems to works again without changing anything in the html code.
There is a message in the console that say fullscreen is not authorized in the current context. For me too it only happens on real device.
You need to add this to your plist
NSIncludesSubdomains
and NSTemporaryExceptionAllowsInsecureHTTPLoads
Like this:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>