webview显示html标签,WKWebView加载HTML标签注意事项

首先解决自适应屏幕宽度的问题

WKWebViewConfiguration *wkWebConfig = [[WKWebViewConfiguration alloc] init];

WKUserContentController *content = [[WKUserContentController alloc]init];

// 自适应屏幕宽度js

NSString *jSString = @"var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); document.getElementsByTagName('head')[0].appendChild(meta);";

WKUserScript *wkUserScript = [[WKUserScript alloc] initWithSource:jSString injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES];

// 添加自适应屏幕宽度js调用的方法

[content addUserScript:wkUserScript];

wkWebConfig.userContentController = content;

WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth , 0) configuration:wkWebConfig];

webView.scrollView.bounces = NO;

webView.UIDelegate = self;

webView.navigationDelegate = self;

webView.scrollView.scrollEnabled = NO;

self.webView = webView;

[self.mainScrollView addSubview:webView];

其次计算高度

- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation

{

//修改字体大小 300%

// [ webView evaluateJavaScript:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '100%'" completionHandler:nil];

//修改字体颜色 #9098b8

// [ webView evaluateJavaScript:@"document.getElementsByTagName('body')[0].style.webkitTextFillColor= '#0078f0'" completionHandler:nil];

__block CGFloat webViewHeight;

//获取内容实际高度(像素)@"document.getElementById(\"content\").offsetHeight;"

[webView evaluateJavaScript:@"document.body.scrollHeight" completionHandler:^(id _Nullable result,NSError * _Nullable error) {

// 此处js字符串采用scrollHeight而不是offsetHeight是因为后者并获取不到高度,看参考资料说是对于加载html字符串的情况下使用后者可以(@"document.getElementById(\"content\").offsetHeight;"),但如果是和我一样直接加载原站内容使用前者更合适

//获取页面高度,并重置webview的frame

webViewHeight = [result floatValue];

webView.height = webViewHeight;

self.mainScrollView.contentSize = CGSizeMake(KScreenWidth, webView.top + webViewHeight);

NSLog(@"%f",webViewHeight);

}];

}

如果加载HTML图片的时候失败,可能是info.plist文件没加网络权限

Allow Arbitrary Loads in Web Content

Allow Arbitrary Loads

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值