android webview 網(wǎng)頁圖片加載不出來孕惜、顯示不全愧薛、進(jìn)入某頁面退出,h5頁面滑不了诊赊,點(diǎn)不了等功能異常等問題集錦

在我們的android開發(fā)中,難免會(huì)嵌套一些h5頁面在APP中府瞄,固然是減輕了開發(fā)者的負(fù)擔(dān)碧磅,但也容易遇到一些很奇怪的問題。

一遵馆、網(wǎng)頁圖片加載不出來

此前筆者公司由于h5網(wǎng)頁鏈接頻繁被劫持篡改(鏈接被篡改為某大型購(gòu)物APP的鏈接過鲸郊,也被篡改為某新聞APP的鏈接過),迫不得已货邓,后臺(tái)緊急替換鏈接為https秆撮。在替換后,發(fā)現(xiàn)某些網(wǎng)頁上圖片加載不出來换况,最開始以為是網(wǎng)絡(luò)原因职辨,但試了很多手機(jī)后,不得不承認(rèn)是代碼出現(xiàn)了問題戈二。經(jīng)過各方定位舒裤,在瀏覽器上截取到網(wǎng)頁的鏈接是https,而圖片的鏈接是http觉吭,最后發(fā)現(xiàn)是webview的安全模式設(shè)置問題腾供。

從Android5.0開始,WebView默認(rèn)不支持同時(shí)加載Https和Http混合模式鲜滩。加上下面這句代碼就好了:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){

webSetting.setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE);

}

webview有以下幾種模式:

1.MIXED_CONTENT_NEVER_ALLOW:Webview不允許一個(gè)安全的站點(diǎn)(https)去加載非安全的站點(diǎn)內(nèi)容(http),比如伴鳖,https網(wǎng)頁內(nèi)容的圖片是http鏈接。強(qiáng)烈建議App使用這種模式徙硅,因?yàn)檫@樣更安全榜聂。

2.MIXED_CONTENT_ALWAYS_ALLOW:在這種模式下,WebView是可以在一個(gè)安全的站點(diǎn)(Https)里加載非安全的站點(diǎn)內(nèi)容(Http),這是WebView最不安全的操作模式嗓蘑,盡可能地不要使用這種模式峻汉。

3.MIXED_CONTENT_COMPATIBILITY_MODE:在這種模式下,當(dāng)涉及到混合式內(nèi)容時(shí)脐往,WebView會(huì)嘗試去兼容最新Web瀏覽器的風(fēng)格休吠。一些不安全的內(nèi)容(Http)能被加載到一個(gè)安全的站點(diǎn)上(Https),而其他類型的內(nèi)容將會(huì)被阻塞业簿。這些內(nèi)容的類型是被允許加載還是被阻塞可能會(huì)隨著版本的不同而改變瘤礁,并沒有明確的定義。這種模式主要用于在App里面不能控制內(nèi)容的渲染梅尤,但是又希望在一個(gè)安全的環(huán)境下運(yùn)行柜思。

第三種模式極少會(huì)用到岩调,因?yàn)樗钦娴牟话踩耍诙N方式赡盘,在某種意義上來說号枕,他其實(shí)還是安全的。后來貌似是遇到了https的網(wǎng)頁陨享,加載了http的js文件葱淳,導(dǎo)致不得不用到第三種方式(當(dāng)然,讓后臺(tái)改去吧抛姑,咱堅(jiān)決抵制這種模式)赞厕。

二、網(wǎng)頁顯示不全

有時(shí)我們會(huì)發(fā)現(xiàn)定硝,我們的網(wǎng)頁在有些手機(jī)上顯示不全皿桑,表現(xiàn)為有些頁面可能太寬,右邊頂出去一些蔬啡,有些寬頁面左右滑動(dòng)有問題诲侮,這些其實(shí)是因?yàn)槲覀兪謾C(jī)默認(rèn)字體大小影響了,可以試試調(diào)整手機(jī)默認(rèn)字體大邢潴 (字體太大浆西、太小顯示都會(huì)有問題)。當(dāng)然顽腾,代碼解決方案還是有的近零。加上下面這句代碼:

webview.getSettings().setTextZoom(100);

這句代碼的作用是設(shè)置WebView里的字體不隨系統(tǒng)字體大小設(shè)置發(fā)生變化。如果這樣界面顯示的大小還是有問題的話抄肖,就得找下h5的同學(xué)聯(lián)調(diào)一下了久信。

