前述
我们已经习惯了模拟器进行调试,那为什么还需要进行本地真机调试? 举个例子:
ios
真机环境,我们收到短信验证码后,点击复制,ios
系统层面会存在bug
,剪切下来的验证码会被重复两遍,例如收到的验证码为123456
,但是实际复制后到剪切板的就变成了123456123456
。
如果你对「各端h5的坑」
了解不深。没有使用真机调试的方式,就无法在本地调试的阶段就发现潜在的问题。
利用Chrome进行真机调试
首先分享一个坑
一开始,为了实现一屏完全填充,考虑到移动端对vw
,vh
完美支持的情况下,我使用如下代码对宽高进行控制
html, body {
height: 100vh;
width: 100vw;
background-color: blue;
}
好的,让我们看看效果,在模拟器上,表现很完美,整整一屏的blue
,这样看起来是没有问题的。
真机调试步骤
准备项
-
首先确保你有一根双向
Type-c
的线(? 我没有,就把mac
充电器的线接到手机上了) -
接下来,用线将手机和电脑连到一起
-
打开手机的
Chrome
-
在完成电脑与手机之后,在电脑
Chrome
中输入以下地址: -
chrome://inspect/#devices
如何判断链接成功?
如果你能看到Chrome
识别出了你的移动设备,并且可以看到当前Chrome
浏览历史页面列表,证明你链接成功了!
开始真机调试
接下来,我们可以在 chrome://inspect/#devices
页打开一个我们想要进行调试的页面
这里我们打开第一步:On Your Network
: https://192.168.12.247:3000的页面
回到一开始的问题,真机调试会有什么问题呢?
可以看到,由于模拟器没有address bar
,无法让我们发现问题,到了移动端之后,100vh
实际会溢出,就出现滚动条了,并不是我们预期的效果。
有一些人提出如下解决方案,但是在实践中发现,安卓真机打开键盘会导致body
元素高度减少,收起键盘之后,body
高度不会变回去,导致原键盘区域为空白。
/* 存在问题的方案 */
html, body {
height: -moz-available;
height: fill-available;
height: -webkit-fill-available; /* 表示撑满可用空间(包括高度,宽度)*/
}
解决方法:
/* 最终方案 */
html, body {
min-height: 100%;
}
使用vConsole插件
直接引入
// index.js
import vconsole from 'vconsole'
const vConsole = new VConsole();
通过Webpack插件形式引入
//webpack.config.js
/** 以下为伪代码 */
const vConsolePlugin = require('vconsole-webpack-plugin');
plugins: [
isEnvDevelopment &&
new vConsolePlugin({
filter: [],
enable: isEnvDevelopment,
}),
]
使用内网ip进行真机调试
如何获取本地ip?
如果你通过npm run dev
启动本地dev
环境,并且项目是基于create-react-app
或vue-cli
搭建项目的时候,由于封装的脚手架中配置了webpack
相关的plugin
,项目运行成功后会在命令行中有一些提示,不知你有没有注意过terminal
提示里的第三行地址?
On Your Network: https://192.168.12.247:3000
如果你的项目没有使用webpack
,或没有配置相关plugins
,看不到**On Your Network
**也没有关系
可以通过如下方式获取内网ip
ifconfig | grep "inet " | grep -v 127.0.0.1
# 执行结果
# inet 192.168.12.247 netmask 0xfffffc00 broadcast 192.168.15.255
# 这里 192.168.12.247 就是本机的内网ip
在真机Chrome
中输入https://192.168.12.247:3000
,可以看到手机后置摄像头的画面在页面中通过video
成功渲染。
对于这种例如需要使用后置摄像头的业务场景,我们只能使用真机进行实时调试(谁让Mbp
自身不带后置摄像头呢?? )
在手机浏览器中手动输入地址,进行移动端调试很麻烦?
这里提供一个Chrome
插件,可以直接生成二维码
chrome.google.com/webstore/de…(需要科学上网)
FAQ
点击inspect后,弹出的Devtools工具白屏,提示http1.1 404
- 需要查看手机
Chrome
版本和电脑Chrome
版本是否一致,需要对齐版本
仍然无法打开Devtools
则需要科学上学
访问内网http环境无法通过MediaDevices.getUserMedia获取视频,音频流
可以通过chrome://flags/
在白名单中设置ip
来解决问题
谢谢大家❤️
我的分享到这里就结束了,如果还有什么疑问或者建议,欢迎一起交流讨论,可以添加我的微信actuallys
,分享、点赞、在看三连~!
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!