部落格 RSS 訂閱

外掛程式發佈與將外掛程式移至 npm:2015 年 4 月 21 日
作者:Steve Gill
2015 年 4 月 21 日

Apache Cordova 團隊很高興宣布新的外掛程式發佈,同時我們也將核心外掛程式移至 npm

  • 我們也鼓勵第三方外掛程式開發人員開始將他們的外掛程式發佈到 npm!
  • 要開始使用來自 npm 的外掛程式,開發人員必須將他們的 Cordova CLI 更新至 5.0.0 或更高版本。請閱讀關於 Cordova CLI 5.0.0發佈部落格文章

隨著移至 npm,我們決定重新命名我們的核心外掛程式,以提高可讀性,並更好地適應 npm 生態系統。

  • 我們所有的核心外掛程式都已將其 ID 從 org.apache.cordova.* 更改為 cordova-plugin-*
  • 開發人員現在可以使用命令 cordova plugin add cordova-plugin-device 安裝外掛程式。使用新的 ID 將直接從 npm 取得外掛程式。

我們目前的 Cordova 外掛程式註冊表 (CPR) 將繼續運作至少 6 個月(2015 年 10 月 15 日),在此期間,我們會協助外掛程式開發人員轉換到 npm。這也將允許目前的 Cordova 開發人員將他們的 CLI 升級至 5.0.0 或更高版本。

  • 我們將在 2015 年 7 月 15 日CPR 切換為唯讀模式。

要在 npm 上尋找外掛程式,請搜尋 ecosystem:cordova。我們正與 npm 合作以改善可探索性,並將在今年稍後發布更多消息。我們鼓勵所有第三方外掛程式開發人員在他們外掛程式的 package.json 中新增 ecosystem:cordova 作為關鍵字。

外掛程式作者:將您的外掛程式移至 npm 的步驟

  1. 選填 決定您是否要變更您外掛程式的 id。如果您決定變更,
    1. 更新 plugin.xml 中的 id,並使用新的 id 更新您的 readme。
    2. 發送一個拉取請求,將您的新 id 和舊 id 新增至 Cordova Registry Mapper
    3. 我們將該模組整合到 Cordova CLI 中,以警告使用者在將外掛程式新增到他們的專案時使用新的 id
  2. package.json 新增至您的外掛程式,
    • 注意:為了簡化流程,請確保您 plugin.xml 中的 id 與您 package.json 中的 package-name 相同。
    • 使用 plugman createpackagejson [外掛程式目錄] 來建立 package.json
      • 這將根據您 plugin.xml 中的現有值建立預設值。
      • 它也會自動將關鍵字 ecosystem:cordova 新增到您新產生的 package.json 檔案中。
      • 此外,一個 cordova 鍵將被新增到您的 package.json 中,我們計劃在未來更新工具時使用。
    • 檢視 cordova-plugin-devicepackage.json,以查看在執行 plugman createpackagejson [外掛程式目錄] 命令後,您的 package.json 應有的外觀範例。
    • 外掛程式仍然需要一個 plugin.xml 才能安裝到 Cordova 專案中。
  3. 使用 npm publish [外掛程式目錄] 將您的外掛程式發佈到 npm

新的白名單外掛程式

我們最近發佈了 cordova-plugin-whitelistcordova-plugin-legacy-whitelist。我們已經從 cordova-android@4.0.0 開始修改了白名單的運作方式。透過此變更,現在支援設定內容安全策略 (CSP)。在沒有 cordova-plugin-whitelist 的情況下,預設會封鎖網路請求,因此即使要允許所有請求,即使您正在使用 CSP,也請安裝此外掛程式。

cordova-plugin-legacy-whitelist 允許 cordova-android@4.0.0 專案繼續使用舊的白名單方法。我們建議使用 cordova-plugin-whitelist 而非 cordova-plugin-legacy-whitelist

其他平台將在未來版本中包含對 cordova-plugin-whitelist 的支援。要了解更多關於白名單的資訊,請閱讀 cordova-android@4.0.0發佈部落格文章


