iOS WKWebView 加載本地圖片報(bào)錯(cuò)"Not allowed to load local resource"

背景: 我們app里有一個(gè)webView編輯器。以前用的是UIWebView, 但是升級(jí)到iOS13后 UIWebView 已經(jīng)被廢棄了,而且UIWebView在iOS13的機(jī)器上很不穩(wěn)定,很多crash,so決定改為WKWebView。

這里不介紹各種怎么換WKWebView了,百度,google 一堆文章,這里寫下我遇到的一個(gè)問題。

首先我們的html是我們本地拼接起來的,加載的時(shí)候是

self.webView.loadHTMLString(htmlString, baseURL:nil)

然后調(diào)用什么的都沒問題。但是如果插入圖片,圖片不顯示。用safari聯(lián)調(diào)的時(shí)候 發(fā)現(xiàn)JS報(bào)了個(gè)"Not allowed to load local resource"。也找過寫JS的同事,也查過各種文章,都沒有結(jié)果。也想過跨域問題,但是依然沒有解決方案。?

后來偶然間發(fā)現(xiàn)了另一個(gè)加載的方法

@available(iOS 9.0, *) ? ?

open func loadFileURL(_ URL: URL, allowingReadAccessTo readAccessURL: URL) -> WKNavigation??

這個(gè)方法的注釋是這樣的(自行翻譯)

?/** @abstract Navigates to the requested file URL on the filesystem. ?? ? @param URL The file URL to which to navigate. ?? ? @param readAccessURL The URL to allow read access to. ?? ? @discussion If readAccessURL references a single file, only that file may be loaded by WebKit. ?? ? If readAccessURL references a directory, files inside that file may be loaded by WebKit. ?? ? @result A new navigation for the given file URL. ?? ? */

然后聯(lián)想到我們用到的

/** @abstract Sets the webpage contents and base URL.

?? ? @param string The string to use as the contents of the webpage.

?? ? @param baseURL A URL that is used to resolve relative URLs within the document.

?? ? @result A new navigation.

?? ? */

? ? open?func?loadHTMLString(_string:String, baseURL:URL?) ->WKNavigation?

emmmm 這個(gè)baseURL原來是有用的?。。魅肟赡芤虞d資源的路徑,比如我們的圖片是會(huì)保存到Caches目錄下,這里可以把Caches目錄的路徑傳入,這樣這個(gè)webview就可以加載這個(gè)路徑下的圖片了......?

總結(jié):怎么說呢,有時(shí)候用一個(gè)東西的時(shí)候,別找個(gè)demo或者查幾篇文章就直接用了,還是要翻一下文檔的。可能一個(gè)困擾你的bug,就在文檔中一句不顯眼的可選變量里。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • IOS之UIWebView的使用 剛接觸IOS開發(fā)1年多,現(xiàn)在對(duì)于 混合式 移動(dòng)端開發(fā)越來越流行,因?yàn)殚_發(fā)成本上、...
    學(xué)無止境666閱讀 46,011評(píng)論 5 53
  • WkWebView是IOS8中引入的新組件,蘋果將UIWebViewDelegate 與 UIWebView 重構(gòu)...
    i_belive閱讀 5,164評(píng)論 1 25
  • 一.背景介紹 UIWebView自iOS2就有,iOS8出現(xiàn)了WKWebView,毫無疑問WKWebView將逐步...
    踐行者閱讀 13,427評(píng)論 2 16
  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,920評(píng)論 0 13
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,666評(píng)論 1 32

友情鏈接更多精彩內(nèi)容