參照WeexSDK里的WXBaseViewController里的在控制器的viewDidAppear
里發(fā)送了一個appear
的事件通知举哟,然后js里監(jiān)聽此通知就能知道js頁面將要出現(xiàn)了,以便在頁面出現(xiàn)時刷新一些數(shù)據(jù)瘫里,不管是push
還是pop
耽装,但是在最近的一個生產(chǎn)問題是:wifi
情況下頁面請求正常,而在弱網(wǎng)情況下,js頁面不會有響應(yīng)杀糯,哪里是什么超時啊,也不會走苍苞,這些請求是放在了appear
這個監(jiān)聽里固翰,但是把這些請求直接寫在created
里就能正常,一直想了很久羹呵,最后定位到是原生發(fā)通知時骂际,js頁面還沒有開始監(jiān)聽,所以把js監(jiān)聽appear
通知的監(jiān)聽放在了weex頁面最靠前的一個方法[beforeCreate]
里
可惜在弱網(wǎng)情況下還是不行冈欢。
后面發(fā)現(xiàn)歉铝,是加載js頁面時沒有加載本地的,而是直接加載服務(wù)器上的js頁面凑耻。
所以就是在加載這個js頁面時太慢犯戏,而原生已經(jīng)發(fā)送了通知。
于是解決加載本地js的問題拳话,后發(fā)現(xiàn)是多級文件夾所導(dǎo)致先匪。因為之前設(shè)計這一套流程時,沒有考慮多級文件夾弃衍,而安卓是正常的呀非,因為安卓在加載本地js文件時,是跟根據(jù)js頁面名去遞歸遍歷查找文件,而我設(shè)計時岸裙,覺得遞歸查找太費時間 猖败,就直接用第一級文件夾名拼接好js頁面名,所以導(dǎo)致放在第一級的頁面是正常的降允,而放在二級三級的在弱網(wǎng)情況下就不正常了恩闻,而隨著項目
Weex化
越來越多分文件夾管理也是相當(dāng)必要的,所以后面處理了下剧董,就正常了幢尚。還有就是之前沒有考慮到在沒有網(wǎng)絡(luò)的情況下啟動app訪問weex頁面,導(dǎo)致是一片空白翅楼。也優(yōu)化了下:在下載json文件失敗后尉剩,嘗試查找本地json文件,嘗試讀取zip包毅臊,嘗試讀取解壓后的文件夾理茎,修復(fù)后斷網(wǎng)啟動app也能進入weex頁面了,當(dāng)然也還是有很多場景ifelse需要去考慮和兼容的管嬉,小記一下皂林。還有就是在本地調(diào)試時,json文件是沒有必要的蚯撩,render時也得處理優(yōu)化下