iOS 混合开发 —— WebView 问题技巧
1、图片太大
1 2 3 4 5 6 7 8 9 10 11 12 13 | - ( void )webViewDidFinishLoad:(UIWebView *)webView { NSString *js = @"function imgAutoFit() { \ var imgs = document.getElementsByTagName( 'img' ); \ for (var i = 0; i < imgs.length; ++i) {\ var img = imgs[i]; \ img.style.maxWidth = %f; \ } \ }"; js = [ NSString stringWithFormat:js, [UIScreen mainScreen].bounds.size.width - 20]; [webView stringByEvaluatingJavaScriptFromString:js]; [webView stringByEvaluatingJavaScriptFromString:@ "imgAutoFit()" ]; } |
2、内容高度
通过JS来获取高度:document.body.offsetHeight;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #pragma mark - UIWebViewDelegate - ( void )webViewDidFinishLoad:(UIWebView *)webView { CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:@ "document.body.offsetHeight;" ] intValue]; if ( self .webViewHeight != height && self .count <= 3) { self .webViewHeight = height; self .count++; [ self updateUI]; } } - ( BOOL )webView:(UIWebView *)webView shouldStartLoadWithRequest:( NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { self .webViewHeight = webView.scrollView.contentSize.height; return YES ; } |
github地址: https://github.com/lc081200/hybirdApp
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步