分享:android原生售葡,搭配js配置webview的一些筆記

最近兩次應(yīng)運(yùn)eclipse + genymotion +sdk Manager開發(fā)android應(yīng)用都很大程度的運(yùn)用了Webview桥帆,一次是利用webview顯示google離線地圖并用google map api提供的一些接口控制地圖縮放丛晦,定位洼怔。最近一次是模擬制作寬帶測試的app。

用過webview的同學(xué)應(yīng)該都知道又官,直接把一個(gè)html頁面通過webview載入的話會(huì)發(fā)現(xiàn)延刘,頁面內(nèi)元素的大小無法和webview容器完美兼容,webview出現(xiàn)左右六敬、上下滾動(dòng)條影響頁面美觀和功能碘赖。

下面,我拿最近利用echarts制作的外构,類似寬帶測試的app簡單的分享一下如何在js端和android共同配置普泡,讓自己的頁面載入webview后達(dá)到自己想要的效果。

首先审编,我們建立一個(gè)android項(xiàng)目撼班,在AndroidManifest.xml中定義一個(gè)主頁,并配置相應(yīng)的權(quán)限垒酬。

"http://schemas.android.com/apk/res/android"

package="com.zjtelecom.kdcs"

android:versionCode="1"

android:versionName="1.0">

"@drawable/telecom"android:label="@string/app_name">

"com.zjtelecom.kdcs.index"android:label="@string/app_name">

"android.intent.action.MAIN"/>

"android.intent.category.LAUNCHER"/>

其次权烧,建立一個(gè)activity,我的項(xiàng)目中是index.java,對(duì)應(yīng)的建立一個(gè)xml文件用來編寫webview控件和頁面布局。

文件:index.java代碼片段


文件:main_xx.xml代碼片段

這里主要講一下index.java中關(guān)于webview的一些配置伤溉。

WebSettingsmWebSettings= webV.getSettings();

mWebSettings.set;

mWebSettings.set;

mWebSettings.setUseWideViewPort(false);

mWebSettings.setLoadWithOverviewMode(false);

mWebSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);

webV.setOverScrollMode(1);

webV.setWebChromeClient(newMyWebChromeClient());

webV.addJavascriptInterface(newDemo;

設(shè)置支持js,去滾動(dòng)條等基本屬性妻率。

webV.setWebViewClient(newWebViewClient(){

//監(jiān)聽webview加載狀態(tài)乱顾,加載完成后,調(diào)用html頁面的js函數(shù)設(shè)置外部DIV的寬和高度宫静。

publicvoidonPageFinished(WebView view,String url){

DisplayMetrics dm =newDisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dm);

intdevWidth = dm.widthPixels;

intdevHeight = dm.heightPixels;

floatdenisty = dm.density;

intdenistyDpi= dm.densityDpi;

intdivWidth = (int) (devWidth/denisty);

intdivHeight = (int) (devHeight/denisty);

if(denistyDpi== 120)

divHeight = divHeight - 38;

if(denistyDpi== 160)

divHeight = divHeight - 50;

if(denistyDpi> 240)

divHeight = divHeight - 76;

//設(shè)置地圖顯示DIV尺寸適應(yīng)手機(jī)大小webV.loadUrl("; } });

//最后載入你想要載入的頁面

webV.loadUrl("載入的html頁面的url地址走净,可以放在本地資源文件也可以是http://形式的url");

//接著加入這兩個(gè)接口的的實(shí)現(xiàn)

這里是根據(jù)設(shè)備的dpi計(jì)算html文件中最外圍的DIV或者空間的最大寬度和高度券时,因?yàn)槊總€(gè)設(shè)備的分辨率不同,屏幕尺寸不同伏伯,為了使用webview加載的頁面兼容所以做了個(gè)簡單的計(jì)算橘洞,因?yàn)楣P者身邊沒有做android的人,本身對(duì)于android開發(fā)的應(yīng)用需求也不是很多说搅,一直沒有找到其他更好的解決方案炸枣,所以就通過自己計(jì)算屏幕分辨率和寬、高的方式來應(yīng)用webview弄唧,如果你有更好的解決方案适肠,麻煩告知。

到這里候引,android的部分就差不多了侯养,下面來看看html部分的主要代碼。

圖中有一個(gè)setDivWidthHeight的函數(shù)澄干,就是上面android頁面中發(fā)起的調(diào)用webV.loadUrl(""將android計(jì)算出的屏幕寬度和高度發(fā)送給js逛揩,再用js控制頁面ID=main的DIV的寬度和高度,這樣就把頁面大小定下來了麸俘,至于圖中儀表盤的功能實(shí)現(xiàn)和echarts的應(yīng)用辩稽,可以查看我上次分享的學(xué)習(xí)分享,echarts模擬寬帶測速效果附Demo演示地址<碴搂誉!鏈接地址。

最后静檬,整個(gè)html頁面的功能都在div id=main這個(gè)div元素內(nèi)完成炭懊,就能確保無論是什么樣的設(shè)備打開我的app應(yīng)用,都能通過webview完美的把整個(gè)html5的內(nèi)容呈現(xiàn)出來拂檩,代碼有點(diǎn)雜亂侮腹,守環(huán)境配置影響不能把所有的代碼貼出來,有需要的可以私信我稻励。

附:自己做了個(gè)公眾號(hào)父阻,湊湊微商的熱鬧。喜歡的朋友可以關(guān)注望抽,購買加矛!買到不滿意的東西可以加我微信:Zjgfcwang要求退款。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末煤篙,一起剝皮案震驚了整個(gè)濱河市斟览,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌辑奈,老刑警劉巖苛茂,帶你破解...
    沈念sama閱讀 222,807評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件已烤,死亡現(xiàn)場離奇詭異,居然都是意外死亡妓羊,警方通過查閱死者的電腦和手機(jī)胯究,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來躁绸,“玉大人裕循,你說我怎么就攤上這事≌茄眨” “怎么了费韭?”我有些...
    開封第一講書人閱讀 169,589評(píng)論 0 363
  • 文/不壞的土叔 我叫張陵,是天一觀的道長庭瑰。 經(jīng)常有香客問我星持,道長,這世上最難降的妖魔是什么弹灭? 我笑而不...
    開封第一講書人閱讀 60,188評(píng)論 1 300
  • 正文 為了忘掉前任督暂,我火速辦了婚禮,結(jié)果婚禮上穷吮,老公的妹妹穿的比我還像新娘逻翁。我一直安慰自己,他們只是感情好捡鱼,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評(píng)論 6 398
  • 文/花漫 我一把揭開白布八回。 她就那樣靜靜地躺著,像睡著了一般驾诈。 火紅的嫁衣襯著肌膚如雪缠诅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,785評(píng)論 1 314
  • 那天乍迄,我揣著相機(jī)與錄音管引,去河邊找鬼。 笑死闯两,一個(gè)胖子當(dāng)著我的面吹牛褥伴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播漾狼,決...
    沈念sama閱讀 41,220評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼重慢,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了逊躁?” 一聲冷哼從身側(cè)響起伤锚,我...
    開封第一講書人閱讀 40,167評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后屯援,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,698評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡念脯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評(píng)論 3 343
  • 正文 我和宋清朗相戀三年狞洋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绿店。...
    茶點(diǎn)故事閱讀 40,912評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吉懊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出假勿,到底是詐尸還是另有隱情借嗽,我是刑警寧澤,帶...
    沈念sama閱讀 36,572評(píng)論 5 351
  • 正文 年R本政府宣布转培,位于F島的核電站恶导,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏浸须。R本人自食惡果不足惜惨寿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望删窒。 院中可真熱鬧裂垦,春花似錦、人聲如沸肌索。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诚亚。三九已至晕换,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間亡电,已是汗流浹背届巩。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留份乒,地道東北人恕汇。 一個(gè)月前我還...
    沈念sama閱讀 49,359評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像或辖,于是被迫代替她去往敵國和親瘾英。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容