鐵人賽來到了第十六天,開頭就來個中場休息復習一下我們前面學習的東西:
Extension的開發架構:
架構底下的各種腳本組件:
各種輸入組件:
腳本組件的溝通
下個段落將進一步展開,細看Chrome 提供的各種Javascript API幫助你更具體的了解擴充功能開發的各種可能性。 (事實上Chrome幾乎開放了大部份的瀏覽器功能給開發者),在進入下一個段落前,先讓我們快速的瀏覽所有的API,為了方便記憶跟理解,我將API根據特性歸納了幾種類型:
官網上API照字母排列,實在不利用吸收跟學習 ,所以我自己進行了分類,幫助我理解擴充功能到底能作到哪些事情。
前面已經介紹完了
協助你為開發人員工具新增功能,例如Vue developertool。
gcm:利用goolge的雲端訊息服務(Google Cloud Messaging)來傳遞訊息。
identity:使用 chrome.identity API 獲取 OAuth2 訪問令牌,可以利用它來獲取一些Chrome登入的帳號資料。
pushMessaging:使用 chrome.pushMessaging 使應用或擴展程序能夠接收通過GCM發送消息。
storage:具有localStorage API 相同的功能,另外提供了,儲存,獲取,以及追踪用戶數據的更改,以及跨機器的儲存資料同步。
Google雲消息服務(GCM)是一項用於Android設備和Chrome應用的服務,可以向服務器發送和接收數據.chrome.gcm API允許Chrome應用或擴展程序以Chrome中登錄用戶的身份訪問GCM服務。即使應用程序或擴展程序不在運行時該服務也能正常工作,例如即日使用沒有打開,日曆更新也可以推送至用戶。
引用網址
chrome.extensionTypes
API contains type declarations for Chrome extensions.(OK這個我真的看不懂,文件寫的也少的可憐,而且我也沒看到範例)以上API不包括ChromeOS Only以及beta版的API, 完整的清單請參考官方網站。
根據不同的API需要在安裝檔中宣告不同的權限設定:
"permissions" : [
"alarms", //Extensions-API permission
"tabs", //Extensions-API permission
"bookmarks", //Extensions-API permission
"http://www.blogger.com/", //XHR permission
"http://*.google.com/" //XHR permission
],
官網的API文件會告訴你這個API需要的權限,以alarms為例:
權限的宣告有兩種方式:
部份權限的宣告會讓使用者看見授權畫面,細節可以查看以中文翻譯文件的權限警告。
光是把每個API文件點開大致上看過也是花了不少時間,官網的文件寫的非常精簡,我感覺不到有想要讓我看懂的誠意,很多要把範例運行起來去看腳本才知道實際的意思(冏rz),也有些根本就沒有範例(冏rz 2),還有些範例有bug我得debug(冏rz 3),所以如果我有理解錯誤的地方還請大家多多包涵。
另外還要注意文件有新舊版本的問題,雖然我為了偷懶一開始看的是中文文件,但中文跟最新的版本文件還是有落差,所以我花了一些時間作比對,另外還有些API是ChromeOS專用的API,在這裡我直接先瀘掉。
總得來說2016最後一PO,祝大家新年快樂。
待補