本人博客地址: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 加载完成后 才执行的 代码 } });
好了,今天 也就先 总结这么多吧,以后 会再 补充的。