2010-07-15 68 views
2

我們可以使用UIWebView構建一個完全模仿Safari瀏覽器的應用程序嗎?UIWebView可以替換Safari嗎?

是否有任何情況下,UIWebview無法做到這一點可以在Safari中完成?

+1

你能更具體嗎?詢問你需要做什麼_。 – rfunduk 2010-07-15 15:35:58

+0

我正計劃使用UIWebView構建一個可充當瀏覽器的應用程序。所以我的疑問是,瀏覽速度會有什麼差異,如果我使用UIWebView作爲瀏覽器,並且UIWebView是否缺乏關於瀏覽,處理Javascript或其他任何功能的功能? – Krishnan 2010-07-16 04:28:42

+0

我有一個令人頭痛的問題,在一個框架頁面上獲得基本認證以在UIWebView上工作,特別是對於iOS3.2。 – 2010-08-04 06:23:54

回答

2

首先,每個應用程序都有一個單獨的Cookie存儲。因此,如果用戶在Safari中的站點X上有一些首選項,則它不會在瀏覽器中的站點X中具有這些首選項,反之亦然。除此之外,UIWebView非常類似於真實的東西。

+0

謝謝mvds。我可以理解,我無法分享iPhone Safari和我計劃創建的本機App瀏覽器之間的任何內容。我們能否實現自動補充功能? – Krishnan 2010-07-16 04:33:30

0

您無法使用UIWebView組件公開的API來輕鬆構建模仿Safari瀏覽器的應用程序。首先,請查看UIWebView委託方法。當您想要加載的頁面中有框架時,可能很難判斷用戶是否點擊了iframe /框架內的內容或點擊了主文檔中的鏈接。

使用UIWebView組件處理具有無效證書的站點的身份驗證也很困難,尤其是當通過單擊iframe中的鏈接到達具有無效證書的站點時。

0

在UIWebView中渲染內容將比在Safari中慢得多。

Safari的Javascript引擎使用「即時」編譯器。它接收傳入的Javascript代碼並將其即時轉換爲可直接在iOS設備的ARM CPU上運行的機器代碼。這允許Javascript代碼以類似於本機應用代碼的速度運行。

問題是,蘋果不信任第三方開發者的這種權力。如果第三方應用程序有能力將JavaScript轉換爲機器代碼並運行它,那麼該應用程序也可以下載和運行其他機器代碼片段 - 而Apple永遠不會有機會查看該代碼。一旦App Review批准它,(開發人員/黑客)可以將下載的代碼更改爲記錄密碼或其他內容的內容。並且沒有辦法將這種權力僅授予UIWebView而不授予應用程序的其他部分,因爲UIWebView與開發人員的代碼在相同的過程中運行。

所以基本上蘋果禁止這個,因爲它允許它破壞App Store提供的安全性,並使iOS更容易受到攻擊。他們可以允許Safari訪問Safari,因爲他們可以控制Safari的功能,但他們不能相信別人不會濫用該功能。