作为网页开发人员,浏览器的兼容性适配必不可少,无论你如何拉伸和压缩浏览器窗口来模仿移动设备的比例,直到你在真正的设备上测试过,你才算真正测试过你的项目。对于那些没有轻松获得所有相关设备的人来说,这是一个挑战。
当涉及到测试和调试iOS Safari
时,项目的可调试性就比较差了。问题进一步复杂化的是:iOS Safari
有时会表现出与MacOS
(桌面版)Safari
非常不同的特性。
简单的选择:MacOS Safari 用户代理仿真
MacOS
上的 Safari
提供了一组非常有用的功能来进行测试和调试:用户代理仿真和响应式设计模式。这两种功能结合起来,使得 MacOS Safari
能够以非常高的准确度复制 iPhone
的环境。虽然不是完美的,它可能会缺少一些功能,但如果你已经有一台 Mac
的话,这是一个快速简便的方法。
第一步
打开 MacOS
上的 Safari
并转到 Safari › Preferences
。在“高级”选项卡下,确保“在菜单栏中显示开发者菜单”选项已被勾选。(这是访问 Safari 开发者工具所必需的,此访问默认是关闭的。)
第二步
在 Safari
中,打开 Develop › User Agent
,并选择你想要模拟的设备,选择最新的可用 iPhone 也可以。
第三步
在 Develop
菜单中再次选择“进入响应式设计模式”(位于“用户代理”选项的下方几个选项)。
你会看到一个菜单,其中列出了几款 iOS
设备可供选择。点击其中一个,浏览器视口会自动调整以匹配所选设备的屏幕大小。
你还可以旋转屏幕,切换竖屏和横屏模式,甚至在分屏场景中模拟应用程序的大小(例如 iPad 屏幕的三分之一)。
内置在桌面Safari
中的功能非常好用。然而,这种方法也有其局限性。它不会显示浏览器的外壳(即浏览器栏和导航),也不会显示其他·iPhone
用户界面的元素,你看不到设备的形状或边缘——这些因素可能会对用户体验产生重要影响。此外,正如前文所述,MacOS Safari
和iOS Safari
之间的行为并不总是完全一致。
全面的选择:Xcode 设备模拟器
这个选项可能看起来非常复杂,但实际上并不难,它为你提供了一种在 Mac
上免费且无限使用iPhone
的方法。
然而,缺点在于这种方法需要你投入大量的时间和磁盘空间。你需要几个GB
的可用磁盘空间,用于安装Xcode
和它的模拟器,并且需要花费时间下载这些内容,因此在开始之前请确保你有足够的资源。
下载并安装了 Xcode
,打开它。忽略它打招呼时出现的任何提示和警告,然后打开 Xcode › Preferences
。
在Xcode
的偏好设置中,选择“Components
”选项卡,你会看到一列可用的模拟器。选择你想要的iOS 版本,然后点击下载图标。
一旦你选择的模拟器下载并安装完成,你就准备好了!
在打开的 Xcode
中,前往 Xcode › Open Developer Tool › Simulator
。你应该会在屏幕上看到一个 iPhone
,运行你选择的 iOS 版本。这里提供了完整的 iPhone
用户界面;你的模拟设备可以启动和关闭,有内存和应用程序,有刘海。对于我们的测试目的最重要的是:当你打开Safari
时,它展示了完整的浏览器界面,让我们看到我们的网站或应用程序在用户手中的真实表现。
这个设备的行为就像一个真实的 iOS 设备;你可以安装应用程序,旋转屏幕,显示和隐藏键盘,并使用所有设备的常规功能。
真机调试
苹果在 macO
S 和 iOS
之间的集成提供了一个原生且高效的路径,使开发者可以直接从 macOS
计算机上调试iOS
设备上的网页内容。
在开始远程调试之前:
在你的
Mac
上通过Safari
设置 > 高级设置启用开发者模式。在你的
iOS
设备上,转到 设置 >Safari
。找到高级选项,然后在那里启用
Web
检查器。
现在可以开始远程调试了:使用数据线将你的
iOS
设备连接到Mac
上。在
iOS
设备上的Safari
浏览器中打开需要调试的目标URL
。在
macOS
系统上,在Safari
的Develop
菜单中,找到你的iOS
设备名称,然后点击你在手机或平板上已经打开的页面。
在打开的Web Inspector
中,您可以调试Web
页面。