iOS 开发之使用safari对webview进行调试
2016-04-20 15:34
573 查看
转自:http://www.tuicool.com/articles/ZBFnUbz
原文 http://cnbin.github.io/blog/2016/02/25/shi-yong-safaridui-webviewjin-xing-diao-shi/
主题 iOS开发
在web开发的过程中,抓包、调试页面样式、查看请求头是很常用的技巧。其实在iOS开发中,这些技巧也能用(无论是模拟器还是真机),不过我们需要用到mac自带的浏览器Safari。所以,本文将讲解如何使用Safari对iOS程序中的webview进行调试。
注意:必须要webview在加载网页时,打开Safari才可以看到调试模式。
在弹出的调试窗口中,可以看到当前正在加载网页的各种信息,包括源码、请求头、图片、加载的资源与脚本、控制台输出等。并且它和web前端的调试方式相同,你可以直接修改网页的CSS样式,对网页布局等进行修改,而不用重新运行整个App。
当然,webview的调试技巧还有很多,比如 Charles 工具等。感兴趣的小伙伴可以多研究下。
今天从v2ex的这个帖子里看到了iOS WebKit Debug Proxy,终于解决了这个问题。
先放张使用效果图
chrome_ios_debug.png
brew install ios-webkit-debug-proxy
真机只需要USB连接好即可
ios_webkit_debug_proxy -f chrome-devtools://devtools/bundled/inspector.html
-f 参数直接指定使用chrome的devtools作前端。否则需要FQ后才能调试设备。
如果此时看不到模拟器,请检查
设备列表
点击设备后可以打开新的设备页面
默认每个设备的端口号+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
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
使用safari对webview进行调试
时间 2016-02-25 14:35:20 陈斌彬的技术博客原文 http://cnbin.github.io/blog/2016/02/25/shi-yong-safaridui-webviewjin-xing-diao-shi/
主题 iOS开发
在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作前端。否则需要FQ后才能调试设备。
在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
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
相关文章推荐
- Unity AnimatorController注意事项
- Android视图绘制流程完全解析,带你一步步深入了解View(二)
- android创建一个旋转动画
- Unity3D 学习日记(四)生成不重复的随机数
- Android Dagger依赖注入框架浅析
- Android LayoutInflater原理分析,带你一步步深入了解View(一)
- Obtaining the event object
- Android中Activity的生命周期
- 关于 fragment 在v4 和app的细节发现
- iOS播放器之基于VLCKit的自定义播放器
- iOS开发--Mac下服务器搭建
- Maven Android Plugin
- iOS中,当我们要去掉webView上的长按手势时
- 魔窗7式之微信一键唤起App内页
- iOS 手机号正则
- 瀑布流
- iOS热更新-JSPatch实现原理+Patch现场恢复
- Objective-C Runtime
- 一站式解决,Android 拍照 图库的各种问题
- iOS之获取App的LaunchImage