android原生webview打开优酷腾讯或者自己做的视频网页无声音无法播放等问题

错误解决方案1:开启硬件加速

错误解决方案2:开始数据缓存

错误解决方案3:等等

重要原因1:自己做的H5网页使用的是http的url的链接

重要原因2:从Android5.0开始,WebView默认不支持同时加载Https和Http混合模式

解决方案2:

1、重写WebViewClient中的shouldOverrideUrlLoading方法

private class webViewClient extends WebViewClient {
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url.startsWith("http:") || url.startsWith("https:")) {
            return false;
        }
        try {
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
            startActivity(intent);
        } catch (Exception e) {
        }
        return true;
    }

 解决方案2:设置Webview加载内容为混合模式,允许Webview同时可以加载Https和Http

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}

 其他问题:如果设置setMixedContentMode为允许模式的话,经测试还有很多网页中动态获取数据的不展示,最终还需要在application上设置android:usesCleartextTraffic="true",8.0以上默认禁用了http

<application
   ........
    android:usesCleartextTraffic="true"
   ........
 >

 此外,如若想一劳永逸的方式的,可以选择使用webView的框架,github地址:https://github.com/Justson/AgentWeb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值