转自: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,终于解决了这个问题。

先放张使用效果图

chrome_ios_debug.png

使用

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啦。

文/xi_lin(简书作者)
原文链接:http://www.jianshu.com/p/19c18c924f91
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

最新文章

  1. JavaScript权威指南 - 数组
  2. MapWinGIS.ocx 注册
  3. jersy服务,将图片发送另个服务器,再将异步返回
  4. PHP读取超大文件的实例代码
  5. Not enough free space on disks! linux
  6. Advance Installer安装问题
  7. 结合Socket实现DDoS攻击
  8. SmartSql Config配置
  9. (golang)HTTP基本认证机制及使用gocolly登录爬取
  10. CSS之CSS的三种基本的定位机制(普通流,定位,浮动)
  11. 【读书笔记】使用JMeter创建数据库(Mysql)测试
  12. 2018 CCPC网络赛 hdu6444 Neko's loop
  13. 主引导扇区MBR的解析
  14. golang sqlite3 CRUD
  15. 粒子群算法(PSO)算法解析(简略版)
  16. Request.Cookies 和 Response.Cookies 的区别
  17. bzoj1082
  18. 1.Math函数对象
  19. python使用python-docx导出word
  20. MySQL更改字段名

热门文章

  1. visual studio 两个以上sln 引用同一个project ,生成时会改变projectguid问题
  2. javascript的escape()方法
  3. LA 4255 UVa1423 拓扑排序
  4. js中子父页面数据传递与方法调用
  5. mysql索引的使用和优化
  6. HTML5 Web app开发工具Kendo UI Web中如何绑定网格到远程数据
  7. zabbix
  8. [转]SSAS没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG)) (Microsoft Visual Studio)的解决办法
  9. 《编写可维护的JavaScript》——JavaScript编码规范(一)
  10. 我的Android第四章