需求:混合应用UIWebView打开html后,UIWebView有左右滚动条,要去掉左右滚动效果;
方法:通过js截获UIWebView中的html,然后修改html标签内容;
实例代码:
服务器端html
- <html><head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
- <title>网曝四川省一考场时钟慢半小时 老师称这就是命</title></head<body>网曝四川省一考场时钟慢半小时 老师称这就是命</body></html>
这样显示的结果网页的最小宽度会是device-width;但有时候不需要这个宽度,就需要修改width=device-width为width=myWidth;
客户端代码
- - (void)webViewDidFinishLoad:(UIWebView *)webView
- {
- //修改服务器页面的meta的值
- NSString *meta = [NSString stringWithFormat:@"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];
- [webView stringByEvaluatingJavaScriptFromString:meta];
- }
这样问题就可以解决了
新增代码:
- //给网页增加utf-8编码
- [webView stringByEvaluatingJavaScriptFromString:
- @"var tagHead =document.documentElement.firstChild;"
- "var tagMeta = document.createElement(\"meta\");"
- "tagMeta.setAttribute(\"http-equiv\", \"Content-Type\");"
- "tagMeta.setAttribute(\"content\", \"text/html; charset=utf-8\");"
- "var tagHeadAdd = tagHead.appendChild(tagMeta);"];
- //给网页增加css样式
- [webView stringByEvaluatingJavaScriptFromString:
- @"var tagHead =document.documentElement.firstChild;"
- "var tagStyle = document.createElement(\"style\");"
- "tagStyle.setAttribute(\"type\", \"text/css\");"
- "tagStyle.appendChild(document.createTextNode(\"BODY{padding: 20pt 15pt}\"));"
- "var tagHeadAdd = tagHead.appendChild(tagStyle);"];
- //拦截网页图片 并修改图片大小
- [webView stringByEvaluatingJavaScriptFromString:
- @"var script = document.createElement('script');"
- "script.type = 'text/javascript';"
- "script.text = \"function ResizeImages() { "
- "var myimg,oldwidth;"
- "var maxwidth=380;" //缩放系数
- "for(i=0;i <document.images.length;i++){"
- "myimg = document.images[i];"
- "if(myimg.width > maxwidth){"
- "oldwidth = myimg.width;"
- "myimg.width = maxwidth;"
- "myimg.height = myimg.height * (maxwidth/oldwidth);"
- "}"
- "}"
- "}\";"
- "document.getElementsByTagName('head')[0].appendChild(script);"];
- [webView stringByEvaluatingJavaScriptFromString:@"ResizeImages();"];
其他html属性重载和此方法类似;
参考网址:
(stringByEvaluatingJavaScriptFromString的使用方法)http://www.uml.org.cn/mobiledev/201108181.asp
( iphone 获取UIWebView内Html方法)http://blog.csdn.net/diyagoanyhacker/article/details/6564897
(IOS UIWebView引用外部CSS样式)http://hi.baidu.com/jwq359699768/item/780879e5c98bfb3e4ddcaf22
相关推荐
【标题】:“IOS UIWebView Demo”是一个iOS应用开发中的实例,它主要展示了如何在iOS应用中集成和使用UIWebView组件来加载和展示网页内容。UIWebView是Apple iOS SDK提供的一种原生控件,用于在iOS应用程序内部显示...
本篇文章将深入探讨如何在iOS应用中实现WKWebView和UIWebView的高度自适应,确保它们能够根据加载的HTML内容自动调整视图大小。 首先,我们来看UIWebView。UIWebView是早期引入的组件,虽然简单易用,但在处理复杂...
本篇文章将深入探讨如何在iOS应用中,特别是针对WKWebView和UIWebView,实现根据加载的HTML内容自适应高度的功能。 首先,我们来看一下UIWebView。UIWebView是早期iOS SDK中的一个组件,它提供了加载和显示网页的...
在iOS应用开发中,UIWebView是一个非常常见的组件,用于加载和显示HTML内容。然而,有时候开发者需要对加载的资源进行一些特殊处理,比如在本文提到的案例中,由于JavaScript文件过大导致加载速度慢,开发者想要将...
在iOS开发中,UIWebView是苹果提供的一种用于展示网页内容的控件,它允许开发者在应用内部嵌入HTML、CSS和JavaScript代码。然而,当网络条件不佳或者无网络时,UIWebView无法正常加载网页,这可能导致用户体验下降。...
在iOS开发中,UIWebView是苹果提供的一种用于在应用程序中展示网页内容的组件。它允许开发者在应用内部加载HTML、CSS和JavaScript代码,为用户提供一个类似Safari浏览器的浏览体验。下面将详细介绍UIWebView的使用,...
在iOS开发中,UIWebView是苹果提供的一种用于在应用程序内展示网页内容的组件。它允许开发者在App中嵌入HTML、CSS和JavaScript代码,从而实现丰富的交互性。然而,随着技术的发展,苹果在iOS 8中引入了WKWebView,...
在iOS开发中,UIWebView是用于展示网页内容的重要组件,但它常常被诟病为内存消耗大,容易引发应用性能问题。本篇文章将深入探讨如何针对UIWebView进行优化,以实现内存的有效管理和降低。 首先,我们需要理解...
ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Unity IOS审核被拒,解决办法,去网上看了好多帖子,...
在iOS开发中,UIWebView是用于展示网页内容的重要组件,然而在处理大量数据或网络状况不稳定的情况下,如何实现UIWebView的缓存并确保信息的实时性是一个常见的挑战。本篇文章将深入探讨这个问题,并提供一种解决...
js中有 ALert confirm 和promopt 三种 类似ios本地的 UIAlertview 样子 但是在 ios native 的app 中 弹出的话alert 的title 是 url 的地址,比较丑 为了美观,我们要加入以下的方法。 提供完整DEMO可供下载
你需要找到Cocos2dx引擎中的`UIWebViewImpl-ios.mm`文件,并对其进行修改。这个文件包含了UIWebView的实现细节,你需要将UIWebView相关的代码替换为WKWebView的实现。这个过程涉及到一些工作,包括但不限于初始化...
在iOS开发中,UIWebView是苹果提供的一种组件,用于在应用程序中展示网页内容。它不仅可以加载HTML页面,还可以执行JavaScript代码,甚至与原生代码进行交互。这种交互性使得开发者可以利用HTML、CSS和JavaScript的...
在iOS开发中,UIWebView是苹果提供的一种原生控件,用于在应用程序内展示网页内容。这个项目"ios-UIWebView简易浏览器"很显然是一个基于UIWebView实现的简单Web浏览器应用。下面我们将深入探讨UIWebView的基本用法、...
在iOS开发中,UIWebView是苹果提供的一种用于在应用程序中展示网页内容的组件。它可以加载远程HTML内容,也可以处理本地的HTML文件。然而,当我们要在UIWebView中加载本地图片时,就需要对这个过程做一些特别的处理...
在iOS应用开发中,UIWebView是一个非常重要的组件,它允许我们加载和展示Web内容。有时候,我们需要在UIWebView中实现自动登录功能,特别是在用户已经登录过一次并保存了登录状态的情况下。本文将详细介绍如何利用...
在iOS开发中,UIWebView是苹果提供的一种组件,用于在应用程序内部展示网页内容。这篇教程“UIWebView与javascript的交互三”聚焦于如何利用UIWebView实现Objective-C(OC)代码与嵌入的HTML页面之间的数据交换,这...
总之,"ios-TableView Cell加载WebiView高度自适应.zip"的内容是关于如何在UITableView的Cell中嵌入WKWebView,并使其高度根据网页内容动态自适应。通过结合WKWebView的代理方法、JavaScript的注入以及UITableView的...
在iOS应用开发中,UIWebView是苹果提供的一种用于在应用内加载网页内容的组件。有时候,我们希望用户在登录一次后,再次打开应用时能够自动登录,这时就需要利用cookie来保存用户状态。以下将详细解释如何使用Swift...
在iOS开发中,UIWebView是苹果提供的一种用于在应用程序中嵌入网页内容的组件。它允许开发者在App内部展示HTML、CSS和JavaScript等Web技术构建的内容,为用户提供一种与Web服务交互的方式。本资料“IOS之UIWebView的...