大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > IOS技巧 > IOS UIWebView截获html并修改便签内容,宽度自适应

IOS UIWebView截获html并修改便签内容,宽度自适应

关键词:UIWebViewIOS  阅读(4950) 赞(10)

[摘要]本文是对IOS UIWebView截获html并修改便签内容,宽度自适应的讲解,对学习IOS苹果软件开发有所帮助,与大家分享。

需求:混合应用UIWebView打开html后,UIWebView有左右滚动条,要去掉左右滚动效果; 方法:通过js截获UIWebView中的html,然后修改html标签内容; 实例代码: 服务器端html

Java代码
  1. <html><head>
  2. <metahttp-equiv="Content-Type"content="text/html;charset=utf-8">
  3. <metaname="viewport"content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
  4. <title>网曝四川省一考场时钟慢半小时老师称这就是命</title></head<body>网曝四川省一考场时钟慢半小时老师称这就是命</body></html>


这样显示的结果网页的最小宽度会是device-width;但有时候不需要这个宽度,就需要修改width=device-width为width=myWidth;
客户端代码

Java代码
  1. -(void)webViewDidFinishLoad:(UIWebView*)webView
  2. {
  3. //修改服务器页面的meta的值
  4. NSString*meta=[NSStringstringWithFormat:@"document.getElementsByName(\"viewport\")[0].content=\"width=%f,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no\"",webView.frame.size.width];
  5. [webViewstringByEvaluatingJavaScriptFromString:meta];
  6. }


这样问题就可以解决了

新增代码:

Java代码
  1. //给网页增加utf-8编码
  2. [webViewstringByEvaluatingJavaScriptFromString:
  3. @"vartagHead=document.documentElement.firstChild;"
  4. "vartagMeta=document.createElement(\"meta\");"
  5. "tagMeta.setAttribute(\"http-equiv\",\"Content-Type\");"
  6. "tagMeta.setAttribute(\"content\",\"text/html;charset=utf-8\");"
  7. "vartagHeadAdd=tagHead.appendChild(tagMeta);"];
Java代码
  1. //给网页增加css样式
  2. [webViewstringByEvaluatingJavaScriptFromString:
  3. @"vartagHead=document.documentElement.firstChild;"
  4. "vartagStyle=document.createElement(\"style\");"
  5. "tagStyle.setAttribute(\"type\",\"text/css\");"
  6. "tagStyle.appendChild(document.createTextNode(\"BODY{padding:20pt15pt}\"));"
  7. "vartagHeadAdd=tagHead.appendChild(tagStyle);"];



Java代码
  1. //拦截网页图片并修改图片大小
  2. [webViewstringByEvaluatingJavaScriptFromString:
  3. @"varscript=document.createElement('script');"
  4. "script.type='text/javascript';"
  5. "script.text=\"functionResizeImages(){"
  6. "varmyimg,oldwidth;"
  7. "varmaxwidth=380;"//缩放系数
  8. "for(i=0;i<document.images.length;i++){"
  9. "myimg=document.images[i];"
  10. "if(myimg.width>maxwidth){"
  11. "oldwidth=myimg.width;"
  12. "myimg.width=maxwidth;"
  13. "myimg.height=myimg.height*(maxwidth/oldwidth);"
  14. "}"
  15. "}"
  16. "}\";"
  17. "document.getElementsByTagName('head')[0].appendChild(script);"];
  18. [webViewstringByEvaluatingJavaScriptFromString:@"ResizeImages();"];


其他html属性重载和此方法类似;



相关评论