WKWebView 加載沙盒圖片和音視頻文件失敗

先來段html文件(此html直接加載的真機沙盒目錄下的一張圖,用WKWebView 加載無法顯示)

<p><img src="file:///var/mobile/Containers/Data/Application/730FD9B2-FC0C-409D-981D-C230B53D1FD1/Documents/maya_cache/ac55af3116d2c8586f7f7c112cd9d39db58b65be880993daead3f26bb8d3829c1e2ceee56756195534f1bb6d66a9c6cc9cbc72ac871439717e4b63880d9c9a28.jpg"></p>

原因:貌似是WebKit現(xiàn)在的bug

解決辦法:本地開了一個類似Apache服務(wù)器(親測有效)

步驟如下:

  1. 集成一個工具
 pod 'GCDWebServer', '~> 3.0'
  1. 開啟一個本地服務(wù)器 (只寫了問題相關(guān)的代碼)
#import <GCDWebServer/GCDWebServer.h>// 本地服務(wù)器
@interface AppDelegate ()
@property (nonatomic,strong)  GCDWebServer *webSever;
@end

@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [self.webSever startWithPort:80 bonjourName:nil];
}
- (GCDWebServer *)webSever{
    if (!_webSever) {
        NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                                      NSUserDomainMask,
                                                                      YES) objectAtIndex:0];
        _webSever = [[GCDWebServer alloc]init];
        [_webSever addGETHandlerForBasePath:@"/" directoryPath:documentPath indexFilename:nil cacheAge:3600 allowRangeRequests:YES];// 此處設(shè)置本地服務(wù)器根目錄
    }
    return _webSever;
}
@end
  1. 訪問沙盒內(nèi)容時通過服務(wù)器路徑訪問:
<p><img src="http://localhost/maya_cache/ac55af3116d2c8586f7f7c112cd9d39db58b65be880993daead3f26bb8d3829c1e2ceee56756195534f1bb6d66a9c6cc9cbc72ac871439717e4b63880d9c9a28.jpg"></p>

方便大家理解,下面是更改前后對比

// 不顯示
<p><img src="file:///var/mobile/Containers/Data/Application/730FD9B2-FC0C-409D-981D-C230B53D1FD1/Documents/maya_cache/ac55af3116d2c8586f7f7c112cd9d39db58b65be880993daead3f26bb8d3829c1e2ceee56756195534f1bb6d66a9c6cc9cbc72ac871439717e4b63880d9c9a28.jpg"></p>

// 顯示
<p><img src="http://localhost/maya_cache/ac55af3116d2c8586f7f7c112cd9d39db58b65be880993daead3f26bb8d3829c1e2ceee56756195534f1bb6d66a9c6cc9cbc72ac871439717e4b63880d9c9a28.jpg"></p>

總述:解決的關(guān)鍵就是資源路徑~~~。。。。。。

備注:

  1. ' /maya_cache ' 是我建在 Documents 目錄下的一個文件夾
  2. http://localhost/ 位置是本地服務(wù)器根目錄 即之前設(shè)置的 Documents
  3. [_webSever addGETHandlerForBasePath:@"/" directoryPath:documentPath indexFilename:nil cacheAge:3600 allowRangeRequests:YES];// 此處設(shè)置本地服務(wù)器根目錄

end 結(jié)束~~~(wkwebview坑死啦,特么的~~~~~)

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

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