最近做資料文件下載下來並查看的時候,用 WKWebView 打開office 類型的文件的時候是沒問題的,但是打開測試人員上傳的一個 TXT/PDF 文件就出現了亂碼問題,經過查看,應該是文件的編碼問題,於是找了種方式來解決出現的問題。
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:path] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:120];
//注入JS
WKUserScript * cookieScript = [CCCommonAPI injectJS];
[self.webView.configuration.userContentController addUserScript:cookieScript];
[CCCommonAPI configCookieWithRequest:request];
//TXT/PDF文件在iOS14以上版本就出現了亂碼問題,經過查看,應該是文件的編碼問題
//hasSuffix方法判斷字符串是否以某個字符結束,轉成二進制文件
if ([path hasSuffix:@"txt"]) {
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:path]];
[self.webView loadData:data MIMEType:@"text/html" characterEncodingName:@"GBK" baseURL:nil];
}
else if ([path hasSuffix:@"pdf"]){
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:path]];
[self.webView loadData:data MIMEType:@"application/pdf" characterEncodingName:@"GBK" baseURL:nil];
}
else{
[self.webView loadRequest:request];
}