ANDROID webview載入本地內容程式碼
由於我目前的應用大部分為html網頁內容,所以之前一直沿用webview.load(url)的方式來載入網頁,所以就出現了很多網頁載入很慢的情況,看網上所述大部分由載入遠端載入js,css導致的。所以就把webview.load(url)調整為載入本地內容,js和css均有本地html檔案載入。著實速度提升了不少。是的,js互動事件也是本地的!而網頁內容是介面實時返回的。
1,現在本地assets檔案下建立一個html原始檔,包含一些head和要互動的js事件
例:openActivity()為預設js事件。<style>img為網頁內容中的圖片適應設定。viewport為網頁適應手機螢幕大小。
<div id="mobile_content">為實際載入的網頁內容的控制元件標籤,所有從網路獲取的網頁內容程式碼均會載入在這個 div中。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=2, minimum-scale=1, user-scalable=yes"> <style> img {max-width:100%; box-sizing: border-box; vertical-align: middle;} </style> </head> <body> <div class="content"> <div id="mobile_content"></div> <script type="text/javascript"> function openActivity(type,id){ window.Android.openActivity(type,id); } </script> </div> </body> </html>
2,由於assets檔案下的檔案是不具備寫入許可權,所以我們需要首次開啟應用時將html原始檔copy到sd卡上
不贅述
3,將準本好的將要載入的實際網頁內容新增到html中供webview載入
// 使用Jsoup獲取本地html檔案並將內容填充到html檔案中
Document doc = Jsoup.parse(FileUtils.readFileSdcard(FileUtils.SDPATH + "index.html"));//Jsoup解析檔案 //Joup解析url網址 Jsoup.connect(url).get(); //獲取載入內容的div標籤 Element e = doc.getElementById("mobile_content"); e.append("寫入從介面中獲取的實際的網頁內容程式碼"); String content = doc.html();
//載入
mWebView.loadDataWithBaseURL(FileUtils.SDPATH+ "index.html", content, "text/html", "utf-8", "");
4,阻塞圖片載入,內容載入完後再開啟圖片載入
mWebView.getSettings().setLoadsImagesAutomatically(false);阻塞載入
mWebView.getSettings().setLoadsImagesAutomatically(true);關閉阻塞載入
5,本地js事件設定
class JavaScriptInterface {
@JavascriptInterface
public void openActivity(String type, String id) {
}
@JavascriptInterface
@Override
public String toString() {
return "Android";
}
}
mWebView.addJavascriptInterface(new JavaScriptInterface(), "Android");
到此處,O了!
相關推薦
ANDROID webview載入本地內容程式碼
由於我目前的應用大部分為html網頁內容,所以之前一直沿用webview.load(url)的方式來載入網頁,所以就出現了很多網頁載入很慢的情況,看網上所述大部分由載入遠端載入js,css導致的。所以就把webview.load(url)調整為載入本地內容,js和css均有
IOS學習之WebView載入本地HTML程式碼或網路資源
新建SingleViewApplication應用,命名WebViewSample, 在storyboard中拖3個Button,定義動作,再拖一個WebView,然後建立他們的弱連結輸出口,得到如下的程式碼: #import <UIKit/UIKit.h>
android webview 載入本地html並且解決多圖卡頓問題
使用webview載入本地html,因為本地html使用多張圖片,滑動起來卡頓,解決方法如下: 把資料夾放入assets資料夾下 Activity載入: WebView wView = (
Android Webview載入網頁內容不全
之前在開發時,要求用webview載入一個url展示活動頁面,並無其他需求,很簡單的一個需求。然後遇到一個坑——載入的網頁內容不全,花了幾個小時,試了網上的一些方法並沒有效果。 最後詢問前端的同學得知,這個網頁用了動態載入,並不會在第一次載入時就載入全部內容。
Android webview載入本地圖片
出於安全的考慮,一般情況下webview並不允許網頁讀取和操作網頁檔案所在資料夾外的檔案。 在網上搜索後,發現有3種可行的方法: 1、使用WebView自身的資源攔截與回撥來實現該功能; WebView的shouldInterceptRequest回撥從API 11才
android-WebView載入本地html、本apk內html和遠端URL
WebView(網路檢視)能載入顯示網頁,可以將其視為一個瀏覽器。它使用了WebKit渲染引擎載入顯示網頁,實現WebView有以下兩種不同的方法: 第一種方法的步驟: 1.在要Activity中例
記Android webView載入html程式碼 不執行js方法的情況
頁面中有一個webView顯示後臺返回的富文字資料,富文字資料是一串html程式碼,但是並沒有<html><body>這些標籤,webView不做任何處理,使用 webView.loadData(html, "text/html; charset=U
Android webview載入html程式碼 上下左右有白邊問題
直接開始後臺返回一串html程式碼字串 然候客戶端用webview做展示 別的都正常 只是四周會有白邊 網上找的各種方法都不好使 如下圖後來給webview添加了兩個setting表框變窄了 但是還
Android WebView載入最基本的程式碼
public class WebViewActivity extends Activity { @BindView(R.id.webview) WebView mWebView; private String url; @Ov
Android使用WebView載入本地圖片終極大殺招
WebView 主要呼叫三個方法:loadUrl、loadData、loadDataWithBaseURL。 1、loadUrl 直接載入網頁、圖片並顯示。(本地或是網路上的網頁、圖片、gif) 2、loadData 顯示文字與圖片內容
Android Webview 載入外部html時選擇載入本地的js,css等資原始檔
在使用WebView載入網頁的時候,有一些固定的資原始檔如js的jquery包,css,圖片等資源會比較大,如果直接從網路載入會導致頁面載入的比較慢,而且會消耗比較多的流量。所以這些檔案應該放在assets裡面同app打包。 要解決這個問題需要用到API 11(HONEYC
android studio中新建assets,用webview載入本地圖片
xml檔案中建立webview <WebView android:id="@+id/wv_explain" android:layout_width="match_parent" android:layout_hei
Android生成PDF檔案、webview載入本地PDF或者網路PDF
生成pdf Andrid端生成PDF侷限性太差,尚未有優雅的解決方案。但網上眾說紛紜,實踐者少之又少,高質量的博文也是鳳毛麟角,大家都是博文搬用工,也沒有誰做過詳細的探索。筆者就自己的一點經驗做點分享。 使用iText iText不支援中文,要
Android webView載入html程式碼詳解
最近的專案需要做一個如同微信中的騰訊新聞的功能,如下圖所示: 直接上關鍵程式碼: 佈局: Xml程式碼 <?xmlversion="1.0"encoding="utf-8"?> <RelativeLayoutxmlns:android="htt
Android的webview載入本地html、本apk內html和遠端URL
1.佈局檔案片段:res-layout <WebView android:id="@+id/Toweb" android:layout_width="fill_parent" android:layout_height="fill_parent" /> 2.Ja
android的WebView載入html內容圖片超出螢幕範圍
1.使用css處理 img{ width: 84vw;//佔寬度的84% } 2.在圖片內容後面條件Js 另外一種讓圖片不超出螢幕範圍的方法,現在用的是css <script type="text/javascript"> var table
Android WebView 載入HTML程式碼
<uses-permission android:name="android.permission.INTERNET" /> <?xml version="1.0" enco
Android中WebView載入本地Html,與JavaScript與Android方法相互傳值
最近在做專案中,要使用HightChart來實現心電圖,於是,使用WebView載入本地html頁面,但是資料是通過藍芽裝置採集的資料,用Java程式碼獲取的資料,需要將資料傳到JavaScript中去,使用來繪製心電圖。以前都載入伺服器端返回的url地址,使用
Android中WebView載入本地Html,與JavaScript與Android方法相互傳值(續)
接著上篇Android中WebView載入本地Html,與JavaScript與Android方法相互傳值,今天來一篇續集,為什麼要來續集呢,感覺自己還有沒有交代完的部分,於是在這裡再次交代一下,在Android中我們需要將給複雜的資料傳到Html頁面,我們該怎
Android WebView擷取所有內容生成長圖在5.0以上系統異常問題
最近在做webview擷取所有內容生成長圖時出現一些問題,在Android5.0以下系統能正常生成長圖,但是在5.0以上會出現只能擷取第一屏的內容,剩下的全部為空白,檢視資料發現原來是系統在5.0+版本上,Android對webview做了優化,為了減少記憶體佔用以提高效能,因此在預設情況下會智慧的