iOS 开发之使用safari对webview进行调试
转自:http://www.tuicool.com/articles/ZBFnUbz
使用safari对webview进行调试
在web开发的过程中,抓包、调试页面样式、查看请求头是很常用的技巧。其实在iOS开发中,这些技巧也能用(无论是模拟器还是真机),不过我们需要用到mac自带的浏览器Safari。所以,本文将讲解如何使用Safari对iOS程序中的webview进行调试。
正文:
1. 打开模拟器(真机)的开发者模式
【设置】->【Safari】->【高级】->【Web检查器】打开

2. 打开Mac上Safari的开发者模式
【Safari】->【偏好设置】->【高级】->【在菜单栏中显示“开发”菜单】勾选

3. 写一个webview并加载一个网页
#import "ViewController.h"
@interfaceViewController ()
@property (strong, nonatomic) UIWebView *webView;
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
_webView = [[UIWebViewalloc] initWithFrame:self.view.bounds];
[_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]]];
[self.view addSubview:_webView];
}
@end
4. 在模拟器(真机)中打开webview应用,并打开Safari查看网络信息
【开发】->【iOS Simulator】->【正在调试的网站】
注意:必须要webview在加载网页时,打开Safari才可以看到调试模式。

在弹出的调试窗口中,可以看到当前正在加载网页的各种信息,包括源码、请求头、图片、加载的资源与脚本、控制台输出等。并且它和web前端的调试方式相同,你可以直接修改网页的CSS样式,对网页布局等进行修改,而不用重新运行整个App。
5. 修改web样式
将光标选中到要修改的样式,进行修改后,可以直接在模拟器中看到修改后的效果。

当然,webview的调试技巧还有很多,比如 Charles 工具等。感兴趣的小伙伴可以多研究下。
使用Chrome DevTool调试iOS设备的webView简介(http://www.jianshu.com/p/19c18c924f91)
之前调试iOS设备的webView都只能使用Safari web inspector(可以google搜索safari ios debug)。但是Safari的inspector用起来实在没有Chrome的DevTool顺手。
今天从v2ex的这个帖子里看到了iOS WebKit Debug Proxy,终于解决了这个问题。
先放张使用效果图
使用
iOS WebKit Debug Proxy的原理是在本地起了一个代理做WebInspector到WebKit远程调试的协议转发。安装使用的过程很简单,但是因为墙的存在所以要做一些设置以方便使用。本文只介绍在Mac OS X下的安装设置。
安装
- 使用brew直接安装
brew install ios-webkit-debug-proxy
连接设备
- 模拟器需要在使用proxy之前启动
- 真机只需要USB连接好即可
启动proxy
- 在terminal中执行
ios_webkit_debug_proxy -f chrome-devtools://devtools/bundled/inspector.html
-f 参数直接指定使用chrome的devtools作前端。否则需要翻墙后才能调试设备。
在Chrome中打开页面
- 在chrome中打开 localhost:9221 ,可以看到当前已连接的设备列表。
如果此时看不到模拟器,请检查
/etc/hosts文件是否有一行::1 localhost,以确保WebInspector监听ipv4协议
点击设备后可以打开新的设备页面
默认每个设备的端口号+1,9222/9223/...
可能会见到提示说
Note: Your browser may block1,2
the above links with JavaScript console error:
Not allowed to load local resource: chrome-devtools://...
To open a link: right-click on the link (control-click on Mac), 'Copy Link Address', and paste it into address bar.
按提示复制右键复制链接地址在地址栏中打开就可以愉快的使用chrome的dev tool来调试webView啦。
原文链接:http://www.jianshu.com/p/19c18c924f91
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
iOS 开发之使用safari对webview进行调试的更多相关文章
- 【iOS】使用safari对webview进行调试
[iOS]使用safari对webview进行调试 在web开发的过程中,抓包.调试页面样式.查看请求头是很常用的技巧.其实在iOS开发中,这些技巧也能用(无论是模拟器还是真机),不过我们需要用到ma ...
- 使用safari对webview进行调试
在web开发的过程中,抓包.调试页面样式.查看请求头是很常用的技巧.其实在iOS开发中,这些技巧也能用(无论是模拟器还是真机),不过我们需要用到mac自带的浏览器Safari.所以,本文将讲解如何使用 ...
- IOS开发中一些受用的编码和调试方法积累
1.## 与 @# 在宏里面该怎样使用 ##的使用, 首先我们添加一个宏 #define LRWeakSelf(type) __weak typeof(type) weak##type = type; ...
- iOS开发调试概览
概述 我们都知道Xcode默认的调试器是LLDB(在此之前使用的是GDB),但是关于LLDB的debug技巧并非所有人都比较清楚,可能所有人都知道p或者po命令打印一些变量.但是实际的情况时这些还远远 ...
- iOS开发(1) WebView和HTML 显示
iOS 7 已经release了.现在学习iOS开发还是非常热门的.到处也有些团队在寻找iOS开发的人才. 那么,iOS开发.....省略了1万字.... HTML5 +CSS3+JS...再省略1万 ...
- 03.WebView演练-iOS开发Demo(示例程序)源代码
技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong //转载请注明出处--本文永久链接:h ...
- iOS开发系列--网络开发
概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博.微信等,这些应用本身可能采用iOS开发,但是所有的数据支撑都是基于后台网络服务器的.如今,网络编程越来越普遍,孤立的应用通常是没有生命力 ...
- ios开发中的小技巧
在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIViewal ...
- IOS开发基础知识--碎片11
1:AFNetwork判断网络状态 #import “AFNetworkActivityIndicatorManager.h" - (BOOL)application:(UIApplicat ...
随机推荐
- STL-<queue>-priority queue的使用
简介: 优先队列是一种容器适配器,优先队列的第一个元素总是最大或最小的(自定义的数据类型需要重载运算符).它是以堆为基础实现的一种数据结构. 成员函数(Member functions) (const ...
- 七牛整合PHP上传文件
七牛支持抓取远程图片 API,用 access_key + secret_key + url 生成 access_token, 把 access_token 加在 header 里,然后向 post ...
- 用实例讲解RSA加密算法(精)
RSA是第一个比较完善的公开密钥算法,它既能用于加密,也能用于数字签名.RSA以它的三个发明者Ron Rivest, Adi Shamir, Leonard Adleman的名字首字母命名,这个算法经 ...
- 详解学习C#的方法和步骤
如果你已经有较多的面向对象开发经验,跳过以下这两步: 第一步 掌握一门.NET面向对象语言,C#或VB.NET. 强烈反对在没系统学过一门面向对象语言的前提下去学ASP.NET. ASP.NET是一个 ...
- 谷歌 HTML/CSS 规范 2016-12-30
背景 这篇文章定义了 HTML 和 CSS 的格式和代码规范,旨在提高代码质量和协作效率. 通用样式规范 协议 省略图片.样式.脚本以及其他媒体文件 URL 的协议部分(http:,https:),除 ...
- iOS AFNetworking HTTPS 认证
HTTPS 中双向认证SSL 协议的具体过程: 这里总结为详细的步骤: ① 浏览器发送一个连接请求给安全服务器. ② 服务器将自己的证书,以及同证书相关的信息发送给客户浏览器. ③ 客户浏览器检查服务 ...
- GDB的深入研究
GDB的深入研究 一.GDB代码调试 (一)GDB调试实例 在终端中编译一个示例C语言小程序,保存为文件 gdblianxi.c 中,用GCC编译. 在上面的命令行中,使用-o参数指定了编译生成的可执 ...
- 自发行python版本制作(二)编译
本系列文章第二篇主要说明windows环境的编译环境搭建以及编译过程. 编译环境选择: 1.选用作神一样存在的Microsoft Visual C++ Compiler for Python 2.7为 ...
- centos7安装http服务
1.yum安装http [root@localhost ~]# yum install httpd -y 2.启动http服务 [root@localhost ~]# systemctl start ...
- 折半查找(java)(边学习边更新)
---恢复内容开始--- class ArrayTest3 { public static void main(String[] args) { //int [] arr=new int[]{54,4 ...