1. 程式人生 > >ANDROID webview載入本地內容程式碼

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

Androidwebview載入本地html、本apk內html和遠端URL

1.佈局檔案片段:res-layout <WebView android:id="@+id/Toweb" android:layout_width="fill_parent" android:layout_height="fill_parent" /> 2.Ja

androidWebView載入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

AndroidWebView載入本地Html,與JavaScript與Android方法相互傳值

最近在做專案中,要使用HightChart來實現心電圖,於是,使用WebView載入本地html頁面,但是資料是通過藍芽裝置採集的資料,用Java程式碼獲取的資料,需要將資料傳到JavaScript中去,使用來繪製心電圖。以前都載入伺服器端返回的url地址,使用

AndroidWebView載入本地Html,與JavaScript與Android方法相互傳值(續)

接著上篇Android中WebView載入本地Html,與JavaScript與Android方法相互傳值,今天來一篇續集,為什麼要來續集呢,感覺自己還有沒有交代完的部分,於是在這裡再次交代一下,在Android中我們需要將給複雜的資料傳到Html頁面,我們該怎

Android WebView擷取所有內容生成長圖在5.0以上系統異常問題

最近在做webview擷取所有內容生成長圖時出現一些問題,在Android5.0以下系統能正常生成長圖,但是在5.0以上會出現只能擷取第一屏的內容,剩下的全部為空白,檢視資料發現原來是系統在5.0+版本上,Android對webview做了優化,為了減少記憶體佔用以提高效能,因此在預設情況下會智慧的