? ? ? ? 前兩天沒事,經(jīng)理說網(wǎng)頁加載緩慢,想要把幾個引擎文件放到本地進行加載。好吧,老大發(fā)話,小弟只能聽從就是了。
? ? ? ? 安卓對接很快就成功了,直接就是監(jiān)聽到request然后進行分別響應(yīng),沒幾分鐘就完成了。結(jié)果等接iOS的時候,直接有點懵逼了,一直沒有加載成功。
開始費盡心機在網(wǎng)絡(luò)上搜索資源,大部分都是要么全都是加載網(wǎng)上的資源,要么都是html、js和css等文件一起存放到本地,心疼自己半天。
不過,總還是有先驅(qū)者先一步探路,讓我們能夠站在他們肩膀上望得更遠。感謝小懶在路上還有stack上的Sami Samhuri和Nick Weaver先驅(qū)們,向你們致敬。
話不多說,照樣先看代碼:
1.新建一個自定義類,繼承自NSURLProtocol,用來進行監(jiān)聽web中request,并根據(jù)情況進行處理。

2.實現(xiàn)自定義類

3.當(dāng)在上一個方法中返回YES的時候,會進入到startLoading方法中。

? ? ? ? 原本加載的是網(wǎng)絡(luò)上的js文件,更改成加載本地的js文件。這個地方有一個小坑,我原本想定義一個全局變量表示文件名偷懶一下,下方就不用進行截取url了。結(jié)果就因為這個問題坑了我90%以上的時間。
? ? ? ? 最后通過打印信息我發(fā)現(xiàn),如果定義全局變量的時候,我加載多個文件,它根本沒有反應(yīng)過來,所加載的文件全都是同一個文件。實在沒有辦法,只能通過url進行剝離文件名稱了。
4.最后一步,在需要使用的地方添加注冊。

OK,到這里也就全部成功了。
最后,感謝先驅(qū)者們的技術(shù)分享。
參考鏈接: