`
jiapumin
  • 浏览: 344157 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ios UIWebView截获html并修改便签内容

阅读更多
需求:混合应用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 UIWebView Demo”是一个iOS应用开发中的实例,它主要展示了如何在iOS应用中集成和使用UIWebView组件来加载和展示网页内容。UIWebView是Apple iOS SDK提供的一种原生控件,用于在iOS应用程序内部显示...

    iOS UIWebView URL拦截.pdf

    在iOS应用开发中,UIWebView是一个非常常见的组件,用于加载和显示HTML内容。然而,有时候开发者需要对加载的资源进行一些特殊处理,比如在本文提到的案例中,由于JavaScript文件过大导致加载速度慢,开发者想要将...

    ios UIWebView使用

    在iOS开发中,UIWebView是苹果提供的一种用于在应用程序中展示网页内容的组件。它允许开发者在应用内部加载HTML、CSS和JavaScript代码,为用户提供一个类似Safari浏览器的浏览体验。下面将详细介绍UIWebView的使用,...

    iOS UIWebView的缓存

    在iOS开发中,UIWebView是苹果提供的一种用于展示网页内容的控件,它允许开发者在应用内部嵌入HTML、CSS和JavaScript代码。然而,当网络条件不佳或者无网络时,UIWebView无法正常加载网页,这可能导致用户体验下降。...

    ios-完美的UIWebView.zip

    在iOS开发中,UIWebView是苹果提供的一种用于在应用程序内展示网页内容的组件。它允许开发者在App中嵌入HTML、CSS和JavaScript代码,从而实现丰富的交互性。然而,随着技术的发展,苹果在iOS 8中引入了WKWebView,...

    iOSUIWebView 优化 内存大大降低

    在iOS开发中,UIWebView是用于展示网页内容的重要组件,但它常常被诟病为内存消耗大,容易引发应用性能问题。本篇文章将深入探讨如何针对UIWebView进行优化,以实现内存的有效管理和降低。 首先,我们需要理解...

    unity uiwebview 上架IOS被拒 解决办法

    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缓存并保证实时性

    如果有,直接从缓存中读取内容并返回,否则向服务器发起请求。你可以使用`UserDefaults`、`SQLite`或者`CoreData`来存储缓存数据,但更推荐使用`NSFileManager`配合文件系统进行存储,因为这样可以更好地控制文件...

    IOS UIWebView去除js的alert网址

    js中有 ALert confirm 和promopt 三种 类似ios本地的 UIAlertview 样子 但是在 ios native 的app 中 弹出的话alert 的title 是 url 的地址,比较丑 为了美观,我们要加入以下的方法。 提供完整DEMO可供下载

    Cocos2dx中UIWebView替换为WKWebView

    你需要找到Cocos2dx引擎中的`UIWebViewImpl-ios.mm`文件,并对其进行修改。这个文件包含了UIWebView的实现细节,你需要将UIWebView相关的代码替换为WKWebView的实现。这个过程涉及到一些工作,包括但不限于初始化...

    UIWebView原生与H5交互

    在iOS开发中,UIWebView是苹果提供的一种组件,用于在应用程序中展示网页内容。它不仅可以加载HTML页面,还可以执行JavaScript代码,甚至与原生代码进行交互。这种交互性使得开发者可以利用HTML、CSS和JavaScript的...

    ios-UIWebView简易浏览器

    UIWebView是iOS SDK中的一个类,它允许开发者在iOS应用内加载和显示HTML、CSS和JavaScript等网络内容。UIWebView提供了与WKWebView类似的功能,但在iOS 8之后,Apple推荐使用性能更好的WKWebView。 2. **初始化与...

    UIWebView中加载本地图片

    在iOS开发中,UIWebView是苹果提供的一种用于在应用程序中展示网页内容的组件。它可以加载远程HTML内容,也可以处理本地的HTML文件。然而,当我们要在UIWebView中加载本地图片时,就需要对这个过程做一些特别的处理...

    UIWebView与 javascript的交互三

    在iOS开发中,UIWebView是苹果提供的一种组件,用于在应用程序内部展示网页内容。这篇教程“UIWebView与javascript的交互三”聚焦于如何利用UIWebView实现Objective-C(OC)代码与嵌入的HTML页面之间的数据交换,这...

    iOS UIWebView 通过 cookie 完成自动登录实例

    在iOS应用开发中,UIWebView是一个非常重要的组件,它允许我们加载和展示Web内容。有时候,我们需要在UIWebView中实现自动登录功能,特别是在用户已经登录过一次并保存了登录状态的情况下。本文将详细介绍如何利用...

    iOS WKWebView和UIWebView自适应高度

    在iOS应用开发中,UIWebView和WKWebView是两种常见的用于展示网页内容的控件。它们允许开发者在原生应用中嵌入HTML、CSS和JavaScript代码,实现丰富的交互体验。本篇文章将深入探讨如何在iOS应用中,特别是针对...

    swift-两步实现iOSUIWebView通过cookie完成自动登录。

    在iOS应用开发中,UIWebView是苹果提供的一种用于在应用内加载网页内容的组件。有时候,我们希望用户在登录一次后,再次打开应用时能够自动登录,这时就需要利用cookie来保存用户状态。以下将详细解释如何使用Swift...

    UIWebView+html+css

    在iOS开发中,UIWebView是苹果提供的一种原生控件,用于展示网页内容。这个话题“UIWebView+html+css”主要关注如何在UIWebView中嵌入HTML和CSS,实现可点击的链接以及显示动态的GIF动画效果。下面将详细讲解这个...

    IOS之UIWebView的使用(基本知识)共7页.pdf

    在iOS开发中,UIWebView是苹果提供的一种用于在应用程序中嵌入网页内容的组件。它允许开发者在App内部展示HTML、CSS和JavaScript等Web技术构建的内容,为用户提供一种与Web服务交互的方式。本资料“IOS之UIWebView的...

    IOS自定义请求uiwebview的loading框

    在iOS开发中,UIWebView是苹果提供的一种用于加载和展示网页内容的组件。然而,UIWebView在加载网页的过程中,没有内置的loading提示效果,这可能导致用户在等待网页加载时感到困惑或不耐烦。因此,自定义一个加载...

Global site tag (gtag.js) - Google Analytics