今天更新了以下外掛程式

  • cordova-plugin-battery-status@1.0.0
  • cordova-plugin-camera@1.0.0
  • cordova-plugin-console@1.0.0
  • cordova-plugin-contacts@1.0.0
  • cordova-plugin-device@1.0.0
  • cordova-plugin-device-motion@1.0.0
  • cordova-plugin-device-orientation@1.0.0
  • cordova-plugin-dialogs@1.0.0
  • cordova-plugin-file@2.0.0
  • cordova-plugin-file-transfer@1.0.0
  • cordova-plugin-geolocation@1.0.0
  • cordova-plugin-globalization@1.0.0
  • cordova-plugin-inappbrowser@1.0.0
  • cordova-plugin-legacy-whitelist@1.0.1
  • cordova-plugin-media@1.0.0
  • cordova-plugin-media-capture@1.0.0
  • cordova-plugin-network-information@1.0.0
  • cordova-plugin-splashscreen@2.0.0
  • cordova-plugin-statusbar@1.0.0
  • cordova-plugin-test-framework@1.0.0
  • cordova-plugin-vibration@1.0.0

要更新您現有的外掛程式,您需要將您的 Cordova CLI 版本更新至 5.0.0。

E.g. To update your cli:

    `npm install -g cordova@5.0.0`

然後移除您舊的外掛程式,並使用新的 ID 重新新增。

E.g. To update your camera plugin:

    `cordova plugin rm org.apache.cordova.camera`
    `cordova plugin add cordova-plugin-camera`

外掛程式變更包括

cordova-plugin-battery-status@1.0.0

  • CB-8538 新增 package.json 檔案
  • CB-8683plugin-id 變更為 package-name
  • 使用 TRAVIS_BUILD_DIR,透過 npm 安裝 paramedic
  • 新增 travis.yml 以透過 paramedic 進行 CI
  • 新增了 apache/travis 徽章 - 在 INFRA 更新 GitHub 整合之前不會顯示
  • CB-8808 修正了在 Windows Phone 8.1 上通過測試的問題
  • CB-8831 Windows 為可用的 API 新增額外檢查
  • 新增 Android+FireOS 警告,告知開發人員長時間使用會耗盡電池電力
  • CB-7971Windows Phone 8.1 新增 cordova-plugin-battery-status 支援
  • CB-8659 iOS 4.0.x 相容性:移除 initWithWebView 方法的使用

cordova-plugin-camera@1.0.0

  • CB-8653 更新 Readme
  • CB-8780 使用主執行緒顯示彈出視窗。修正彈出視窗速度緩慢的問題
  • CB-8746 提升檔案相依性的版本
  • CB-8706 如果 saveToPhotoAlbum 為 true,則使用 filePicker
  • CB-8706xml 中移除不必要的功能
  • CB-8747 更新相依性,新增對等相依性
  • CB-8782 更新文件以說明 allowEdit 的怪異之處,它不是 100% 可用,但比以前好
  • CB-8782 修正流程,以便我們儲存裁剪過的影像並使用它,而不是原始未裁剪的影像。裁剪僅支援 G+ Photos Crop,其他裁剪可能會無法運作,取決於 OEM
  • CB-8740 移除在 Samsung Galaxy S3 上失敗的 FileHelper 呼叫,現在我們有了真正的路徑,我們只需要更新 MediaStore,在這種情況下不需要從中提取
  • CB-8740 部分修正了在 MobileSpec 中找到的「將影像儲存到圖庫」錯誤
  • CB-8683plugin-id 變更為 package-name
  • CB-8351 修正 integerValueForKey 的自訂實作
  • 修正 cordova-paramedic 路徑變更,使用 TRAVIS_BUILD_DIR 建立,使用 npm 安裝 paramedic
  • CB-8683 BlackBerry 更新了從 org.apache.cordova.cameracordova-plugin-camera 的參照
  • CB-8707 Windows 重構程式碼以提高可讀性
  • 文件:新增 Windows 至支援平台
  • CB-8659 iOS 4.0.x 相容性:移除已棄用標頭的使用

cordova-plugin-console@1.0.0

  • CB-8538 新增 package.json 檔案
  • CB-8683plugin-id 變更為 package-name
  • CB-8560 整合 TravisCI
  • 使用 TRAVIS_BUILD_DIR,透過 npm 安裝 paramedic
  • 文件:將 Windows8 重新命名為 Windows
  • CB-8362Windows 平台區段新增至 Console 外掛程式

cordova-plugin-contacts@1.0.0

  • CB-8538 新增 package.json 檔案
  • CB-8683plugin-id 變更為 package-name
  • CB-8561 整合 TravisCI
  • 使用 TRAVIS_BUILD_DIR,透過 npm 安裝 paramedic
  • CB-8659 iOS 4.0.x 相容性:移除 initWebView 方法的使用
  • CB-8659 iOS 4.0.x 相容性:移除已棄用標頭的使用
  • CB-8683 更新了 wp 特定舊 id 到新 id 的參照
  • CB-8604 擱置 wp8 不支援的測試,更新文件
  • CB-8395wp8 不支援的測試標示為擱置

cordova-plugin-device@1.0.0

  • CB-8538 新增 package.json 檔案
  • CB-8683plugin-id 變更為 package-name
  • 新增 travis 徽章
  • 使用 TRAVIS_BUILD_DIR,透過 npm 安裝 paramedic
  • TravisCI 新增跨外掛程式 iOS paramedic 測試執行
  • 移除已停止運作的 windows8 版本

cordova-plugin-device-motion@1.0.0

  • CB-8538 新增 package.json 檔案
  • CB-8683plugin-id 變更為 package-name,特定舊 id 到新 id 的參照
  • CB-8562 整合 TravisCI
  • 使用 TRAVIS_BUILD_DIR,透過 npm 安裝 paramedic
  • CB-8683 更新了 WindowsTizen * CB-8096 如果裝置上不存在加速計,則擱置最近新增的 spec.12
  • CB-8096 如果裝置上不存在加速計,則擱置自動測試
  • CB-8083 新增測試以確保每次都呼叫成功回呼
  • CB-8312Windows 上將加速計值乘以 -g

cordova-plugin-device-orientation@1.0.0

  • CB-8538 新增 package.json 檔案
  • CB-8683plugin-id 變更為 package-name
  • CB-8563 整合 TravisCI
  • 使用 TRAVIS_BUILD_DIR,透過 npm 安裝 paramedic
  • CB-8653 更新 Readme
  • CB-8683 更新了 WindowsTizen 特定舊 id 到新 id 的參照
  • CB-8458 修正了當沒有指南針硬體時,測試的錯誤失敗
  • CB-8659 iOS 4.0.x 相容性:移除 initWebView 方法的使用
  • CB-8659 iOS 4.0.x 相容性:移除已棄用標頭的使用
  • 強制執行非同步回呼
  • 更新外掛程式為 Windows 而非 Windows8
  • CB-8614 Windows 修復了 getCurrentHeadingwatchHeading

cordova-plugin-dialogs@1.0.0

  • CB-8538 新增 package.json 檔案
  • CB-8683plugin-id 變更為 package-name
  • CB-8565 整合 TravisCI
  • 使用 TRAVIS_BUILD_DIR,透過 npm 安裝 paramedic
  • CB-8683 更新 wp 和 bb 特定參考,將舊 id 改為新 id
  • CB-8659 iOS 4.0.x 相容性:移除已棄用標頭的使用
  • CB-8367 Windows 新增提示支援

