UIWebView迁移至WKWebView后媒体自动播放代码报错的解决咨询
解决WKWebView替换UIWebView后媒体自动播放的报错问题
嗨,这个坑我迁移项目的时候也踩过!WKWebView确实没有setMediaPlaybackRequiresUserAction:这个UIWebView时代的方法,它把媒体播放的相关配置统一放到了WKWebViewConfiguration对象里,按照下面的方式修改就能解决:
正确实现步骤
- 先创建
WKWebViewConfiguration实例,配置媒体自动播放规则 - 用这个配置初始化WKWebView
具体代码示例:
// 1. 创建并配置WKWebViewConfiguration WKWebViewConfiguration *webConfig = [[WKWebViewConfiguration alloc] init]; // 设置允许所有媒体自动播放(不需要用户触发) webConfig.mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeNone; // 2. 使用配置初始化WKWebView WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.bounds configuration:webConfig];
关于媒体类型的可选配置
你可以根据需求选择不同的枚举值来控制自动播放的范围:
WKAudiovisualMediaTypeNone:允许所有音频和视频自动播放(对应UIWebView的setMediaPlaybackRequiresUserAction:NO)WKAudiovisualMediaTypeAudio:仅音频需要用户手动触发播放,视频可以自动播放WKAudiovisualMediaTypeVideo:仅视频需要用户手动触发播放,音频可以自动播放WKAudiovisualMediaTypeAll:所有媒体都需要用户手动触发(对应UIWebView的setMediaPlaybackRequiresUserAction:YES)
注意事项
⚠️ 要注意的是,WKWebView的configuration属性是只读的,所以必须在初始化WKWebView之前完成配置,初始化之后再修改配置是无效的哦!
内容的提问来源于stack exchange,提问作者salud
相关产品推荐
相关产品推荐

