2013-10-21 18 views
0

我有一個UIWebView正在構建與loadHTMLString:baseURL:。這個webview的內容有些武斷,可能包括諸如iframe等網絡資源的內容,例如youtube video embeds。 YouTube的內聯框架通常使用無方案的URls,這是一個問題。看起來好像是因爲Web視圖沒有通過請求進行初始化,而是使用靜態HTML,所以Webkit沒有對這些添加請求做任何方案確定,這些添加請求需要用於iframe之類的內容。因此,具有無模式src屬性的iframe被加載爲本地文件,因此失敗。解決使用loadHTMLString構造的UIWebView中的無模式URL:

是否有更好的方式來處理這個問題,而不是簡單地搜索那些似乎無法用javascript實現的URL並替換它們?

回答

0

如果您通過nil作爲baseURL,則默認方案將變爲about並且無方案資源將無法加載。將HTTP URL(甚至是無效URL)傳遞到loadWithHTMLString:baseURL:的關鍵。例如:

NSString *html = @"<html><img src=\"//example.com/some_image.jpg\"></html>"; 
[self.webView loadHTMLString:html baseURL:[NSURL URLWithString:@"http://localhost"]]; 

在我的測試中,我發現,簡單地通過[NSURL URLWithString:@"http://"]作品就好了。

+0

我相信這會影響在使用相對URL來定位文件系統上的文件*時如何加載文檔。也許沒有辦法一次處理這兩種情況。 – farski

相關問題