cordova-plugin-file@2.0.0

  • CB-8538 新增 package.json 檔案
  • CB-8683plugin-id 變更為 package-name
  • CB-8567 整合 TravisCI
  • 使用 TRAVIS_BUILD_DIR,透過 npm 安裝 paramedic
  • CB-8689 修復 makeEntryForNativeUri 中的 NPE (會影響檔案傳輸)
  • 新增快取以加速 AssetFilesystem 目錄列表
  • 不要為一般例外狀況 (例如找不到檔案) 記錄堆疊追蹤
  • 調整測試,如果 deleteEntry 失敗則讓測試失敗 (而不是逾時)
  • CB-8032CDVFileSystem->makeEntryForPath:isDirectory: 新增 nativeURL 外部方法支援
  • CB-8423 更正非同步測試中 done() 的使用方式
  • CB-8459 修復因不正確的相對路徑處理導致的 spec 111 失敗
  • FileEntry 新增 nativeURL 屬性,實作 readAsArrayBufferreadAsBinaryString
  • CB-8675 還原 "CB-8351 iOS: 使用 base64EncodedStringWithOptions 而非 CordovaLib 的類別擴充"
  • CB-6428 修復未壓縮資源被複製為零長度檔案的問題
  • CB-8695 iOS 修復 asset-library URL 的 blob.slice()
  • CB-8659 iOS 4.0.x 相容性:移除 initWebView 方法的使用
  • Android 調整 build-extras.gradle 以僅讀取/寫入主要的 assets/,而非 build/
  • CB-8683 Android 修復因外掛程式重新命名而損壞的單元測試
  • CB-6428 Android 修復資源 FileEntry 的大小為 -1 的問題
  • AndroidURLforFullPath 移至基底類別 (並重新命名為 localUrlforFullPath)
  • CB-6428 Android 在 README 中提及 build-extras.gradle
  • CB-7109 Android 從主執行緒剖析引數
  • CB-8663 Android 不要通知 MediaScanner 私人檔案
  • Android 在讀取整個檔案時不要使用 LimitedInputStream (最佳化)
  • CB-6428 Android 新增從資源 -> 檔案系統複製目錄的支援
  • Android 新增 listChildren(): 可由 Java 使用的 readEntriesAtLocalURL() 版本
  • CB-6428 Android 新增 file:///android_asset URL 的支援
  • CB-8642 Android 修復內容 URI 無法與解析/複製搭配運作的問題
  • Android 確保 LocalFilesystemURL 只能使用 cdvfile URL 建立
  • AndroidCordovaResourceApi 移至 Filesystem 基底類別
  • AndroidContentFilesystem 中使用 CordovaResourceApi.mapUriToFile() 而非自己的自訂邏輯
  • Android 在 resolveLocalFileSystemURI 中使用 Uri.parse 而非手動剖析
  • Android 刪除無效的 JavaDoc (lint 錯誤)
  • Android 使用 CordovaResourceApi 而非 FileHelper
  • CB-7956 Browser 新增支援
  • CB-8849 WP8 修復 ReadAsArrayBuffer 以傳回 ArrayBuffer 而非 Array
  • CB-8819 wp8 修復 FileReader 的 readAsBinaryString
  • 文件:新增 Windows 至支援平台

cordova-plugin-file-transfer@1.0.0

  • CB-8538 新增 package.json 檔案
  • CB-8683plugin-id 變更為 package-name
  • CB-8566 整合 TravisCI
  • 使用 TRAVIS_BUILD_DIR,透過 npm 安裝 paramedic
  • CB-8746 提升檔案相依性的版本
  • CB-8583 強制下載覆寫現有目標檔案
  • CB-8589 修復伺服器回應未包含任何資料時的上傳失敗問題
  • CB-8747 更新相依性,新增對等相依性
  • CB-8407 使用 File 代理程式為下載成功回呼建構有效的 FileEntry
  • CB-8407 移除下載方法中過多的原生路徑轉換
  • CB-8429 更新版本和 RELEASENOTES.md 以發佈 0.5.0 版
  • CB-8095 修復 JSHint 和格式化問題
  • CB-8095 更新測試和文件
  • CB-8095 重寫上傳方法以正確支援進度事件
  • Android 修復 sourceUri 而非 targetUri 上未知 uri 類型時的錯誤報告
  • CB-7957 Browser 新增支援
  • CB-8641 修復測試以在 Windowswp8 上通過
  • CB-8654 在文件中註明 WP8 下載請求快取
  • CB-8590 Windows 修復 download.onprogress.lengthComputable
  • CB-8495 修復 wp8wp8.1 測試失敗

