需求:混合应用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
http://blog.csdn.net/xdonx/article/details/6973521
分享到:
相关推荐
【标题】:“IOS UIWebView Demo”是一个iOS应用开发中的实例,它主要展示了如何在iOS应用中集成和使用UIWebView组件来加载和展示网页内容。UIWebView是Apple iOS SDK提供的一种原生控件,用于在iOS应用程序内部显示...
在iOS应用开发中,UIWebView是一个非常常见的组件,用于加载和显示HTML内容。然而,有时候开发者需要对加载的资源进行一些特殊处理,比如在本文提到的案例中,由于JavaScript文件过大导致加载速度慢,开发者想要将...
在iOS开发中,UIWebView是苹果提供的一种用于在应用程序中展示网页内容的组件。它允许开发者在应用内部加载HTML、CSS和JavaScript代码,为用户提供一个类似Safari浏览器的浏览体验。下面将详细介绍UIWebView的使用,...
在iOS开发中,UIWebView是苹果提供的一种用于展示网页内容的控件,它允许开发者在应用内部嵌入HTML、CSS和JavaScript代码。然而,当网络条件不佳或者无网络时,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审核被拒,解决办法,去网上看了好多帖子,...
如果有,直接从缓存中读取内容并返回,否则向服务器发起请求。你可以使用`UserDefaults`、`SQLite`或者`CoreData`来存储缓存数据,但更推荐使用`NSFileManager`配合文件系统进行存储,因为这样可以更好地控制文件...
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的...
UIWebView是iOS SDK中的一个类,它允许开发者在iOS应用内加载和显示HTML、CSS和JavaScript等网络内容。UIWebView提供了与WKWebView类似的功能,但在iOS 8之后,Apple推荐使用性能更好的WKWebView。 2. **初始化与...
在iOS开发中,UIWebView是苹果提供的一种用于在应用程序中展示网页内容的组件。它可以加载远程HTML内容,也可以处理本地的HTML文件。然而,当我们要在UIWebView中加载本地图片时,就需要对这个过程做一些特别的处理...
在iOS开发中,UIWebView是苹果提供的一种组件,用于在应用程序内部展示网页内容。这篇教程“UIWebView与javascript的交互三”聚焦于如何利用UIWebView实现Objective-C(OC)代码与嵌入的HTML页面之间的数据交换,这...
在iOS应用开发中,UIWebView是一个非常重要的组件,它允许我们加载和展示Web内容。有时候,我们需要在UIWebView中实现自动登录功能,特别是在用户已经登录过一次并保存了登录状态的情况下。本文将详细介绍如何利用...
在iOS应用开发中,UIWebView和WKWebView是两种常见的用于展示网页内容的控件。它们允许开发者在原生应用中嵌入HTML、CSS和JavaScript代码,实现丰富的交互体验。本篇文章将深入探讨如何在iOS应用中,特别是针对...
在iOS应用开发中,UIWebView是苹果提供的一种用于在应用内加载网页内容的组件。有时候,我们希望用户在登录一次后,再次打开应用时能够自动登录,这时就需要利用cookie来保存用户状态。以下将详细解释如何使用Swift...
在iOS开发中,UIWebView是苹果提供的一种原生控件,用于展示网页内容。这个话题“UIWebView+html+css”主要关注如何在UIWebView中嵌入HTML和CSS,实现可点击的链接以及显示动态的GIF动画效果。下面将详细讲解这个...
在iOS开发中,UIWebView是苹果提供的一种用于在应用程序中嵌入网页内容的组件。它允许开发者在App内部展示HTML、CSS和JavaScript等Web技术构建的内容,为用户提供一种与Web服务交互的方式。本资料“IOS之UIWebView的...
在iOS开发中,UIWebView是苹果提供的一种用于加载和展示网页内容的组件。然而,UIWebView在加载网页的过程中,没有内置的loading提示效果,这可能导致用户在等待网页加载时感到困惑或不耐烦。因此,自定义一个加载...