webview隱藏h5控制元件的方法
阿新 • • 發佈:2018-12-16
如果我們想在android用WebView載入H5頁面的時候去掉一些自己不想要的標籤,我們可以這樣做
1,在WebViewClient中實現:
@Override public void onPageFinished(WebView view, String url) { String js = "javascript:(function() {***這裡面可以寫js對頁面操作的程式碼***})()"; view.loadUrl(js); super.onPageFinished(view, url); }
這樣我們就可以實現對h5頁面標籤的操作了
可是這樣會面臨著一個問題,就是在這個onPageFinished執行之前,我們的頁面已經在我們的手機中展示給使用者看了 這樣之前的頁面會顯示在手機上,然後,執行js程式碼之後,標籤消失,這對使用者的體驗是一個很大的影響,那如何解決呢?
第二步 我們知道一個View物件都有visibility屬性 那我們在h5頁面未展示之前就將webview的visibility設定為invisible頁面載入完之後設定為visible不就行了嗎 那隻能在WebViewClient中找方法了
於是找到了onPageStarted方法:頁面開始時候執行 如是就有了如下的程式碼了
@Override public void onPageStarted(WebView view, String url, Bitmap favicon) { //在這裡設定webview的Visibility為invisible view.setVisibility(View.INVISIBLE); super.onPageStarted(view, url, favicon); } @Override public void onPageFinished(WebView view, String url) { String js = "javascript:(function() {***這裡面可以寫js對頁面操作的程式碼***})()"; view.loadUrl(js); //執行js程式碼後將webview顯示 view.setVisibility(View.VISIBLE); super.onPageFinished(view, url); }
博主實測可用
新手寫部落格,如有錯誤,請多包涵