cordova-plugin-geolocation@1.0.0

  • CB-8538 新增 package.json 檔案
  • CB-8683plugin-id 變更為 package-name
  • CB-8568 整合 TravisCI
  • 使用 TRAVIS_BUILD_DIR,透過 npm 安裝 paramedic
  • CB-8681 修復偶爾發生的測試失敗
  • CB-8659 iOS 4.0.x 相容性:移除 initWebView 方法的使用
  • CB-8659 iOS 4.0.x 相容性:移除已棄用標頭的使用
  • Firefox OS 外掛程式中的錯誤參數
  • CB-8443 由於多次呼叫 done,Geolocation 測試在 Windows 上失敗
  • 文件:新增 Windows 至支援平台

cordova-plugin-globalization@1.0.0

  • CB-8538 新增 package.json 檔案
  • CB-8683plugin-id 變更為 package-name
  • CB-8569 整合 TravisCI
  • 使用 TRAVIS_BUILD_DIR,透過 npm 安裝 paramedic
  • CB-8683 更新 tizenBrowser 特定參考,將舊 id 改為新 id
  • CB-7960 Browser 新增支援
  • CB-8659 iOS 4.0.x 相容性:移除 initWebView 方法的使用
  • CB-8394Windowswp8 暫緩不支援的測試
  • plugin.xml 和文件中為 Windows8 平台新增獨立章節

cordova-plugin-inappbrowser@1.0.0

  • CB-8538 新增 package.json 檔案
  • CB-8683plugin-id 變更為 package-name
  • CB-8570 整合 TravisCI
  • 使用 TRAVIS_BUILD_DIR,透過 npm 安裝 paramedic
  • CB-4930 (前綴) InAppBrowser 應將狀態列納入考量
  • 新增停用/啟用縮放控制項的選項
  • 更新文件,將 hardwareback 預設設為 true
  • 新增 hardwareback 選項,允許硬體返回按鈕返回
  • CB-8444cordova.InAppBrowser.open 新增一個 clobber
  • CB-8444 不要 clobber window.open - 新增新的符號/clobber 來存取 open 函式 (cordova.InAppBrowser.open) 變更現有測試以使用新的符號 (即不要依賴外掛程式的 window.open clobber) - 新增測試以透過手動替換為新的符號來使用 window.open - 更新文件以棄用外掛程式的 window.open clobber
  • CB-8659 更新 InAppBrowser 以同時支援 cordova-ios 4.0.x 和 3.x
  • 更新 Android zoom=no 選項的文件
  • 將外部 Android 頁面保留在單一索引標籤中
  • CB-7961 Browser 新增支援
  • CB-8432 更正 Browser 包裝函式的樣式,使其在某些頁面上正確顯示
  • CB-7689Windows 平台新增 insertCSS 支援
  • CB-8635 改善 Windows 平台上的 UX
  • CB-8661Windows 上傳回已執行的指令碼結果
  • CB-8683 更新 WPBrowser 特定參考,將舊 id 改為新 id

cordova-plugin-media@1.0.0

  • CB-8538 新增 package.json 檔案
  • CB-8683plugin-id 變更為 package-name
  • CB-8572 整合 TravisCI
  • 使用 TRAVIS_BUILD_DIR,透過 npm 安裝 paramedic
  • CB-8746 提升檔案相依性的版本
  • CB-8747 更新相依性,新增對等相依性
  • CB-8686 移除 musicLibrary 功能
  • CB-8428 修復在未設定音訊的裝置上,媒體外掛程式測試中多次呼叫 done() 的問題
  • CB-8425 媒體外掛程式 .ctr: 根據規格要求 src 參數
  • CB-7962 新增 Browser 平台支援
  • CB-8659 iOS 4.0.x 相容性:移除已棄用標頭的使用
  • CB-8793 修復測試以在 wp8Windows 上通過
  • CB-8779 修復 wp8 上的媒體狀態報告
  • CB-8541 新增關於 Windows 上可用錄製格式的資訊
  • CB-8428 修復在沒有可用的音訊播放硬體時 Windows 上的測試
  • CB-8426Windows 平台章節新增至媒體外掛程式

