簡體   English   中英

最新iOS更新后,本地存儲中的視頻無法在WebView(Xamarin.Forms)中播放(12.2)

[英]Video from local storage not playing in WebView (Xamarin.Forms) after latest iOS update (12.2)

我有一個適用於Android和iOS的現有Xamarin Forms應用程序,它在WebView中顯示來自本地存儲的一些HTML內容(目的是在離線時查看此內容)。

在最新的iOS更新(12.2)之后,該HTML中的視頻停止工作。 白色背景顯示在視頻的位置,標記為“播放”,但無法執行操作。

問題

我嘗試更改視頻標簽以包含自動播放,靜音,但沒有成功。

<video width="560" height="315" controls>
<source src="Absolute-3D.mp4" type="video/mp4">
</video>

我希望它能夠在更新之前繼續工作,但有些東西阻止了它。

這是一個UIWebView錯誤,我添加下面的代碼,現在可以使用了。

self.webView.mediaPlaybackRequiresUserAction = NO;
self.webView.allowsPictureInPictureMediaPlayback = YES;

嘗試為webview設置mediaPlaybackRequiresUserActionNO 我在iOS 12.2中看到了同樣的問題( UIWebViewWKWebView )。 適用於iOS 12.1及更早版本。

調試時,您在safari控制台中看到此錯誤:

未處理的Promise拒絕:NotAllowedError:當前上下文中的用戶代理或平台不允許該請求,可能是因為用戶拒絕了權限

https://developer.apple.com/documentation/uikit/uiwebview/1617954-mediaplaybackrequiresuseraction?language=objc

https://developer.apple.com/documentation/webkit/wkwebviewconfiguration/1614727-mediaplaybackrequiresuseraction?language=objc

我用WKWebView替換了UIWebView(現已棄用),它似乎再次起作用而不改變html代碼中的任何內容。

控制台中有一條消息說在當前上下文中未授權全屏。 對我來說,它只發生在真實設備上。

未處理的Promise拒絕:NotAllowedError:當前上下文中的用戶代理或平台不允許該請求,可能是因為用戶拒絕了權限。 它還沒有解決。

你需要將它添加到你的plist

NSIncludesSubdomainsNSTemporaryExceptionAllowsInsecureHTTPLoads

像這樣:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSIncludesSubdomains</key>
    <true/>
    <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
    <true/>
</dict>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM