美文网首页
iOS开发-WKWebView禁用HTML5的video标签默认

iOS开发-WKWebView禁用HTML5的video标签默认

作者: ruizuo007 | 来源:发表于2020-08-24 21:48 被阅读0次

    问题描述:

    在Android中,视频可以正常在H5页面局部播放。
    iOS中则自动切换至全屏模式,需要禁止视频自动全屏播放。

    解决方法:

    H5端:

    iOS10以上H5视频不自动全屏播放识别 playsinline这个属性
    iOS10以下H5视频不自动全屏播放识别 webkit-playsinline这个属性

    x5-video-player-type='h5' x5-video-player-fullscreen='true' playsinline webkit-playsinline
    

    注意::在客户端设置了相关属性之后,网页就可以通过
    playsinline='true' webkit-playsinline='true'来控制视频在网页内播放
    playsinline='false' webkit-playsinline='false'来控制视频全屏播放

    iOS 端实现代码:

    UIWebView

    webView.allowsInlineMediaPlayback = YES;
    

    WKWebView

    WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
    configuration.allowsInlineMediaPlayback = YES;
    _webview = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, ScreenWidth, ScreenHeight - 88) configuration:configuration];
    

    注意::这里需要将属性设置在初始化的WKWebViewConfiguration对象上,因为_webview. configuration为原始对象拷贝的原因,所以通过以下方式设置相应属性并不会生效:

    _webview.configuration.allowsInlineMediaPlayback = YES;
    
    /*! @abstract A Boolean value indicating whether HTML5 videos play inline
    (YES) or use the native full-screen controller (NO).
    @discussion The default value is NO.
    */
    @property (nonatomic) BOOL allowsInlineMediaPlayback;
    

    参考:

    1. https://www.jianshu.com/p/69ab92267343
    2. https://blog.csdn.net/qq_40190624/article/details/100524387
    3. https://developer.apple.com/documentation/webkit/wkwebviewconfiguration/1614793-allowsinlinemediaplayback
    4. https://stackoverflow.com/questions/6039909/html5-full-screen-video
    5. https://www.jianshu.com/p/f313bd152b74

    相关文章

      网友评论

          本文标题:iOS开发-WKWebView禁用HTML5的video标签默认

          本文链接:https://www.haomeiwen.com/subject/pjhojktx.html