我正在设置WKWebView,但是这里的Web代码包含一个音频代码,该代码在WKWebView中不起作用。我正在使用的设备是iOS 12.3.1版的iPad Mini
这是后端代码:-
<audio id="alertSound" preload="auto">
<source src="sound/music-box.mp3" type="audio/mpeg" />
<source src="sound/music-box.wav" type="audio/x-wav" />
</audio>
这是我在iOS上的实现方式
func initWebView() {
let preference = WKPreferences()
preference.javaScriptEnabled = true
let configuration = WKWebViewConfiguration()
configuration.preferences = preference
configuration.allowsInlineMediaPlayback = true
configuration.allowsAirPlayForMediaPlayback = true
configuration.allowsPictureInPictureMediaPlayback = true
configuration.mediaTypesRequiringUserActionForPlayback = []
self.wkWebView = WKWebView.init(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height), configuration: configuration)
self.wkWebView.contentMode = .scaleAspectFit
self.wkWebView.allowsLinkPreview = true
self.wkWebView.allowsBackForwardNavigationGestures = false
self.webContentView.addSubview(self.wkWebView)
}
使用WKWebView在应用程序中调用用户时,预期的结果是需要自动播放音频
答案 0 :(得分:0)
我认为这不会改变,如果需要播放音频,iOS需要用户单击。无法自动播放音频。
答案 1 :(得分:0)
您的iOS代码正确,只需在音频标签中添加“ autoplay = true” 属性,音频就会开始自动播放。请参见下面的代码。
<audio autoplay="true">
<source src="music-box.mp3" type="audio/mpeg" />
</audio>
答案 2 :(得分:0)
WKWebViewConfiguration *webConfig = [[WKWebViewConfiguration alloc] init];
webConfig.allowsInlineMediaPlayback = YES;
if (@available(iOS 10.0, *)) {
webConfig.mediaTypesRequiringUserActionForPlayback = NO;
}