cordova-plugin-media-capture@1.0.0

  • CB-8683plugin-id 變更為 package-name
  • 使用 TRAVIS_BUILD_DIR,透過 npm 安裝 paramedic
  • CB-8746 提升檔案相依性的版本
  • CB-8747 更新相依性,新增對等相依性
  • CB-8687 整合 manifest 目標
  • CB-7963 Browser 新增支援
  • CB-8659 iOS 4.0.x 相容性:移除 initWebView 方法的使用
  • CB-8571 整合 TravisCI
  • CB-8538 新增 package.json 檔案

cordova-plugin-network-information@1.0.0

  • CB-8683plugin-id 變更為 package-name
  • CB-8185 修復 cordova.platformId 中的錯字
  • 使用 TRAVIS_BUILD_DIR,透過 npm 安裝 paramedic
  • CB-8185Browser 平台上使用 navigator.onLine 作為連線資訊來源
  • CB-8659 iOS 4.0.x 相容性:移除 initWebView 方法的使用
  • CB-8573 整合 TravisCI
  • CB-8538 新增 package.json 檔案

cordova-plugin-splashscreen@2.0.0

  • CB-8538 新增 package.json 檔案
  • CB-8683plugin-id 變更為 package-name
  • CB-8574 整合 TravisCI
  • CB-8345 將啟動畫面資源的預設值設為 screen (這是範本和 CLI 假設的值)
  • 使用 TRAVIS_BUILD_DIR,透過 npm 安裝 paramedic
  • CB-8836 在動畫處理 splashscreen 後當機
  • CB-8797 iOS 新增啟動畫面偏好設定 FadeSplashScreenDurationFadeSplashScreen
  • CB-8753 Android 修復先前提交中遺失的匯入
  • CB-8753 Android 新增 SplashMaintainAspectRatio 偏好設定
  • 文件:新增 Windows 至支援平台
  • CB-7964 browser 新增支援
  • WP8 遵循設定檔中的 SplashScreenSplashScreenDelay 偏好設定
  • CB-8397 Windows 支援顯示 Windows Phone 啟動畫面

cordova-plugin-statusbar@1.0.0

  • CB-8538 新增 package.json 檔案
  • CB-8683plugin-id 變更為 package-name
  • CB-8575 整合 TravisCI
  • 使用 TRAVIS_BUILD_DIR,透過 npm 安裝 paramedic
  • 使用 StatusBarBackgroundColor 而非 AndroidStatusBarBackgroundColor,並在 readme 中新增一個怪癖
  • Android 5+ 新增 StatusBar.backgroundColorByHexString (和 StatusBar.backgroundColorByName) 的支援
  • Android 允許設定 statusbar backgroundcolor

cordova-plugin-test-framework@1.0.0

  • CB-8538 新增 package.json 檔案
  • CB-8683plugin-id 變更為 package-name
  • CB-8528 為在 jasmine 2.2.0 中移動的 jasmine.Expectation.addMatchers 新增一個 shim
  • CB-8528 更新測試框架外掛程式以使用 Jasmine 2.2.0
  • CB-8385 確保 plugin-test-framework 只觸發測試一次

cordova-plugin-vibration@1.0.0

  • CB-8538 新增 package.json 檔案
  • CB-8683plugin-id 變更為 package-name
  • CB-8576 整合 TravisCI
  • CB-7970 參考代理程式專案,而非編譯的 winmd
  • CB-7970Windows Phone 8.1 新增 cordova-plugin-vibration 支援