2011-02-25 74 views
2

我的iPhone應用程序中的一個viewControllers具有UIWebView。每當這個viewController加載,我想阻止我的應用程序能夠訪問網絡(無論是否有實際的連接)。iPhone:如何防止應用程序(或UIWebView)訪問網絡/網絡

背景: 我想要做的是確保具有有限數據計劃的用戶在使用我的應用程序時不會「冒着」有限的風險。

我的應用程序將用戶特定的html頁面加載到UIWebView中。這個特定的viewController是一種預覽 - 但它不應該有Web訪問。

所以我要麼想阻止UIWebView訪問網絡或能夠打開/關閉我的整個應用程序的Web訪問。

任何「應用程序商店保存」的想法或建議將不勝感激。

謝謝你,
問候,
拉爾夫

編輯於2011年3月1日:
包括更多的信息:

看來,從hotpaw2下面的答案(使用shouldStartWithLoadRequest =)不幸的是沒有提供解決方案。

舉個例子,我通過將下面的html加載到UIWebView中來測試它。 BaseURL設置正確,以便可以訪問本地文件。正如所料,shouldStartLoadWithRequest只會被調用一次,用於html的初始加載。

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>Test example</title> 
</head> 
<body> 
<img src="image-On-Device.jpg" alt=""><br> 
<img src="http://www.aWebsite.xx/anOnlineImage.jpg" alt=""><br> 
<img src="image-On-Device.jpg" alt=""><br> 
<img src="http://www.aWebsite.xx/anOnlineImage.jpg" alt=""><br> 
</body> 
</html> 

此示例將使設備訪問Web以獲取:「anOnlineImage.jpg」。
注意:圖像只是可能在線請求的資源的一個示例。
因此,如何防止任何類型的web訪問 - 而不必修改整個html?

回答

1

使用UIWebView webView:shouldStartLoadWithRequest:navigationType:委託檢查並返回NO,以便任何UIWebView嘗試訪問允許列表以外的URL。

+0

我不確定這是否有效。我想將用戶特定的html加載到UIWebView中。但是,如果自定義的html將src設置爲網絡上的資源(例如src指向web上的圖像而不是本地設備),我想阻止加載此src。我不認爲shouldStartLoadWithRequest被解僱。 – Ralph 2011-02-25 21:10:08