WKWebView(二)下載H5代碼后展示

前言

使用WKWebView可打開H5頁面;但是可以有兩種方式加載H5

  • 鏈接方式:H5的代碼部署到服務器環境中,WKWebView通過部署的鏈接地址加載H5頁面
  • 本地資源:把H5的代碼,當成本地資源的方式,引入到項目中,WKWebView直接加載本地的資源;
    但是二者都有各自的優缺點:

鏈接的方式
優點:可進行熱更新,H5的代碼發生了變化,只需要重新部署到服務器環境中,APP中的頁面可自動刷新,不需要通過版本更新;
缺點:加載慢,每一次打開H5頁面,都需要下載頁面資源(包括jscss、圖片等)可通過緩存進行優化

本地資源
優點:H5頁面的所有資源都保存在了本地,不需要通過網絡去獲取,加載速度快;
缺點:不能熱更新,若H5頁面有改動,需要重新更新APP的版本,才能更新頁面;

一、本地資源加載的優化

基于本地資源加載方式不能熱更新的缺點,提出了一些嘗試,是否可通過把H5的包,通過網絡的方式,直接下載到APP中,然后通過WKWebView去加載本地的包呢
1、H5打包,并網絡下載到本地
使用vue的項目打包為dist文件夾,并進行壓縮dist.zip

下載到本地

2、把下載下來的dist.zip

// 通過SSZipArchive進行解壓
SSZipArchive.unzipFile(atPath: savePath, toDestination: resultPath)

3、WKWebView加載解壓后的dist

let loginPath = path.appending("/dist/index.html")
let url = URL(fileURLWithPath: loginPath)
let request = URLRequest(url: url)

let documentPath = NSHomeDirectory().appending("/Documents")
if #available(iOS 15.0, *) {
    self.webview.loadFileRequest(request, allowingReadAccessTo: URL(fileURLWithPath: documentPath))
} else {
    self.webview.loadFileURL(url, allowingReadAccessTo: URL(fileURLWithPath: documentPath))
}

通過上述的嘗試,說明是可行的;至于何時下載dist包,可通過接口的方式進行檢測;

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容