ios 編輯器2-基於wkwebview編輯器加載本地html資源 選擇本地圖片流程 總結

內容不多,不會長篇大論,重在呈現結果,給有相同問題的小夥伴,先實現再說

android簡單多了

現在是20200828,再過幾個月,ios就要強制用WKWebview了。所以,ios問題多,也只能硬磕,下面簡寫一下研發的演進:

選擇本地圖片流程

圖片插入html的方案

base64

demo中提供的方案是圖片壓縮後轉base64.。但是個人感覺不是很舒服,一是實際效果看,圖片轉base64後的字符串很長,二是上傳服務端也不友好

所以,考慮研究直接根據路徑加載圖片

路徑加載圖片

WKWebView加載本地圖片的幾種方案

起初查資料看到文中方案4,有個大致方案,就是html資源和圖片拷貝到沙盒裏,同目錄就行,這樣就簡單了,圖片加載:<img src=""/> src用file://或相對路徑都可以

demo研究,html等資源是在bundle中,圖片也是工程裏臨時拖進去測試的。。所以,沒有實際測試沙盒路徑下的圖片加載,實際開發時候,遇到棘手的問題,下面圖片放哪的問題細說

GCDWebServer

另外還有模擬本地服務的方案,就是webview進行http://等本地的服務請求加載圖片資源,具體實現去百度吧。個人不喜歡這方案,等於說圖片的加載交給了webview做網絡請求,但是真正發佈文章的時候,還要拿到圖片上傳給公司服務器,麻煩

圖片放哪的問題

上面說通過html資源和圖片同目錄實現本地圖片加載,梳理目錄的時候,想着document或library更正宗一些,放tmp經常被刪除導致頻繁的拷貝圖片進去

由於我不確定是誰的原因的原因,document和library做目錄,圖片是加載不到的,各種加載方式都試了還是不行,期間嘗試放tmp裏可以加載出來,然後繼續查資料,沒有原因,只有結論:放tmp裏

//    NSURL *baseURL = [NSURL fileURLWithPath:KOriginalPhotoImagePath isDirectory:YES];
//    [self.editorView loadHTMLString:htmlString baseURL:baseURL];
    
    //loadFileURL方式
//    [self.editorView loadFileURL:url allowingReadAccessToURL:[NSURL fileURLWithPath:KOriginalPhotoImagePath]];
    
    //loadRequest方式
    NSString *tmpWWWFeedback = _sbHtmlPath;
    NSURL *feedbackURL = [NSURL fileURLWithPath:tmpWWWFeedback];
    [self.editorView loadRequest:[NSURLRequest requestWithURL:feedbackURL]];

總結

ok,本文主要說了兩點,一是路徑問題,二是圖片的加載方式問題。沒什麼技術點,我就是借鑑各位前輩的資料,總結一下,給各位遇到類似問題的小夥伴參考一下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章