Android webview注入JS代碼 修改網(wǎng)頁(yè)內(nèi)容操作
今天開(kāi)發(fā)的時(shí)候遇到一個(gè)需求,就是需要隱藏webview的元素,鼓搗了半天 在stack overFlow找到了解決辦法 在此記錄一下
final WebView webview = (WebView)findViewById(R.id.browser); webview.getSettings().setJavaScriptEnabled(true); webview.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { // hide element by class name webview.loadUrl('javascript:(function() { ' + 'document.getElementsByClassName(’your_class_name’)[0].style.display=’none’; })()'); // hide element by id webview.loadUrl('javascript:(function() { ' + 'document.getElementById(’your_id’).style.display=’none’;})()'); } }); webview.loadUrl(url);
結(jié)束!
補(bǔ)充知識(shí):android——webview修改html界面,達(dá)到去除或隱藏部分界面的效果
如下所示:
去除NBA及CAB頻道。
為了達(dá)到這個(gè)效果,當(dāng)時(shí)考慮了兩種方式。
第一種是在webview加載前,先講html代碼拉下來(lái),修改后,在通過(guò)webview去加載。
第二種就是查看源代碼,直接動(dòng)手修改源代碼,然后把源代碼放在assets文件下,每次直接從本地加載。
在查看完源代碼(在電腦瀏覽器,打開(kāi)網(wǎng)頁(yè),右鍵單擊,查看源代碼)后發(fā)現(xiàn),這個(gè)網(wǎng)頁(yè),太適合第二種方式了。頻道是寫死的。可以直接改。而其他的界面都是通過(guò)js動(dòng)態(tài)生成的。毫不猶豫的把源代碼copy下來(lái)(注意格式,utf-8,無(wú)bom,否則中文亂碼)。
就這樣,第一個(gè)問(wèn)題順利解決了。
加載assets下的html代碼方式為:
webview.loadUrl('file:///android_asset/test.html');
以上這篇Android webview注入JS代碼 修改網(wǎng)頁(yè)內(nèi)容操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Django視圖類型總結(jié)2. Xml簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理3. 使用Docker的NFS-Ganesha鏡像搭建nfs服務(wù)器的詳細(xì)過(guò)程4. Intellij IDEA 關(guān)閉和開(kāi)啟自動(dòng)更新的提示?5. Ajax引擎 ajax請(qǐng)求步驟詳細(xì)代碼6. 解析原生JS getComputedStyle7. idea重置默認(rèn)配置的方法步驟8. IntelliJ IDEA Java項(xiàng)目手動(dòng)添加依賴 jar 包的方法(圖解)9. Django使用HTTP協(xié)議向服務(wù)器傳參方式小結(jié)10. Spring @Profile注解實(shí)現(xiàn)多環(huán)境配置
