wekwebview视频/直播无法自动播放

2019-01-07  本文已影响12人  4VZhang

线上项目中,为了实现某些需求更换了一个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];
}

参考文献:
iOS 10 Safari 视频播放新政策
WKWebView加载html视频自动内联播放

上一篇下一篇

猜你喜欢

热点阅读