【发布时间】:2009-06-09 12:11:31
【问题描述】:
我正在 iPhone 上进行一些粗略的开发。我正在编写一个原生 iPhone 应用程序,它使用 UIWebView 对象来加载带有 javascript 的网站。我发现很难在 iPhone 上调试 javascript 代码。 有哪些方法/技术可以解决这个问题?
【问题讨论】:
标签: javascript iphone debugging
我正在 iPhone 上进行一些粗略的开发。我正在编写一个原生 iPhone 应用程序,它使用 UIWebView 对象来加载带有 javascript 的网站。我发现很难在 iPhone 上调试 javascript 代码。 有哪些方法/技术可以解决这个问题?
【问题讨论】:
标签: javascript iphone debugging
由于 iPhone 上的 Safari 使用 webkit,您可以使用桌面 Safari 的 web 检查器中内置的调试器。虽然平台之间可能会有一些不同的怪癖,但它会让您对解释器中发生的事情有一个很好的了解。
【讨论】:
如果您可以使用 Android 手机,则可以使用桌面 Chrome 的完整开发人员工具和 USB 数据线调试您的应用程序(非常方便)。
这意味着调试器、分析器、HTML 检查器等都在您的手机上运行,但通过在您的笔记本电脑/台式计算机上运行的 chrome 访问。
Android Chrome 和 iPhone Mobile Safari 通常比 Desktop Safari 与 Mobile Safari 更相似,屏幕格式相似,布局相似,您将能够尝试真实的触摸事件等。
https://developers.google.com/chrome/mobile/docs/debugging
需要 Chrome、能够运行 Android Chrome 应用的 Android 设备和 USB 数据线。
您必须安装和使用 ADB 控制台命令,但一旦它工作,您将拥有可用于调试移动设备的完整 chrome 开发人员工具界面。
【讨论】:
与 Adrian Harris 类似,可以通过在 dashcode 中创建一个虚拟项目,点击“Mobile Safari”然后“运行”来调试 iphone 上的任何网站
一旦iPhone Simulator 和safari 与虚拟项目网站一起打开,点击safari 的url 栏,输入任意公共url,当你在该站点时,你可以点击“Pause”,调试器会弹出在任何 javascript 代码运行之后。此时可以检查变量、设置断点等。
【讨论】:
我知道这是一个老问题,但想用最新信息更新答案 ->
如果您拥有最新的软件(safari、iOS6 和 MacOS)和连接的(带电缆)iDevice,新的 safari(适用于 mac)可以在实际的 iphone 或 ipad 上实时使用网络检查器.
您可以通过在 iphone 上的“高级”Safari 偏好设置中启用它,然后在 Mac 上的 Safari 中的开发菜单下启用它来访问它。更多信息请看这里:http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/DebuggingSafarioniPhoneContent/DebuggingSafarioniPhoneContent.html#//apple_ref/doc/uid/TP40006515
您也可以以相同的方式访问模拟器(使用 xCode 安装)。
【讨论】:
我同意 pjbeardsley 的观点。我会添加在http://www.testiphone.com/ 中使用您的网页,这样您就可以看到尺寸会是什么样子。我肯定也会为此使用 Safari 和 Web Inspector
【讨论】:
我使用 Dashcode 取得了不同程度的成功,它有一个与 iPhone 模拟器配对的 javascript 调试器。开始工作有点棘手,因为如果不打开项目就无法启动它。但我记得,我在网上发布了项目,启动了占位符项目,然后在 Dashcode 中调试了占位符项目。然后我在模拟器中导航到我的 url 并能够设置断点。可能还有其他一些问题需要跳过,但是一旦它开始工作,就好像我在 Mobile Safari 中有一个真正的调试器,这很棒。
祝你好运
【讨论】: