4

有没有办法从Chrome扩展中检索设备名称?如何从Chrome扩展程序获取设备名称(或主机名)?

理想情况下,我希望获得在新标签页上的“其他设备”菜单中显示的相同字符串......是否可以将这条信息用于扩展?

或者,主机名是否可用?

我设法为用户代理通过访问window.navigator.userAgent,但仅此而已......

回答

6

号与用户的硬件相关的持久性和唯一标识符将基本上是不可删除的cookie。出于隐私的原因,浏览器(和浏览器扩展API)不提供这样的标识符。

编辑:来自experimental.systemInfo。*您可能会构建一些内容来描述有关用户系统的特定属性。例如,保证下拉菜单中的唯一性不足以保证其独特性,但它可能是朝着正确方向迈出的一步。请注意,这些API是实验性的,因此您无法通过网上商店分发扩展程序。

+0

井会话菜单中的井设备名称不是唯一的,有时使用操作系统名称(我的Debian机器简单地列为'Debian GNU/Linux 7.0(wheezy)'),所以我认为他们'重新提供比用户代理更多的信息.​​.你有任何参考? – 2013-03-21 21:25:48

+0

用户代理肯定会泄露信息,标准的“无论如何都不是私人”链接是https://panopticlick.eff.org/。要说清楚,当你说“设备名称”时,你是在谈论像“Nexus 7”(更像是硬件功能)还是“Michele的Nexus 7”(它更像是一个独特的标识符)?既然您询问了主机名,我就假定了后一种解释。 – sowbug 2013-03-21 21:54:18

+0

知道Chrome如何获取这些名称会很有趣,它们看起来像用户代理的一些部分被操纵,看起来更加用户友好。例如,我的Android设备通过其型号名称列出(例如'GT- I9100'),而我的Windows 7虚拟机被标记为'MICHELE-LAPTOP7'(我猜这是主机名?现在无法检查)。 我可以让用户解决名称冲突,所以我不需要唯一性。可能模型名称就够了。 我会等待看看是否有其他事情出现,否则我接受这个答案,谢谢! – 2013-03-21 22:10:20

3

是的。自从Chrome 43版在此问题及其他答案之后发布一段时间后,您可以在Chrome扩展程序中使用chrome.instanceID.getID()获取唯一设备ID。

可以使用chrome.sessions.getDevices()找到其他设备菜单(chrome:// history/syncedTabs)中的设备名称,但它只包含所有其他设备,而不包括当前设备!

相关问题