欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

如何用手机测试自己写的web页面

作者:知乎用户
链接:https://www.zhihu.com/question/37361845/answer/71674280
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

刚好我这几天写过一篇文章。

下面多图预警。。。
由于重新传图,排版可能不好。然后图片大小也不能调整,所以就。。。。


一、IOS 移动端 (Safari开发者工具)


手机端:设置 → Safari → 高级 → Web 检查器 → 开。

mac端:Safari → 偏好设置 → 高级 → 在菜单栏中显示“开发”菜单。

在 OS X 中启动 Safari 之后,以 USB 电缆正常接入 iOS 设备,并在此移动设备上启动 Safari。此时点击计算机上的 Safari 菜单中的“开发”,可以看到有 iOS 设备的名称显示,其子菜单项即为移动设备上 Safari 的所有标签页,点击任意一个开始调试。

便捷,简单,还可以调试外壳包裹的浏览器如微信。

备注:顺便提一下,要调试不同版本的ios,可以进xcode 进行下载不同的系统包(当然是在没有设备的情况下,土豪略过)


二、安卓移动端


1、chrome 调试方法

首先确保手机上和PC机上装有最新版本的chrome浏览器,其次是将手机的开发者选项打开并允许调试,然后将数据线将两台设备连接起来。在PC机上打开chorme,输入chrome://inspect ,然后在手机上打开chrome,然后手机会弹框询问是否允许调试,当然确定啦。有时候手机锁屏会断开,请拔掉usb重来。

点击inspect打开DevTools后,你可以选中页面中的DOM元素,同时设备中对应元素也高亮显示,也可使用DevTools中的Inspect Element 选中目标元素,可以实时与移动设备页面交互,方便的定位问题所在,进行代码调试,就能像pc端一样愉快的玩耍了。如果有问题,请检查chrome版本。

chrome的调试一般只可以调试chrome页面,但是其官方文档说还可以调试WebViews:

“On your computer, the chrome://inspect page displays every connected device, along with its open tabs and debug-enabled WebViews.”

需要说明调试WebView需要满足安卓系统版本为Android 4.4+,并且需要再你的APP内配置相应的代码,在WebView类中调用静态方法setWebContentsDebuggingEnabled,如下:

if (Build.VERSION.SDK_INT >=Build.VERSION_CODES.KITKAT) {  
    WebView.setWebContentsDebuggingEnabled(true);  
} 

以上配置方法适用于安卓应用内所有的WebView情形。

安卓WebView是否可调试并不取决于应用中manifest的标志变量debuggable,如果你想只在debuggable为true时候允许WebView远程调试,请使用以下代码段:

