2011-05-04 119 views
5

我在崗位上工作的關係與此頁自動安裝Google Chrome擴展程序將無法使用!

我寫道,試圖自動安裝一個Chrome擴展一個NSIS腳本。 (爲什麼?因爲我們的擴展可以通過複選框與另一產品安裝流程一起提供,那麼如果用戶選擇我們的擴展來添加,它會自動安裝在使用NSIS靜默安裝的用戶瀏覽器上)

我試過很多場景和我需要幫助,在谷歌的網站,他們說,你能做到這一點

  • 使用偏好JSON文件
  • 使用Windows註冊表

他們也說,「使用首選項文件」有一個bug(窗口提示:在錯誤41902是固定的,你可能需要使用Windows註冊表而不是喜好文件)

提醒: 一個擴展,是自動安裝被稱爲外部擴展

  • 所以,我想「使用Windows註冊表」

要通過註冊表中添加一個谷歌的Chrome擴展:

  • 添加此鍵: 「HKEY_LOCAL_MACHINE \ SOFTWARE \谷歌\瀏覽器\擴展(我的分機號)」
  • 添加 「路徑」 的路徑到的.crx
  • 添加 「版本」 與擴展

這個版本是我嘗試(使用NSIS腳本):

  • 如果我添加一個註冊表項 它將安裝擴展名,但如果用戶手動卸載,chrome將打開黑名單標誌,並且擴展名不能用任何其他腳本重新安裝。剩下的唯一方法是用戶手動安裝。最糟糕的是,如果用戶手動安裝並手動卸載(它將關閉黑名單標誌),並且當Chrome重啓時,它將自動重新安裝擴展(無需任何用戶操作),因爲註冊表項仍然存在。

  • 如果我在啓動或關閉瀏覽器時通過一種奇怪的方式(在crx中使用dll(NPAPI))刪除註冊表項,chrome將在瀏覽器重新啓動時自動刪除擴展目錄。

  • 如果我設法在用戶卸載擴展時刪除註冊表項。我們被列入黑名單,所以自動安裝程序將不再工作,直到用戶通過手動安裝&來關閉黑名單標誌爲止。

  • 如果我創造「目錄C:\用戶\(用戶名)\應用程序數據\本地\谷歌\鍍鉻\用戶數據\ DEFAULT \擴展\(的extensionID)\(版)_0 \(我的文件這裏)「,我遇到了很多麻煩,因爲Chrome會在重新啓動瀏覽器後立即刪除我的文件。

有沒有人遇到過這個問題,以及需要做些什麼。 我會嘗試使用JSON文件,但直到錯誤沒有解決,註冊表纔是唯一的方法。

感謝任何有時間閱讀這些內容的人! 任何幫助將不勝感激,謝謝!

+0

我剛剛嘗試使用JSON文件,它具有與註冊表完全相同的行爲。行爲完全一樣。它只是「外部擴展」的不同來源。 – developerGuile 2011-05-04 18:43:03

回答

2

[2013年11月11日]
[對這個問題的是即將成爲過時的答案,所以這裏是一個更先進的最新答案。]


根據recent post Chromium博客上的,自動安裝Chrome擴展程序不會在不久的將來,一個選項:

從2014年1月開始,Windows穩定版和測試版渠道需要在Chrome網上應用店中託管所有擴展程序

作爲替代,開發商和供應商將能夠使用內嵌安裝功能:

如果您的擴展Chrome網上應用店外目前託管您應該遷移它們儘快。對您的用戶不會有任何影響,他們仍然可以使用您的擴展程序,就像沒有任何更改一樣。如果您願意,您可以將擴展程序隱藏在網上商店列表中。如果您從自己的網站獲得專用安裝流程,則可以使用現有的內聯安裝功能。


所以,基本上,你需要做的是:

  1. 主機您的Chrome網上應用店(optionaly保持它從列表隱藏)擴展。
  2. 讓您的安裝程序打開指向您網站上的網頁的Chrome瀏覽器窗口。
  3. 在該頁面上有用戶啓動延伸安裝過程所需的全部信息和數據。 (這裏的關鍵概念是用戶必須啓動安裝過程,例如,通過點擊按鈕

如何內嵌安裝工作:

的要在其上進行內聯安裝的網站上的HTML頁面必須在引用用戶可以安裝的項目的部分中包含一個或多個標籤。每個標籤必須具有以下格式:

<link rel="chrome-webstore-item" href="https://chrome.google.com/webstore/detail/itemID"> 

要真正開始在線安裝,chrome.webstore.install(URL,successCallback,failureCallback)函數必須被調用。 該功能只能響應用戶手勢調用,例如在點擊事件處理程序中;如果不是,則會拋出異常。

(重點煤礦)的inline installs feature

更多信息。

0

還有一個更簡單的方法...當單擊該複選框,請從background page此代碼:既可以託管在

chrome.tabs.create({ url:"FILEPATH.crx" }); 

要安裝的預期擴展(.crx檔案)網或可以是你原來的擴展名的文件夾裏面......你需要tabs許可,您manifest

+3

但他不能在第一個地方安裝任何擴展? – Tobias 2011-12-06 23:02:47

0

「Windows應用程序開發人員應該要求用戶從Chrome瀏覽器中安裝Chrome瀏覽器擴展。一個偉大的方式,讓用戶安裝Chrome擴展程序與您的Windows應用程序相關的nsion是將用戶鏈接到您的網站並使用inline installation。「

也看到完整的blog post

+0

我注意到博客文章的鏈接存在問題 - 修復了它。這應該解釋一切。 – idleberg 2013-07-24 11:45:42