评论

收藏

[iOS开发] iOS-WKWebView 加载HTML字符自适应文字和图片

移动开发 移动开发 发布于:2021-08-28 16:06 | 阅读数:388 | 评论:0

加载HTML字符串内容时,字体自适应屏幕问题处理,在创建 WKWebView 时,注入相关的js:
WKWebViewConfiguration *wkWebConfig = [[WKWebViewConfiguration alloc] init];
NSString *jSString = @"var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); document.getElementsByTagName('head')[0].appendChild(meta);";
WKUserScript *script = [[WKUserScript alloc] initWithSource:jSString injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES];
对于图片处理,只需要给图片一个最大的宽度,也就是屏幕宽度或相对最大宽度,让图片自适应,超过最大宽度,让图片宽度等于最大宽度,其余的情况不做处理,图片高度自适应
NSString *htmlString = [NSString stringWithFormat:@"<html> \n"
              "<head> \n"
              "<style type="text/css"> \n"
              "body {font-size:15px;}\n"
              "</style> \n"
              "</head> \n"
              "<body>"
              "<script type='text/javascript'>"
              "window.onload = function(){\n"
              "var $img = document.getElementsByTagName('img');\n"
              "var maxWidth = %f;\n"
              "for(var k in  $img){\n"
              "if($img[k].width> maxWidth){\n"
              " $img[k].style.width = maxWidth;\n"
              "}\n"
              "$img[k].style.height ='auto'\n"
              "}\n"
              "}"
              "</script>%@"
              "</body>"
              "</html>", _maxWidth,string];
  
  [self.webView loadHTMLString:htmlString baseURL:nil];

   
   
   
                        

关注下面的标签,发现更多相似文章