摘要:一直想寫一個(gè)關(guān)于控件的一些簡(jiǎn)單運(yùn)用,都沒(méi)什么時(shí)間,這次也是擠出時(shí)間寫的,里面的一些基礎(chǔ)知識(shí)就等有時(shí)間再更新講解一下,今天就先把項(xiàng)目出來(lái)做一些簡(jiǎn)單介紹,過(guò)多的內(nèi)容可以看我的源碼,都傳到上了。
一直想寫一個(gè)關(guān)于 WebView 控件的 一些簡(jiǎn)單運(yùn)用,都沒(méi)什么時(shí)間,這次也是擠出時(shí)間寫的,里面的一些基礎(chǔ)知識(shí)就等有時(shí)間再更新講解一下,今天就先把項(xiàng)目出來(lái)做一些簡(jiǎn)單介紹,過(guò)多的內(nèi)容可以看我的源碼,都傳到github上了。
下面是項(xiàng)目的效果圖:
應(yīng)用用到的是 MVP 設(shè)計(jì)模式,對(duì)這種模式還不太了解的可以先自行g(shù)oogle一下,不然項(xiàng)目估計(jì)會(huì)看的暈,雖然我的代碼都很簡(jiǎn)潔的。
對(duì)于MVP 可以帶著一個(gè)思路看源碼,那就是 activity(或其他組件)通過(guò) xxPresenter 去拿數(shù)據(jù),拿到數(shù)據(jù) 在 xxPresenter 再利用 xxIView(這是一個(gè)接口)更新數(shù)據(jù),那么activity(或其他組件)繼承 xxIView 這個(gè)接口 就可以 更新UI 了
其實(shí) WebView 只用到一些簡(jiǎn)單的,深入應(yīng)用本篇文章會(huì)在更新!
其中:
//設(shè)置WebView的一些縮放功能點(diǎn) webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); webView.setHorizontalScrollBarEnabled(false); webView.getSettings().setSupportZoom(true); //設(shè)置WebView可觸摸放大縮小 webView.getSettings().setBuiltInZoomControls(true); webView.setInitialScale(70); webView.setHorizontalScrollbarOverlay(true); //WebView雙擊變大,再雙擊后變小,當(dāng)手動(dòng)放大后,雙擊可以恢復(fù)到原始大小 //webView.getSettings().setUseWideViewPort(true); //提高渲染的優(yōu)先級(jí) webView.getSettings().setRenderPriority(RenderPriority.HIGH); //允許JS執(zhí)行 webView.getSettings().setJavaScriptEnabled(true); //把圖片加載放在最后來(lái)加載渲染 //webView.getSettings().setBlockNetworkImage(true); //用WebView將字符串以HTML的形式顯示出來(lái) //webView.loadDataWithBaseURL("fake://not/needed",zzz
, "text/html", "utf-8", ""); //在同種分辨率的情況下,屏幕密度不一樣的情況下,自動(dòng)適配頁(yè)面:
與 native 進(jìn)行交互:
mWebView.addJavascriptInterface(new WebAppInterface(customView.getContext()),"Android"); public class WebAppInterface { Context mContext; /** Instantiate the interface and set the context */ WebAppInterface(Context c) { mContext = c; } /** Show a toast from the web page */ @JavascriptInterface public void showToast(String toast) { // 比如點(diǎn)擊 webview加載的html 片段 可以 讓應(yīng)用彈出一個(gè)土司 }
這里給 webview 設(shè)置 夜間模式:
也就往 html 頁(yè)面寫入 html 標(biāo)簽 "
public static String buildHtmlWithCss(String html, String[] cssUrls, boolean isNightMode) { StringBuilder result = new StringBuilder(); for (String cssUrl : cssUrls) { result.append(String.format(CSS_LINK_PATTERN, cssUrl)); } if (isNightMode) { result.append(NIGHT_DIV_TAG_START); } result.append(html.replace(DIV_IMAGE_PLACE_HOLDER, DIV_IMAGE_PLACE_HOLDER_IGNORED)); if (isNightMode) { result.append(NIGHT_DIV_TAG_END); } return result.toString(); }
項(xiàng)目還得有待改進(jìn),等這段時(shí)間忙完就跟新?。。?!
項(xiàng)目源碼 github
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/49864.html
摘要:一直想寫一個(gè)關(guān)于控件的一些簡(jiǎn)單運(yùn)用,都沒(méi)什么時(shí)間,這次也是擠出時(shí)間寫的,里面的一些基礎(chǔ)知識(shí)就等有時(shí)間再更新講解一下,今天就先把項(xiàng)目出來(lái)做一些簡(jiǎn)單介紹,過(guò)多的內(nèi)容可以看我的源碼,都傳到上了。 一直想寫一個(gè)關(guān)于 WebView 控件的 一些簡(jiǎn)單運(yùn)用,都沒(méi)什么時(shí)間,這次也是擠出時(shí)間寫的,里面的一些基礎(chǔ)知識(shí)就等有時(shí)間再更新講解一下,今天就先把項(xiàng)目出來(lái)做一些簡(jiǎn)單介紹,過(guò)多的內(nèi)容可以看我的源碼,都...
摘要:一直想寫一個(gè)關(guān)于控件的一些簡(jiǎn)單運(yùn)用,都沒(méi)什么時(shí)間,這次也是擠出時(shí)間寫的,里面的一些基礎(chǔ)知識(shí)就等有時(shí)間再更新講解一下,今天就先把項(xiàng)目出來(lái)做一些簡(jiǎn)單介紹,過(guò)多的內(nèi)容可以看我的源碼,都傳到上了。 一直想寫一個(gè)關(guān)于 WebView 控件的 一些簡(jiǎn)單運(yùn)用,都沒(méi)什么時(shí)間,這次也是擠出時(shí)間寫的,里面的一些基礎(chǔ)知識(shí)就等有時(shí)間再更新講解一下,今天就先把項(xiàng)目出來(lái)做一些簡(jiǎn)單介紹,過(guò)多的內(nèi)容可以看我的源碼,都...
摘要:根據(jù)標(biāo)準(zhǔn),到目前為止,一共有種緩存機(jī)制,有些是之前已有,有些是才新加入的。首次請(qǐng)求緩存有效期內(nèi)請(qǐng)求緩存過(guò)期后請(qǐng)求一般瀏覽器會(huì)將緩存記錄及緩存文件存在本地文件夾中。 騰訊 Bugly 特約作者:賀輝超 1. H5 緩存機(jī)制介紹 H5,即 HTML5,是新一代的 HTML 標(biāo)準(zhǔn),加入很多新的特性。離線存儲(chǔ)(也可稱為緩存機(jī)制)是其中一個(gè)非常重要的特性。H5 引入的離線存儲(chǔ),這意味著 web ...
閱讀 1648·2019-08-30 15:44
閱讀 2570·2019-08-30 11:19
閱讀 400·2019-08-30 11:06
閱讀 1565·2019-08-29 15:27
閱讀 3082·2019-08-29 13:44
閱讀 1627·2019-08-28 18:28
閱讀 2357·2019-08-28 18:17
閱讀 1986·2019-08-26 10:41