如何将调试器连接到设备?Chrome扩展程序

3
这是我的chrome扩展程序代码,据我所知它应该返回所有可以连接调试器的目标:
chrome.browserAction.onClicked.addListener(function(tab) {

console.log('launching extention');

    chrome.debugger.getTargets(function(result){

        console.log('Result!');
        console.log("count: "+result.length);
for (index = 0; index < result.length; index++) {
        console.log(index+": "+result[index].url);

}

    });
});

以下是我使用上述扩展程序的控制台输出:

输入图像描述

这只显示在Chrome浏览器中打开的选项卡作为可调试目标。

我已经正确连接并设置了设备,所以我可以调试Android Chrome选项卡。

输入图像描述

我使用的附加到设备调试器的方法是否正确?

相关文档链接: 远程调试调试器调试协议调试客户端


糟糕,似乎这个API不允许附加到设备页面。更糟糕的是,我找不到任何启用此功能的特性请求。 - Xan
1个回答

1

糟糕。看起来这个 API 不允许连接设备页面。更糟的是,我找不到任何启用此功能的请求。

因此,您需要使用"传统工作流程"进行低级操作,以便在连接的手机上公开调试器。

基本上,重要部分是运行 ADB 命令。

adb forward tcp:9222 localabstract:chrome_devtools_remote

该功能暴露了Android Chrome的调试接口,地址为localhost:9222,之后您可以使用XHR/WebSockets来中继原始协议消息
恐怕这是唯一的方法;如果您需要自动完成ADB步骤,可以使用本地主机脚本。请注意,您仍然无法绕过需要在手机上完成的“配对”部分。

注意:这确实需要在 https://crbug.com 上提出功能请求,以公开设备目标到 chrome.debugger API。如果 OP 可以创建一个并说明他的用例,那就太好了。 - Xan
另外,请注意:这只是我的最佳(知情)猜测,并非权威答案。 - Xan
1
我是否正确提交了请求?以前没有过这种经历。 - Michael Kent
由于您的请求已经被Chrome团队成员处理(我真心有点嫉妒),所以没问题。 - Xan
哦,不,你说过这之前可行——但实际上不行。我会在错误留下评论。 - Xan
那是我不确定的一部分:P,我认为这可能是为什么它被快速调查的原因XD... - Michael Kent

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