基礎篇:
NSURL介紹 http://blog.csdn.net/ysy441088327/article/details/7416759
網頁執行js代碼
這個方法是讓一切成為可能的關鍵,有了這個方法,才能對網頁進行各種操作。我自己沒有做過網頁開發,所以對js不熟悉,只用了一些最常用的js,如果非常熟悉的話應該能做更多的事。
從網頁獲取URL:
從網頁獲取標題:
網站的圖標Icon下載地址:
判斷url是否相同:
NSURL的isEqual方法不太好用。最常見的問題是http://www.google.com和http://www.google.com/會判斷不同,原因是蘋果在這里沒有遵循RFC2616規則做網址對比,所以最好自己判斷下最后的斜杠
加載本地html的css和圖片:
基本上就是加載本地文件的url就可以了,但如果是有外部的css和圖片等資源,記得拖資源的時候記得要選擇下面的create folder references for any added folder,不要選group,這樣才能獲得正確的路徑關系。
提高篇:
這里直接引用一個國外博客,先放著,日后再翻譯
自定義網頁上的長按彈出菜單:
http://www.icab.de/blog/2010/07/11/customize-the-contextual-menu-of-uiwebview/
網頁內關鍵字搜索與高亮:
http://www.icab.de/blog/2010/01/12/search-and-highlight-text-in-uiwebview/
自動根據網頁打開新標簽和新窗口:
http://www.icab.de/blog/2009/07/27/webkit-on-the-iphone-part-1/
http://www.icab.de/blog/2009/08/05/webkit-on-the-iphone-part-2/
只是上面2個還不夠,有些網頁的_blank不是寫在鏈接上的,而是全局都是_blank,所以再補上下面的部分才行
清除UIWebVIew的內存占用和泄露:
http://www.codercowboy.com/code-uiwebview-memory-leak-prevention/
地址欄隨著網頁下拉移動,類似safari:
先拿到webView的scrollView,如果5.0以下就用靠循環去找了
然后把設置delegate,實現scrollViewDidScroll方法
停止和播放網頁上的視頻:
iPad上在網頁里播放視頻,即使關掉webView,依舊余音繞耳,調用下面的js可以停止播放
離線緩存網頁:
http://re-reference.iteye.com/blog/1391408
網頁加載進度不靠譜模擬:
一般情況下,加載一個網頁會經歷should->start->finish4個階段。仔細看UIWebViewDelegate的文檔,會 發現這里的delegate針對的是每個frame,也就是說如果網頁由多個frame組成的話會有多個start。那么這里的finish也會被調用多 次,所以僅靠finish是無法判斷網頁是否加載完全的。
事實是,加載任意網頁,srart和finish/fail是配對的,也就是說有多少個start就有多少個finish/fail。所以在start做 count++,finish/fail做count- -,為0的時候就是一個網頁加載完畢了。 不過別高興太早,加載完畢不代表網頁渲染完畢,所以在最后還需要做一個延時操作,以確保網頁確實顯示出來了。
好了,現在網頁開始和網頁結束都找到了,但中間過程仍然是個謎,只能不靠譜模擬了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。