博客 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 更新您的自述文件。
    2. 发送拉取请求,将您的新 id 和旧 id 添加到 Cordova Registry Mapper
    3. 我们将该模块集成到 Cordova CLI 中,以警告用户在将插件添加到其项目时使用新的 id
  2. package.json 添加到您的插件,
    • 注意:为了保持简单,请确保 plugin.xml 中的 idpackage.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。我们已经改进了从 [email protected] 开始的白名单工作方式。通过此更改,现在支持设置内容安全策略 (CSP)。默认情况下,在没有 cordova-plugin-whitelist 的情况下会阻止网络请求,因此即使允许所有请求,甚至在您使用 CSP 时,也要安装此插件。

cordova-plugin-legacy-whitelist 允许 [email protected] 项目继续使用旧的白名单方法。我们建议使用 cordova-plugin-whitelist 而不是 cordova-plugin-legacy-whitelist

其他平台将在未来的版本中支持 cordova-plugin-whitelist。要了解有关白名单的更多信息,请阅读 [email protected] 发布博客文章


以下插件今天已更新


要更新您现有的插件,您需要将 Cordova CLI 的版本更新到 5.0.0。

E.g. To update your cli:

    `npm install -g [email protected]`

然后删除您的旧插件并使用新的 ID 重新添加它。

E.g. To update your camera plugin:

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

插件更改包括

[email protected]

  • 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-7971 添加对 Windows Phone 8.1cordova-plugin-battery-status 支持
  • CB-8659 iOS 4.0.x 兼容性:删除 initWithWebView 方法的使用

[email protected]

  • CB-8653 更新的自述文件
  • CB-8780 使用主线程显示弹出窗口。 修复了弹出窗口的缓慢问题
  • CB-8746 提高了文件依赖项的版本
  • CB-8706 如果 saveToPhotoAlbum 为 true,则使用 filePicker
  • CB-8706xml 中删除不必要的功能
  • CB-8747 更新了依赖项,添加了对等依赖项
  • CB-8782 更新了文档以讨论 allowEdit 怪癖,它不是 100% 工作,但比以前好
  • CB-8782 修复了流程,以便我们保存裁剪后的图像并使用它,而不是原始未裁剪的图像。 裁剪仅支持 G+ 照片裁剪,其他裁剪可能无法工作,具体取决于 OEM
  • CB-8740 删除了在三星 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 兼容性:删除已弃用标头的使用

[email protected]

  • CB-8538 添加了 package.json 文件
  • CB-8683plugin-id 更改为 package-name
  • CB-8560 集成 TravisCI
  • 使用 TRAVIS_BUILD_DIR,通过 npm 安装 paramedic
  • 文档:将 Windows8 重命名为 Windows
  • CB-8362Windows 平台部分添加到 Console 插件

[email protected]

  • 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 更新了旧 id 到新 id 的 wp 特定引用
  • CB-8604 挂起对 wp8 的不支持的测试,更新了文档
  • CB-8395 将不支持的测试标记为在 wp8 上挂起

[email protected]

  • CB-8538 添加了 package.json 文件
  • CB-8683plugin-id 更改为 package-name
  • 添加 travis 徽章
  • 使用 TRAVIS_BUILD_DIR,通过 npm 安装 paramedic
  • 添加跨插件 iOS paramedic 测试,以便为 TravisCI 运行
  • 删除已失效的 windows8 版本

[email protected]

  • 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

[email protected]

  • CB-8538 添加了 package.json 文件
  • CB-8683plugin-id 更改为 package-name
  • CB-8563 集成 TravisCI
  • 使用 TRAVIS_BUILD_DIR,通过 npm 安装 paramedic
  • CB-8653 更新的自述文件
  • CB-8683 更新了旧 id 到新 id 的 WindowsTizen 特定引用
  • CB-8458 修复了在罗盘硬件不可用时测试的错误失败
  • CB-8659 iOS 4.0.x 兼容性:删除 initWebView 方法的使用
  • CB-8659 iOS 4.0.x 兼容性:删除已弃用标头的使用
  • 强制异步回调
  • 更新插件为 Windows 而不是 Windows8
  • CB-8614 Windows 修复了 getCurrentHeadingwatchHeading

[email protected]

  • CB-8538 添加了 package.json 文件
  • CB-8683plugin-id 更改为 package-name
  • CB-8565 集成 TravisCI
  • 使用 TRAVIS_BUILD_DIR,通过 npm 安装 paramedic
  • CB-8683 更新了旧 id 到新 id 的 wp 和 bb 特定引用
  • CB-8659 iOS 4.0.x 兼容性:删除已弃用标头的使用
  • CB-8367 Windows 添加提示支持

