如何console.log
使用 android 模拟器查看网站的消息?
6 回答
来自 Rich Chetwynd 的短文《Android 浏览器上的 Javascript 调试》。
您可以从 Android 设备或模拟器记录 javascript 错误和控制台消息。为此,您首先需要安装 Android SDK 和 USB 驱动程序并在实际设备上启用 USB 调试。
要检查设备是否连接正确,您可以从 Android SDK 工具目录运行以下 cmd,您应该会在列表中看到一个设备
c:\android sdk..\platform-tools\adb devices
然后,您可以使用 Android 调试桥过滤调试消息,以便通过运行以下 cmd 仅查看与浏览器相关的消息。
c:\android sdk..\platform-tools\adb logcat browser:V *:S
默认情况下,日志被写入标准输出,因此您将看到任何 Javascript 错误或 console.log 消息等写入 cmd 窗口。
更多详细信息:Logcat CLI 工具文档。
如果您从 启动模拟器Eclipse
,您将直接在 LogCat 视图下ADT plugin
看到所有控制台日志:JavaScript
Window -> Show View -> Android -> LogCat
您可以临时添加一些 JavaScript,例如...
var console = {
log: function(msg) { alert(msg); }
};
丑得要命,但它确实有效。
如果您使用的是 Android Studio;您可以打开 Logcat (Alt+6) 并过滤::CONSOLE
仅过滤:CONSOLE
(而不是INFO:CONSOLE
)将显示所有类型的控制台消息(包括 ERROR、WARN 等)。
我使用以下代码劫持了 console.log:
function logManager() {
var self = this;
self.init = function () {
console.log('logmanager initialized');
var old = console.log;
self.logger = document.getElementById('log');
console.log = function (message, options) {
if (typeof message == 'object') {
self.logger.innerHTML = (JSON && JSON.stringify ? JSON.stringify(message) : message) + '<br />' + self.logger.innerHTML;
} else {
self.logger.innerHTML = message + '<br />' + self.logger.innerHTML;
}
}
}
self.toggleLogVisibility = function () {
return $(self.logger).toggle();
};
}
并在您的 html 中以您自己的样式使用它(绝对右上角是我使用的)
<div id="log" class="log">
Application loaded...
</div>
在你的 jscript 中(在加载的页面上运行这个,因为日志元素必须存在)
document.lmgr = new logManager();
document.lmgr.init();
命令 - 从模拟器获取日志
adb -e logcat
adb.exe 位于 $your_installation_path$\android sdk\platform-tools