最近做资料文件下载下来并查看的时候,用 WKWebView 打开office 类型的文件的时候是没问题的,但是打开测试人员上传的一个 TXT/PDF 文件就出现了乱码问题,经过查看,应该是文件的编码问题,于是找了种方式来解决出现的问题。
path = [path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];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];
}