📒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.zhaoxiangguang.cn/note/ios/314.html

为您推荐

发表回复

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