线上项目中,为了实现某些需求更换了一个h5视频播放页面,由于h5链接来源方没有做iPhone的适配,导致无法在手机app上自动播放直播视频,也无法正常播放/暂停。
解决方案:h5来源方短时间不能解决适配问题,只能使用js/oc代码解决。
内联播放器配置
WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
//是否允许内联(YES)或使用本机全屏控制器(NO),默认是NO。
config.allowsInlineMediaPlayback = YES;
if (IOS10_OR_LATER) {
config.mediaTypesRequiringUserActionForPlayback = NO;
}else {// 9.0--10.0
config.requiresUserActionForMediaPlayback = NO;
}
self.webView = [[WKWebView alloc] initWithFrame:self.view.bounds configuration:config];
自动播放视频
- (void)playVideo{
NSString *script = @"var videos = document.querySelectorAll(\"video\"); for (var i = videos.length - 1; i >= 0; i--) { var ivideo = videos[i]; ivideo.setAttribute(\"webkit-playsinline\",\"\"); ivideo.play(); };";
[self.webView evaluateJavaScript:script completionHandler:nil];
}
// 导航完成时,会回调(也就是页面载入完成了)
- (void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigation *)navigation {
// DeLog(@"%s", __FUNCTION__);
[self playVideo];
}
网友评论