在weex中的使用組件web標(biāo)簽,實(shí)際則是webview的應(yīng)用,只是sdk中只封裝了基本方法,下面所列舉遇到的問題實(shí)則都是webview加載url過程中所遇到的常規(guī)問題
1.拍照與選擇照片
2.錄視頻
3.加載第三方url 鍵盤遮擋輸入框
正常使用web標(biāo)簽(實(shí)際是在weex中通過webiview封裝的組件)加載第三方url,如果發(fā)生鍵盤遮擋輸入法的問題,我們基本上可以通過常規(guī)方法設(shè)置'''android:windowSoftInputMode'''即可解決,但在weex中發(fā)現(xiàn)不起作用,也不是因?yàn)樵O(shè)置了全屏屬性導(dǎo)致的,在和前段調(diào)試的過程中發(fā)現(xiàn)window的窗口大小沒有變化,最終確定是web標(biāo)簽的高度沒有變化導(dǎo)致的
<web> 必須指定 width 和 height 的樣式屬性修壕,否則將不起作用活翩;
使用過程:
weex官方文檔中指出必須有寬高,否則web標(biāo)簽不起作用,自然在使用的時(shí)候會(huì)設(shè)置一個(gè)指定高度(屏幕高度-狀態(tài)欄高度-標(biāo)題欄高度),然后根據(jù)web標(biāo)簽屬性src指定一個(gè)url,頁面正常加載顯示,只是在頁面輸入框獲得焦點(diǎn),鍵盤彈起來,可輸入框不會(huì)向上滑動(dòng),遮擋了...
按常規(guī)方法設(shè)置之后都不起作用,在和前端聯(lián)調(diào)反饋說鍵盤彈起時(shí)窗口大小沒有變化,頁面無法向上滑動(dòng),輸入框被鍵盤遮擋,進(jìn)而做了這樣的一個(gè)處理,
監(jiān)聽鍵盤的彈起或者收起狀態(tài),
默認(rèn)鍵盤是收起的,這個(gè)時(shí)候使用的是web默認(rèn)時(shí)的初始高度((屏幕高度-狀態(tài)欄高度-標(biāo)題欄高度)),
當(dāng)鍵盤彈起時(shí),則修改web的高度為原始高度+頁面變化高度+標(biāo)題欄高度
再收起時(shí) 則還原為初始高度
如此測(cè)試發(fā)現(xiàn)正常,問題解決
在這個(gè)調(diào)試過程中發(fā)現(xiàn)部分手機(jī)會(huì)有一片空白,這是因?yàn)橛行┦謨?cè)有底部虛擬導(dǎo)航按鍵,這個(gè)高度不有計(jì)算導(dǎo)致的
4.應(yīng)用喚醒和下載
5.加載第三方url 重定向返回鍵無法返回或者連續(xù)點(diǎn)擊2次返回可返回
6.返回鍵問題
7.當(dāng)weex使用web標(biāo)簽加載第3方h5鏈接JS交互問題
這里主要涉及3個(gè)要素:前端頁面(vue代碼)
與 原生代碼(android或者ios)
和 第3方H5頁面
,其實(shí)也就是原生webview在兩端的交互實(shí)現(xiàn), 大概交互流程如圖所示
具體可以參考鏈接js交互參考