我一直在爲我的公司開發和維護一個Chrome擴展程序,其中每位客戶都會在代碼中分配一個唯一的ID。我們一直在使用該ID來確定許可證狀態並登錄我們的服務(按月收費收費的延期付款)。Chrome網上應用店的擴展程序的用戶特定版本
到目前爲止,我們自己託管了擴展文件,併爲每個客戶擴展都有獨特的更新URL。這很好,很簡單;去我們的網站,點擊安裝,你就完成了。然而,在最新的Chrome版本中,Google的這一安裝過程受到阻礙,因爲他們現在要求用戶通過將CRX文件拖放到chrome:// chrome/extensions/tab來安裝擴展。當然,除非你的擴展,可通過Chrome網上應用店 - 這使我的問題:
- 我們不想拖放CRX安裝 - 需要網上商店。
- 我們不希望Web Store上的擴展的多個版本(每個客戶一個),因爲每次我們更新擴展時,這都是一個維護地獄。
- 我們不想使用網上應用店授權,因爲:
- 它需要OpenID登錄。
- 我們向許多學生出售學校支付學費的擴展 - 而不是學生。
- 我們不希望將我們的付款方式鎖定到一個瀏覽器,即我們希望能夠通過我們或服務器維持許可和付款。
- 我們不希望用戶輸入許可證密鑰,因爲數千名學生不得不輸入密鑰的風險太大 - 還需要某種存儲器(cookies/localStorage)被清除,需要再次輸入許可證密鑰。
我不是100%肯定,我的發言是完全正確的,所以不吝賜教我,如果我錯過了什麼。
如果是這樣,問題是我們是否可以通過Web商店(使用唯一ID)爲每個客戶定製擴展程序,而無需爲每個ID發佈一個擴展?
作爲一個側面問題,任何可能解決與另一種方法的問題的答案也將被接受。
關於localStorage:您的應用程序的localStorage不會被清除,除非您的應用程序執行此操作(您將知道發生了什麼並且可以正確處理它),或者您的用戶從JS控制檯執行它(在這種情況下他會知道它打破了,因爲他在JS控制檯上瞎忙)。應用程序localStorage永遠不會被瀏覽器任意清除 - 即使用戶擦除了所有localStorage(https://code.google.com/p/chromium/issues/detail?id=36550)(請注意鏈接的bug被標記爲「WontFix」)。然而,數千名學生輸入許可證密鑰是另一個問題。 – apsillers 2012-08-06 13:35:55