如何在桌面机器上调试Android的本地浏览器(不是Chrome)?

18
我可以成功使用Google的Chrome DevTools(chrome://inspect)调试运行在移动设备上的Web应用程序的前端,我的移动设备使用Chrome浏览器(使用端口转发)。我想知道是否可以使用Android的原生浏览器做同样的事情,我的意思是Android预装的那个浏览器,应用程序启动器看起来像这样,更加清晰,:-)

enter image description here

有没有办法做到这一点呢?因为当我在chrome://inspect中打开一个带有此浏览器的选项卡时,我当然不会得到已打开的选项卡,也无法检查设备从本机浏览器中查看的内容。
我需要以某种方式做到这一点,因为我发现了一些与原生浏览器相关的 UI 问题(CSS、JS),实际上在 Chrome 中所有工作都很好,但在原生浏览器中不行。
我还尝试过使用weinre,发现它非常有用,但我只能在 LAN 的上下文中使用它,这意味着我必须将设备绑定到 LAN IP 地址,并且实际上我需要访问来自 http://localhost 的 Web 应用程序(就像在 Chrome DevTools 中使用端口转发一样),因为我使用的服务器端软件严格依赖于 localhost(这不是我的,如果我能的话,我不会这样做)。
那么,在 Android 默认的原生浏览器上,是否有一种方法可以实现这一点?使用 weinre 和/或 Chrome DevTools?
感谢您的关注!

P.S.:我知道从Android 4.4开始,Android浏览器不再是原生的了,但是为了兼容性,我仍然需要它,如果可能的话(我想应该是可以的)。


1
你试图调试哪个版本? - Chris Stratton
你是问我用的是哪个安卓版本吗?我的安卓版本是4.1.2,有点老了,但我必须承认我已经root了设备,所以它不能再更新了。我想更新它,但每次尝试时都会显示无法更新。浏览器是预装在那个版本中的。顺便说一句,既然我们谈到这个话题了,有没有办法更新已root的安卓系统呢? - tonix
无论是否root,只有存在官方更新才能安装它。考虑到您使用的版本相对较旧,很可能不再受支持。不过,您可以尝试安装非官方构建的新版本。 - Chris Stratton
1
无论如何,我不相信在4.1.2中使用的本地Webview与Chrome远程调试兼容 - 相反,这似乎是在基于Chromium的Webview中引入的4.4。如果您想要调试的问题仅适用于旧版本,则我认为该路径对您无效。如果它在较新的Webview版本上共享,则可以尝试模拟器,特别是能够使用VM加速功能的x86映像。 - Chris Stratton
谢谢你的建议,我猜问题只与旧版本有关,因为我唯一拥有的(物理)设备是版本4.1.2的那个,我不知道4.4上是什么情况。虚拟机可以使用。你说即使是已ROOT的设备也可以升级,对吗?奇怪的是我的没有升级成功过,它经常尝试更新,然后我看到一个消息:“软件更新-未成功”。我猜4.1.2已经不再受支持了,就像你说的那样。那么非官方版本呢?它们可靠吗?更新会保留所有我的应用程序和数据吗? - tonix
3个回答

4

about:debug 至少适用于 JavaScript 控制台。它帮助我查看为什么在本机、基于 WebView 和受限浏览器上它会出现故障。


1
这就是帮助我在那些旧手机上捕捉错误的方法。 - rekiem87
1
太棒了!非常有用的提示,谢谢! - hal

1
您可以使用Chrome开发者工具来调试运行在原生Android浏览器中的移动网站,这与在Chrome for Android上进行调试类似:
如果您还没有这样做,请按照此处所述的已接受答案中的所有步骤启用使用Chrome开发工具进行调试(在您的台式计算机上): Chrome DevTools Devices does not detect device when plugged in 现在,将您的设备连接到计算机上,在原生Android浏览器中打开您的网页。转到Chrome开发工具,您应该看到已连接您的设备,并且您应该看到类似于以下内容的内容(通常在右侧有“检查”按钮)。单击“检查”按钮即可开始 - 您可以使用Chrome开发工具调试原生Android浏览器!

enter image description here


是的,我点击了它,模拟器上的浏览器正在运行,一个网站已经加载了。这是Chrome显示的内容:https://i.imgur.com/UJHCJjt.png 也许Android 4.1模拟器(API级别16)对于Chrome远程调试器来说确实太旧了。 - JustAMartin
不,我已经启动了Android模拟器并在Android浏览器中打开了我的网站。然后我在桌面机上启动Chrome,我看到模拟器设备,但是当我点击它时,它没有显示浏览器,只有“没有浏览器”的消息。但我已经解决了这个问题-我在模拟器上安装了Chrome,现在我的电脑Chrome看到了模拟器上的Chrome。这证实了我的怀疑,即Chrome远程Web调试无法与旧版Android浏览器一起使用,这是Android 4.1及更早版本设备上的默认浏览器。 - JustAMartin
将网站在真实设备上运行,而不是模拟器,并通过 USB 连接到桌面电脑,然后使用 Chrome 开发工具连接到设备,查看它是否识别旧版 Android 浏览器。这应该可以确定 Chrome 调试是否支持您的 Android 浏览器版本。我不确定模拟器是否像调试真实设备一样可靠。 - Chris Halcrow
1
问题在于我自己没有一个带旧版Android浏览器的真实设备。这通常是使用模拟器测试不同浏览器的原因。哦,那好吧,我想我将不得不使用weinre库来在旧移动浏览器上调试网站。此外,一些制造商过去曾基于Android浏览器创建他们自己的移动浏览器版本,因此您永远不知道在任何Android设备上启动默认浏览器时会发生什么... - JustAMartin
正如预期的那样,它可以正常工作 :) 在安卓默认浏览器上进行了测试。 - Abdellah Stands with Palestine
显示剩余4条评论

0

你也可以使用chrome://inspect来实现这个功能,只需确保你的本地浏览器正在运行,因为你不能像从那个页面中启动Chrome一样启动它。

此外,如果设备列表中没有显示出来,使用adb列出设备通常可以解决这个问题。

adb devices

要获得完整的说明,您应该查看有关此主题的Android文档 https://developer.chrome.com/devtools/docs/remote-debugging


1
我怀疑这只能在4.4及以上版本中运行。 - Chris Stratton
谢谢提供链接,我之前已经看过了,不过还是感谢。 - tonix
我曾经在我的LGG3 5.0.1上使用开发工具。但是在2015年4月5日那周,我更新了浏览器组件,现在当我使用开发工具时,只看到一个空的检查器窗口。我知道这并没有什么帮助,但我已经在Android 4.4+上使用开发工具而没有更改设置。 - Delconis
1
这真正回答了问题吗?提问者指的是所有安卓手机上都有的默认(或原生)安卓浏览器。在我看来,你提供的链接描述的是如何在使用 Chrome 安卓浏览器时进行调试,而不是默认浏览器。 - Jim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接