WebView


本人博客地址:http://my.oschina.net/lijindou/blog

转载请标明原址:https://my.oschina.net/lijindou/blog/751811


1.在项目中,webview的滑动条说句实话,真心不是很好看,当然最贱单 ,最粗暴的方法就是将其隐藏,webview有两个滑动条:

webView.setHorizontalScrollBarEnabled(false);//水平不显示
webView.setVerticalScrollBarEnabled(false); //垂直不显示
webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);//滚动条在WebView内侧显示
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY)//滚动条在WebView外侧显示

2.关于webview的 JS调JAVA方法  和 JAVA调JS方法,这个 我写了一篇 博客这里  把链接给大家

https://my.oschina.net/lijindou/blog/746993

3.还有就是我们项目中用到的HTML页面 是带 音频的, 并且是在打开页面的时候就放音频 ,然而 这个时候出现了这么一个问题,部分机子,可能是因为webview的封装不同吧,出现了点击开之后不播放,如:某星,某米,某为

这个可是不行的啊,然后  上网看了下,发现大家,有很多人都是出现了这问题,(⊙v⊙)嗯,大致 的看了下,基本分为处理原生的webview,或者就是 调用JS,我用的就是在原生向JS 中传过去一段JS代码,然后就OK了

代码:

webView.setWebViewClient(new WebViewClient() {
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        webView.loadUrl(url);
        return true;
    }

    public void onPageFinished(WebView view, String url) {
        // TODO
        super.onPageFinished(view, url);
        webView.loadUrl("javascript:(function() { " +
                "var audios = document.getElementsByTagName('audio');" +
                " for(var i=0;i<audios.length;i++){audios[i].play();}})()");
    }

});

这段代码的大致意思是应该就是 给JS 说,你要播放音乐了。恩,没错,应该是这样!!!

哦,还有 ,就是有的时候,如果进入界面是不能播放 的,但是 HTML 又是进入页面直接播放的,那么其实这段代码改改 也是 可以用的   恩,就是改 一个 单词的事

web_zimo_type_test_mo_ni_web.setWebViewClient(new WebViewClient() {
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        web_zimo_type_test_mo_ni_web.loadUrl(url);
        return true;
    }

    public void onPageFinished(WebView view, String url) {
        // TODO
        super.onPageFinished(view, url);
        Log.e(TAG, "onPageFinished: webview  声音 从这过了444");
        web_zimo_type_test_mo_ni_web.loadUrl("javascript:(function() { " +
                "var audios = document.getElementsByTagName('audio');" +
                " for(var i=0;i<audios.length;i++){audios[i].pause();}})()");

    }

});

恩,就是把 play  改为  pause 就OK 了

4.  还有 就是     无论是  加载  网络的  网页 还是 本地的网页,都是有一个 加载 过程的,那么   webview  也是  给提供  了 这样的一个方法的

web_zimo_type_test_mo_ni_web.setWebViewClient(new WebViewClient() {
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        web_zimo_type_test_mo_ni_web.loadUrl(url);
        return true;
    }

    public void onPageFinished(WebView view, String url) {
        // TODO
        super.onPageFinished(view, url);
        Log.e(TAG, "onPageFinished: webview  声音 从这过了333");
   
        web_zimo_type_test_mo_ni_web.loadUrl("javascript:(function() { " +
                "var audios = document.getElementsByTagName('audio');" +
                " for(var i=0;i<audios.length;i++){audios[i].play();}})()");

//其实这里的 代码  就是 当 webview  加载完成后 才执行的 代码 
    }


});

好了,今天 也就先  总结这么多吧,以后 会再  补充的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值