三、webview進(jìn)入某頁面退出漓摩,h5頁面滑不了裙士,點(diǎn)不了等功能異常

這個(gè)就比較扭曲了,本來h5頁面都好好的管毙,但鏈接進(jìn)入了某個(gè)第三方的h5頁面后腿椎,返回發(fā)現(xiàn)已加載的h5頁面滑動(dòng)不了,也點(diǎn)擊不了夭咬,再進(jìn)入第三方h5頁面時(shí)啃炸,發(fā)現(xiàn)第三方的h5功能也出現(xiàn)了各種異常(各手機(jī)現(xiàn)象不太一樣,但大同小異)卓舵,這個(gè)問題由于項(xiàng)目時(shí)間比較緊張南用,筆者也未曾深究過是為什么。

在手機(jī)設(shè)置里面有個(gè)多進(jìn)程webview,某些手機(jī)開啟后就好了裹虫,嗯~~~某些手機(jī)開啟后貌似會(huì)更不好肿嘲。從這個(gè)設(shè)置可以看出,應(yīng)該是我們進(jìn)入第三方h5頁面后筑公,在當(dāng)前進(jìn)程下雳窟,webview的某些參數(shù)被修改了,但具體是什么東西被修改呢匣屡?不知道封救。。耸采。

不過呢兴泥,不知道為什么不代表咱就改不了bug

從這個(gè)修改我們可以看出工育,只要把webview在不同的進(jìn)程中加載應(yīng)該就可以解決這個(gè)問題了虾宇。在對(duì)應(yīng)的webview的activity配置中加入下面代碼

android:process="com.example.web"

讓我們的這個(gè)webview運(yùn)行在獨(dú)立的進(jìn)程中,在界面銷毀時(shí)銷毀該進(jìn)程System.exit(0);

經(jīng)測(cè)試如绸,相當(dāng)完美嘱朽。據(jù)說也可以動(dòng)態(tài)加載webview避免該bug,不過筆者這種懶人怔接,自然是怎么簡(jiǎn)單怎么來了搪泳。

順便再記錄個(gè)bug,某些手機(jī)從界面點(diǎn)擊圖標(biāo)進(jìn)入APP扼脐,必然會(huì)從歡迎界面進(jìn)入(home切換不會(huì))岸军,只需要在歡迎界面的onCreate中加入如下代碼:

if((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) !=0){

finish();

return;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市瓦侮,隨后出現(xiàn)的幾起案子艰赞,更是在濱河造成了極大的恐慌,老刑警劉巖肚吏,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件方妖,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡罚攀,警方通過查閱死者的電腦和手機(jī)党觅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來斋泄,“玉大人杯瞻,你說我怎么就攤上這事§牌” “怎么了又兵?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我沛厨,道長(zhǎng)宙地,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任逆皮,我火速辦了婚禮宅粥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘电谣。我一直安慰自己秽梅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布剿牺。 她就那樣靜靜地躺著企垦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪晒来。 梳的紋絲不亂的頭發(fā)上钞诡,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音湃崩,去河邊找鬼荧降。 笑死,一個(gè)胖子當(dāng)著我的面吹牛攒读,可吹牛的內(nèi)容都是我干的朵诫。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼薄扁,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼剪返!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起邓梅,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤脱盲,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后震放,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宾毒,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年殿遂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了诈铛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡墨礁,死狀恐怖幢竹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情恩静,我是刑警寧澤焕毫,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布蹲坷,位于F島的核電站,受9級(jí)特大地震影響邑飒,放射性物質(zhì)發(fā)生泄漏循签。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一疙咸、第九天 我趴在偏房一處隱蔽的房頂上張望县匠。 院中可真熱鬧,春花似錦撒轮、人聲如沸乞旦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兰粉。三九已至,卻和暖如春顶瞳,著一層夾襖步出監(jiān)牢的瞬間玖姑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工浊仆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留客峭,地道東北人豫领。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓抡柿,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親等恐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子洲劣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,799評(píng)論 25 707
  • 心是一根蠟燭,淚水流盡课蔬,心就會(huì)死去囱稽, 愛是一種孤獨(dú),燭火熄滅二跋,曲終人散战惊。
    棋罷不知人世換閱讀 139評(píng)論 0 0
  • 《 梔子花開》上映了,約上閨蜜一起去看扎即。心想著吞获,畢竟是何老師首部導(dǎo)演的電影,怎樣都應(yīng)該捧捧場(chǎng)谚鄙,買票取票看電影...
    筆尖上的躁動(dòng)閱讀 283評(píng)論 0 1