Android webview网页视频无法全屏解决(onShowCustomView不调用)

Android使用webview来显示和控制网页上的信息。
然而在使用自己开发的浏览器中打开网页视频时,会出现部分网站的视频全屏存在问题。
问题:部分视频网站(如腾讯视频、搜狐视频、优酷等)全频时只是放大了控件,或者无法做到真正的全屏。
需求:希望所有网站点击全屏后,可以实现全屏播放,并且手机屏幕自动横屏。 

分析:个人实践看来,只有爱奇艺和芒果TV(有发现其他的欢迎补充)使用的是H5自带的全屏功能,视屏点击全屏后效果体验很好;而其他网站只是对网页播放视频的控件进行了宽高的调整,其实是伪全屏。H5自带的全屏会调用webchromeclient类中的onShowCustomView()方法,我们可以在这个方法里对我们需要实现的全屏效果做处理;而其他伪全屏的视频网站并没有对移动端的手机做出很好的支持,点击全屏按钮时没有回调onShowCustomView()方法。
思路:对于可以回调onShowCustomView()方法的,自行处理,这里我就不多赘述了;
            对于不能回调onShowCustomView()方法的,通过js注入,并在客户端对js注入的方法绑定,one by one处理全屏问题。

下面贴出代码分析:

JS注入部分:

在网页完成加载时,会回调onPageFinish()方法,在这里可以注入自己需要的js方法。

@Override
        public void onPageFinished(WebView view, String url) {
            view.loadUrl(BrowserJsInject.fullScreenByJs(url));
}

这里的BrowserJsInject是我自己写的一个对于JS注入的公共类,里面内容如下:

public class BrowserJsInject {
   

    /**
     * Js注入
     * @param url 加载的网页地址
 
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值