[email protected]

  • CB-8538 添加了 package.json 文件
  • CB-8683plugin-id 更改为 package-name
  • CB-8567 集成 TravisCI
  • 使用 TRAVIS_BUILD_DIR,通过 npm 安装 paramedic
  • CB-8689 修复了 makeEntryForNativeUri 中的 NPE(影响文件传输)
  • 添加缓存以加速 AssetFilesystem 目录列表
  • 不要记录正常异常的堆栈跟踪(例如,找不到文件)
  • 调整测试,使其在 deleteEntry 失败时失败(而不是超时)
  • CB-8032 添加 nativeURL 外部方法支持 CDVFileSystem->makeEntryForPath:isDirectory:
  • 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 修复 assets FileEntry 大小为 -1 的问题
  • AndroidURLforFullPath 移动到基类 (并重命名为 localUrlforFullPath)
  • CB-6428 Android 在 README 中提及 build-extras.gradle
  • CB-7109 Android 在主线程之外解析参数
  • CB-8663 Android 不要通知 MediaScanner 私有文件
  • Android 读取整个文件时不要使用 LimitedInputStream (优化)
  • CB-6428 Android 添加从 assets -> 文件系统复制目录的支持
  • Android 添加 listChildren():Java 可使用的 readEntriesAtLocalURL() 版本
  • CB-6428 Android 添加对 file:///android_asset URL 的支持
  • CB-8642 Android 修复内容 URI 无法使用 resolve / copy 的问题
  • 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 添加到受支持的平台

[email protected]

  • 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 为 0.5.0 版本更新版本和 RELEASENOTES.md
  • CB-8095 修复 JSHint 和格式化问题
  • CB-8095 更新测试和文档
  • CB-8095 重写上传方法以正确支持进度事件
  • Android 修复 sourceUri 上未知 uri 类型的错误报告,而不是 targetUri
  • CB-7957 Browser 添加支持
  • CB-8641 修复测试以在 Windowswp8 上通过
  • CB-8654 在文档中记录 WP8 下载请求缓存
  • CB-8590 Windows 修复 download.onprogress.lengthComputable
  • CB-8495 修复 wp8wp8.1 测试失败

[email protected]

  • 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,地理定位测试在 Windows 上失败
  • 文档:将 Windows 添加到受支持的平台

[email protected]

  • 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-8394 暂停 Windowswp8 的不支持的测试
  • plugin.xml 和文档中为 Windows8 平台单独设置章节

[email protected]

  • 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) 更改现有测试以使用新符号 (即,不要依赖插件 clobber window.open) - 添加测试以通过手动替换为新符号来使用 window.open - 更新文档以弃用插件 clobber window.open
  • 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 平台上的用户体验
  • CB-8661 返回 Windows 上执行的脚本结果
  • CB-8683 更新 WPBrowser 中特定于旧 ID 的引用为新 ID

[email protected]

  • 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-8426 向媒体插件添加 Windows 平台部分

[email protected]

  • CB-8683plugin-id 更改为 package-name
  • 使用 TRAVIS_BUILD_DIR,通过 npm 安装 paramedic
  • CB-8746 提高了文件依赖项的版本
  • CB-8747 更新了依赖项,添加了对等依赖项
  • CB-8687 合并清单目标
  • CB-7963 Browser 添加支持
  • CB-8659 iOS 4.0.x 兼容性:删除 initWebView 方法的使用
  • CB-8571 集成 TravisCI
  • CB-8538 添加了 package.json 文件

[email protected]

  • 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 文件

[email protected]

  • 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 启动画面

[email protected]

  • CB-8538 添加了 package.json 文件
  • CB-8683plugin-id 更改为 package-name
  • CB-8575 集成 TravisCI
  • 使用 TRAVIS_BUILD_DIR,通过 npm 安装 paramedic
  • 使用 StatusBarBackgroundColor 而不是 AndroidStatusBarBackgroundColor,并在自述文件中添加了一个怪癖
  • Android 5+ 添加对 StatusBar.backgroundColorByHexString (和 StatusBar.backgroundColorByName) 的支持
  • Android 允许设置 statusbar backgroundcolor

[email protected]

  • CB-8538 添加了 package.json 文件
  • CB-8683plugin-id 更改为 package-name
  • CB-8528jasmine 2.2.0 中移动的 jasmine.Expectation.addMatchers 添加一个 shim
  • CB-8528 更新测试框架插件以使用 Jasmine 2.2.0
  • CB-8385 确保 plugin-test-framework 只触发一次测试

[email protected]

  • CB-8538 添加了 package.json 文件
  • CB-8683plugin-id 更改为 package-name
  • CB-8576 集成 TravisCI
  • CB-7970 引用代理项目而不是编译后的 winmd
  • CB-7970Windows Phone 8.1 添加 cordova-plugin-vibration 支持