<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 自動升級 ## Contents 1. [Overview](autoupdate.html#H2-0) 2. [Update URL](autoupdate.html#H2-1) 3. [Update manifest](autoupdate.html#H2-2) 4. [Testing](autoupdate.html#H2-3) 5. [Advanced usage: request parameters](autoupdate.html#H2-4) 1. [Future work](autoupdate.html#H3-5) 6. [Advanced usage: minimum browser version](autoupdate.html#H2-6) 我們希望擴展能自動升級,理由和讓chrome自動升級一樣:修改程序bug和安全漏洞 ,增加新功能,提升性能,改善體驗。 如果你通過[Chrome Developer Dashboard](https://chrome.google.com/webstore/developer/dashboard),發布你的擴展,可以忽略此頁。你可以使用Dashboard發布更新過的版本給用戶,就像在Extensions Gallery 和Chrome Web Store面一樣。. ## 概述 * 一個擴展的manifest文件里面必須指定一個"update_url"來執行升級檢測。 * 擴展可以托管在Chrome Web Store,也可以發布到極速瀏覽器應用開放平臺上。 * 如果托管在Chrome Web Store則update_url應該是:http://clients2.google.com/service/update2/crx * 如果托管在極速瀏覽器應用開放平臺上則update_url應該是:http://upext.chrome.#/intf.php?method=ExtUpdate.query 為了能夠快速和穩定的更新升級,我們建議將擴展托管在360服務器。 **注:如果不指定update_url,在使用360同步服務的情況下安裝擴展,重啟瀏覽器后導致擴展丟失。** ## Update URL 升級url 如果將擴展托管在360服務器上,那么你需要在[manifest.json](manifest.html)文件里面加一個update_url字段,如下: ``` { "name": "My extension", ... **"update_url": "http://upext.chrome.#/intf.php?method=ExtUpdate.query"**, ... } ``` ## 升級 manifest 服務器返回的升級manifest xml格式文件看起來如下: ``` <?xml version='1.0' encoding='UTF-8'?> <gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'> <app appid='**aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa**'> ?<updatecheck?codebase='**http://myhost.com/mytestextension/mte_v2.crx**'?version='**2.0**' /> </app> </gupdate> ``` (這個xml格式是從google升級系統Omaha那邊借用過來的,具體見[http://code.google.com/p/omaha/](http://code.google.com/p/omaha/)) **appid** 屬性appid是一這個擴展的id,基于擴展的公鑰hash計算而來,在[Packaging](packaging.html)。里面介紹過,你可以找到你的擴展的id,通過**Chrome://extensions**.ackaing里面介紹過。 **codebase** 屬性codebase是crx文件的url。 **version** 這個屬性被客戶端用來判斷是否真的要從codebase下載crx文件。這個值必須和crx文件的 manifest.json里面的版本參數吻合。 一個升級manifest xml文件可以包含多個擴展的信息,通過多個app標記。 ## 測試 缺省的升級檢測頻率是每小時一次。你可以通過擴展頁面的現在立刻升級擴展來強制升級。 另外一種選擇是通過命令行參數--extensions-update-frequency來設置更加頻繁的升級間隔,單位秒。例如,每45秒檢測一次,你可以用這樣的命令行參數來運行chrome: ``` chrome.exe **--extensions-update-frequency=45** ``` 注意這個將影響所有的已經安裝的擴展,因此請斟酌這樣做帶來的帶寬和服務器負載的影響。你可能想臨時卸載你所有的擴展除了正在調試的,在正常瀏覽器使用中不應該用這個選項來運行。 ## 高級使用:請求參數 最基本的升級機制在服務端被設計的極其簡單,就是往web服務器-如apache上放就是一個靜態xml文件,然后升級這個xml文件如果你的擴展有新版本了。 高級開發者可能希望充分利用升級機制,通過往升級manifest url請求參數里面添加參數來識別擴展的id和版本,他們能使用運行在一個動態頁面來代替靜態xml以使用同一個url來控制所有的擴展的升級。 請求參數格式: ?x=&lt;extension_data&gt; 其中extension_data是一個編碼過的url字符串,其格式: id=&lt;id&gt;&v=&lt;/id&gt; 對于這個例子,說明我們有兩個已經安裝的擴展 Extension 1 with id "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" and version "1.1" Extension 2 with id "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" and version "0.4" 兩個拓展都使用同一個update_url:http://test.com/extension_updates.php 兩個請求看起來像這樣: http://test.com/extension_updates.php?x=id%3Daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%26v%3D1.1 http://test.com/extension_updates.php?x=id%3Dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%26v%3D0.4 在3.0.196.x之前的版本中有一個bug,地方在合并多個參數上。 ([http://crbug.com/17469](http://crbug.com/17469)). ### 將來的工作 雖然沒有實現,我們還是在一個獨立的請求列出多個擴展。對于上面的例子,這個請求看起來像這樣: http://test.com/extension_updates.php?x=id%3Daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%26v%3D1.1&x=id%3Dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%26v%3D0.4 如果使用同一個update_url的擴展太多,導致請求的URL太長(超過1024字符),升級檢測將發起POST請求,同時把請求參數打包在POST里面。 ## 高級使用:最小瀏覽器版本 隨著我們添加越來越多的api到擴展系統,你可能希望發布一個升級過的擴展,僅僅只允許運行在新版本的瀏覽器上。雖然chrome是自動升級的,但所有用戶升級到新版瀏覽器也需要很多天時間。為了確保一個指定的擴展升級只作用在特定的比較高的版本上,你可以添加**prodversionmin**到你的升級manifest文件里面的app標簽。例如: ``` <?xml version='1.0' encoding='UTF-8'?> <gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'> ??<app appid='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'> ?? ?<updatecheck?codebase='http://myhost.com/mytestextension/mte_v2.crx'?version='2.0' **prodversionmin='3.0.193.0'**/> ??</app> </gupdate> ``` 這個配置確保只有運行在3.0.193.0以上的用戶才升級到2.0版本的擴展。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看