WKWebView显示乱码处理

之前后台接口为商品详情进行了一次改造,所有商品的详情信息不返回字符串内容,而是返回了一个链接地址,APP通过加载链接地址内容进行展示。当时跟接口讨论完之后就开工干活,在联调阶段发现,APP加载后台接口返回的HTML会出现乱码问题,于是找接口人员处理,可接口人员说你们APP能自己处理吗?

能。

项目中采用的是WKWebView,下面是WKWebView针对编码格式问题导致的乱码进行处理:

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
{
    NSString *_webUrlStr = navigationAction.request.URL.absoluteString;
    NSString *lastName =[[_webUrlStr lastPathComponent] lowercaseString];
    
    if ([lastName containsString:@".html"]) {
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
            NSData *data = [NSData dataWithContentsOfURL:navigationAction.request.URL];
            dispatch_async(dispatch_get_main_queue(), ^{
                [self.webView loadData:data MIMEType:@"text/html" characterEncodingName:@"UTF-8" baseURL:nil];
            });
        });
        decisionHandler(WKNavigationActionPolicyCancel);
        return;
    }
    decisionHandler(WKNavigationActionPolicyAllow);
}

不过,最后当然还是接口对HTML编码方式进行了修改。😄

尊重原创内容,转载请注明出处
本文链接地址: https://www.awnlab.com/archives/773

为您推荐

发表评论

邮箱地址不会被公开。 必填项已用*标注