if (Build.VERSION.SDK_INT>= Build.VERSION_CODES.KITKAT) { 
    if (0 != (getApplicationInfo().flags &=ApplicationInfo.FLAG_DEBUGGABLE{
        WebView.setWebContentsDebuggingEnabled(true);
    }  
} 

我这里只写了个大概,如果有其他问题或者欲查看详细文档,看下面链接(自备梯子):

developer.chrome.com/de


注意:同样的你也可以在电脑上装安卓的虚拟机,推荐Genymotion ,一样的,想测什么版本,就自己下rom ,当然土豪当我没说。


2、UC开发者浏览器

由于不推荐移动端使用UC(大家应该自觉抵制移动端毒瘤),所以我只简单说一下,如果是在有兴趣,请自行查看: 开发者中心_UC优视︱UC浏览器︱全球第一大手机浏览器,用户超过5亿人︱手机浏览器

它的调试方法与chrome差异不大。


3、使用 Weinre 调试


该方法是比较老的一种方法,对于其他的调试方法来说属于刀耕火种型的。weinre是一个调试包,本身提供一个JavaScript,需要你在项目文件中加入该js。首先安装Weinre,我们用nodejs安装之,使用-g全局命令,以便可以在各个目录下访问:

npm install -g weinre

安装weinre之后再设置监听本机的ip:

然后打开返回的地址的说明文档,然后把返回的js写入到调试的文档中,注意我箭头所指向的地方。

这样访问页面的时候,加载这个 JS,就会被 Weinre 监听到进行控制。

小提示:这个 JS 后面的 #anonymous 起到一个标识作用,为了区别,我们可以将其修改成 #test 放到页面中。这时候,我们的 Inspect 面板的地址就不是 172.16.0.2:8080/client/# 了,而是 172.16.0.2:8080/client/#

当我们访问页面的时候,就会出现在监听列表中,如果有多个网页,你可以从列表中选择一个。然后就可以使用后面的 Elements、Console 等面板来进行调试操作了:


Weinre 非常灵活,只需要在页面中加载这个 JS,然后访问即可,因此 WebView 可以用这种方法调试,一些低版本的 Android、iOS 也可以支持,Window Phone 也是可以用的。在调试移动设备时你可能需要在本地搭建一个局域网 IP 的服务器,将设备与本机网络连接成一个局域网,用移动设备访问这个网页即可。

当然 Weinre 也不是万能的,相比 Chrome 的调试工具,它缺少 JavaScript debug 以及 Profiles 等常用功能,但是它兼容性强,可以实现基础调试功能。


4、mihtool 测试

MIHTool 是国人开发的,基于 Weinre,用于 iOS 设备的前端开发测试。

与Weinre 的调试方式大体一样,即开启一个服务器,然后将 JS 插入到页面中,访问进行调试。

MIHTool 将这个过程简化了,它是一个 APP,可以直接安装到你的 iOS 设备里面,然后内置一个简单的浏览器可以打开你的测试页面,当它开启时,会自动向页面中插入 Weinre 的 JS,并告知 Weinre 控制台 URL 等信息,让你可以访问进行调试。

它还提供了一个公共的 Weinre 调试服务,生成类似 MIHTool Web Inspector 这样的链接,打开即可调试,非常方便,就是有些卡。

5、移动设备在线测试

移动端设备如此之多,小公司或者团队,没有这么多资金和精力购买如此多的测试设备进行测试。于是就有人买了这些设备,连接起来,提供在线调试服务。

一般就是他的真实手机设备打开,然后截屏出来供预览。

比如:BrowserStack 等,当然一般比较卡。

(话说这种貌似可以刷一点pv和uv出来。。。)


三、总结


调试方法很多,层出不穷,关键是要看自己是否顺手和熟练,关键在于按时按量的完成开发任务。

关键在于平时多积累跨坑姿势,少写一点不兼容的代码,调试就舒心一点。


如果这还不满足的话,可以查看更多资料:


移动端前端开发调试: http://yujiangshui.com/multidevice-frontend-debug/

移动开发真机调试: 移动开发真机调试

remote_inspect_web_on_real_device: jieyou/remote_inspect_web_on_real_device · GitHub

remote-debugging: developer.chrome.com/de

移动端Web开发调试之Chrome远程调试(Remote Debugging):移动端Web开发调试之Chrome远程调试(Remote Debugging)


------------2015/12/2 补充 BrowserSync 部分-------------

很多朋友再说为什么不写Browser-sync,还有给差评的,说实话吧,我之前不了解那个东西。花了点时间看了一下,找到了他们的官网:Browsersync - Time-saving synchronised browser testing 觉得还挺有趣的哈。

然后就用了,觉得还行,真的会省很多工夫,入门也快,差不多就5分钟快速入门,前端的轮子都这样。。。

1、首先安装 BrowserSync

npm install -g browser-sync

2、启动 BrowserSync,原理应该是那种检测文件变化,然后在服务端 websocket 通知浏览器变动,再加载新的变动文件,在不支持websocket 的浏览器上就轮训服务端的变化,在加载新文件。我只是简单的抓包看了下,也不知道说对了没有。233

此时分两种情况,一种是静态:

// 监听css文件 
browser-sync start --server --files "css/*.css"
// 监听css和html文件
browser-sync start --server --files "css/*.css, *.html"

二种是动态:

// 主机名可以是ip或域名
browser-sync start --proxy "主机名" "css/*.css"

然后就上手了啊,就这么简单。。

还有gulp 配合哦。具体就看文档了:Browsersync + Gulp.js


总结,前端变化日新月异,一个月不学,感觉就落后了啊


-----------------我是分割线---------------

这里是
大神的原文,之所以圈他一下,因为我的这个文档从他那儿粘贴了很多,这个是他的原文:--> 移动端前端开发调试
上面的更多资料部分,我也讲其放在第一个,不过之前的链接放错了,不是原博客链接,现在已更正。

这是我整理的,每一个我都真正的动手实现了的,关于安卓webview的调试部分我还补充了点我找到的资料 --> 移动端前端开发真机调试攻略

-----------------我是分割线---------------

ps.我用的百词斩的网站做示例,因为我目前在那儿实习(才刚去一周多),leader叫我写一篇移动端开发的真机调试文档出来,所以就酱紫了
基本的调试方法都被 讲完了, 我提供另外一种方法。
需要的软件 Charles
1. 把你的手机的代理 设置为你的电脑的IP 端口为8888


2.你的页面写完了,在页面中随便写一个域名目录你的html文件,伪造一个url 生成二维码
3.微信扫描二维码
你看到的是一个错误页面,或者是一个跳转的域名错位页面,这个可以不用管。
你看到charle里抓包的数据是这样的。
右键选择Map local
选择你本地的文件来代理线上的文件
然后回到微信刷新页面 或者重新扫描二维码 就可以看到你写的页面了。这样
代理前的样子
代理成功的样子

如果需要调试移动端页面的错误信息 最好的方法 还是 手机链接电脑 用Safari来调试
自荐一篇文章:移动端前端开发调试 。各种情况各种平台的调试技术和方法都有提到。
刚好这两天做了这个环境,保证手机和电脑在同一局域网,然后电脑上搭个http服务器,手机通过电脑的ip访问就好。
架个临时服务器,用手机连电脑局域网,访问即可测试,记得把localhost改成电脑ip即可
局域网内的话好办,你只要写个服务器监听HTTP的某个端口,局域网内直接访问IP端口即可。
如果公网的话就需要一个服务器。这个比较麻烦了。
简单的话上面答案说的chrome模拟下就行了

Vorlon.JS

# Intro

An open source, extensible, platform-agnostic tool for remotely debugging and testing your JavaScript. Powered by node.js and socket.io.

# Usage

$ npm i -g vorlon 
$ vorlon 

# The Vorlon server is running
# With the server is running, open http://localhost:1337

<script src="http://localhost:1337/vorlon.js"></script>
npm install anywhere -g
笔记本的话可以开个热点(各种免费wifi工具),然后手机连上,用ipconfig看一下ip,访问电脑的web服务器。
其实chrome的控制台式可以模拟手机的,就是点一下左上角的手机图标。
browser-sync
连接同一个wifi 然后用ip访问电脑服务器
安利everything!!!
都知道它可以用来搜索文件,其实它还可以用来搭建简单的ftp和http服务器。
在选项里面简单地选几下就行了,把默认页面指向你写好的html。
然后用手机访问你的电脑的ip就行了。
在电脑上配置一个web服务器,windows的话推荐wampserver,然后将你需要测试的页面放在www目录下,例如C:\wamp\www\Test,然后再推荐神器liveStyle,关于liveStyle使用方法参见w3ctech的LiveStyle初体验
给你个简易方法,下载asp快速调试器,然后命名你要调试的页面为index.html,同一个文件夹里启动调试器,就会生成127.0.0.1:xxxx的本地浏览路径。xxxx为随机端口。用手机连接wifi,输入计算机的ip加xxxx,如192.168.1.1.1:xxxx,即可访问
我来说个简单的办法
  1. 开发好页面,先用谷歌浏览器的手机屏幕模拟功能看一下
  2. 去xampp官网下一下这个软件,在本地建一个简单的服务器,然后把自己的页面放到服务器上打开,你的页面路径应该类似于192.168.1.2/xampp/demo/这种样子
  3. 打开百度随便输一个二维码生成器,把上面的地址粘进去生成二维码
  4. 拿出手机打开微信或其他能扫码的浏览器扫码预览就可以了
  5. 想看修改代码后的样子重复第3步和第4步
注意点:你输入的网址前面的ip一定而且肯定是你自己电脑的ip地址,默认的情况下,地址是http://localhost/……,一定记得把localhost替换成你本地的ip,不然你扫码是扫不出来的。
你没有浏览器吗?
Mac的话 ,自带Python,可以用Python。
如果非得在手机上做测试的话你你得有一个服务器或者说你可以使用到一个服务器(使用ftp可以上传或者管理服务器上的文件),把你做的页面上传到服务器上,得到一个链接,然后用手机打开这个链接就可以了。否则的话只能用chrome上的这个功能。
我没有做过手机端的网页,只做过几个demo,可能答的不全面,欢迎指教,
windows的话装一个wamp软件,把你的网页放到www目录下,通过局域网ip来访问就可以了

来自 https://www.zhihu.com/question/37361845
普通分类: