如何從零開始寫一個Edge擴展?
看到win10自帶的edge瀏覽器已經開始支持擴展了,但是當前擴展還偏少。我想開發一個擴展,應該怎麼開始呢
輪子哥 @vczh 的步驟似乎是目前唯一 documented 的方法。
我剛剛去看了一下 Edge 的文檔,在 Edge 14.14393 的 about:flags 頁面可以開啟 Edge Extension 的 sideloading 功能。設置完了之後,就可以開始開發啦!
- 讀 Chrome、Edge 的文檔,開發一個只用同時受 Edge 和 Chrome 支持的 API 的擴展;
- 下載 Microsoft Edge Extension Toolkit,安裝並打開擴展所在的文件夾,按照步驟轉制;
- 在 Edge 中 sideload 這個轉制好的插件,調試。
這個轉制主要干兩件事:添加兩個 shim scripts,然後在 manifest 裡面用 Edge-specific 的 -ms-preload 鍵預載入這兩個 shim scripts。其他的大概會提醒你一些不好的實踐(寫死 extension protocol,如硬編碼 chrome-extension://)和不兼容的 API。
我剛剛用這個步驟把我司某內部工具變成 Edge 擴展了。它經過修改後能直接在 Edge 里完美運行,這不稀奇,因為它開發之初就是跨瀏覽器的,後來加了個 shim 讓它成為 Chrome 擴展,現在作為 Edge 擴展是雙層 shim。
一個小缺點:有了 -ms-preload 鍵的 manifest 在 Chrome 中 sideload 的時候會有 warning,所以發布插件的時候還是必須分瀏覽器發布。- 看文檔寫一個Chrome擴展
- 把所有的Chrome字樣改成msBrowser
有個這個東西
https://www.microsoft.com/zh-cn/store/p/microsoft-edge-extension-toolkit/9nblggh4txvb
不過前提是已經會chrome插件開發了。
不過看評價貌似還不支持非商店的擴展載入。考慮到微軟還沒放出api文檔,估計還得等一段時間才能好好開發。- 學習Extensions for Chrome, 了解extension包括哪些部分,各個部分的分工與限制,相互之間基本的通信方法: https://developer.chrome.com/extensions/getstarted
- 看Extensions for Microsoft Edge的文檔 Extensions - Microsoft Edge Development,了解Edge目前有哪些API沒有實現,已經實現的API有哪些known issue,看看現有的API能不能實現自己想要的功能
- 直接上手寫基於Chrome的extension,遇到問題到Newest google-chrome-extension Questions和https://groups.google.com/a/chromium.org/forum/#!forum/chromium-extensions 里搜問題和提問題 (不建議使用轉制工具的原因是轉制工具目的在於port已有的擴展,而這個問題旨在從零開始)
- 在Chrome里測試(因為目前Edge的F12 tool還不是很好用)成功後,port到Edge上,要做的工作就是將chrome.* 替換成browser.* (最早insider release的時候是msBrowser.*,現在應該已經全部改為browser.*). 或者為了保證擴展可以同時Chrome和Edge里運行,添加下面的code
if (typeof msBrowser !== undefined) {
chrome = msBrowser;
} else if (typeof browser !== undefined) {
chrome = browser;
}
- 在Edge裡面測試,其間可能遇到Edge的bug (對,這些bug並沒有在Edge文檔里體現),到這裡 Microsoft Edge Developer: Hot (667 ideas)提feedback然後嘗試一些workaround,或者到這裡提問 Newest microsoft-edge-extension Questions
- 好了可以發布了,Chrome可以直接走Store https://developer.chrome.com/extensions/packaging,Edge目前不支持第三方開發者將Extension隨意提交到store,可以考慮sideload
首先學會開發 Chrome 擴展程序。
Version:1.0 StartHTML:000000250 EndHTML:000003566 StartFragment:000003272 EndFragment:000003463 StartSelection:000003324 EndSelection:000003463 SourceURL:ms-appx-web://microsoft.microsoftedgeextensiontoolkit/Assets/htmlContent/StartPage.html Extension Convertor Tool For edge
manifest.json Could not parse manifest. Ensure manifest.json is a well formed. (comments are not allowed). Fix the issue and revalidate這個怎麼辦?
推薦閱讀:
※Win + R 能否有辦法直接打開 .url 網址文件?
※為什麼 Windows 的 explorer 新建『文件夾/文件』不允許文件名以點開始命名?
※有哪些 Windows 應用功能很少,但在同類裡面屬於出類拔萃?
※Mac虛擬機那種好啊,有沒有免費的?
※windows下命令行窗口如何提升許可權?
TAG:MicrosoftWindows | EDGE |