0

許可是否有可能使用地理位置API的瀏覽器擴展程序,而不包括manifest.json中的「地理位置」的權限?地理位置沒有明顯

等,我們通過它運行的擴展名的文件background.html要求許可?

回答

1

Y您可以在不聲明權限的情況下在內容腳本中使用它。

這將觸發一個標準的通知欄,詢問您是否要允許目前的網站(不是你的擴展名)來訪問地理位置。如果用戶允許,則可以將收到的地理位置傳遞給後臺頁面以供進一步處理。

如果你的擴展注入的內容腳本到一個域這種方法可能會奏效,否則用戶將必須允許每次訪問域地理位置。

代碼應該是這樣的:

navigator.geolocation.getCurrentPosition(function(position) { 
    console.log("Latitude : "+position.coords.latitude+":"+"Longitude : "+ position.coords.longitude); 
}); 
+0

你能幫助我弄清楚如何才能通過內容腳本來完成? – user782400

+0

@ user782400內容腳本將允許您使用地理位置,只有當您的內容腳本注入用戶訪問的網站。這種方法適用於僅適用於youtube.com的擴展,但對於在所有站點上彈出瀏覽器或在後臺運行的擴展程序無效。 – serg

+0

所以據我瞭解,該網站將在manifest.json文件中,然後會出現什麼content_script回報率的數據? – user782400

0

都能跟得上:

「權限的數組,它的擴展程序或應用可以使用每個權限可以是公知的字符串(例如列表中的任一個。‘地理位置’),或可以訪問一個匹配模式到一個或多個主機。如果您的擴展程序或應用程序受到攻擊,權限可以幫助限制損害。「

http://code.google.com/chrome/extensions/manifest.html

...這裏:

你的物理位置「地理位置」權限允許擴展使用HTML5提出的地理位置API,而不提示權限的用戶。

http://code.google.com/chrome/extensions/permission_warnings.html

其實,看它以後多一點可以,但用戶將被提示輸入權限:

http://www.html5rocks.com/en/tutorials/geolocation/trip_meter/

...從谷歌這個頁面說,你可以使用此API及其他:

http://code.google.com/chrome/extensions/api_other.html