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)中的設備名稱,但它只包含所有其他設備,而不包括當前設備!

相關問題