Cordova 未向 appxmanifest 文件添加功能

Cordova not adding capabilities to appxmanifest file

我正在使用 Visual Studio 2015(更新 2)构建一个使用 Apache Cordova 的应用程序。此应用程序使用 cordova-plugin-media 插件来录制音频。但是,当我尝试录制音频时,出现此错误:Access is denied.

查看 \platforms\windows 中生成的 package.windows10.appxmanifest 文件,我没有在其中看到 microphone 功能。只有一种能力:

<Capability Name="internetClient" />

所以缺少麦克风功能。但是,这是我在 windows.json:

中找到的
"config_munge": {
    "files": {
        "package.appxmanifest": {
            "parents": {
                "/Package/Capabilities": [
                    {
                        "xml": "<DeviceCapability Name=\"microphone\" />",
                        "count": 1
                    }
                ]
            }
        }
    }
}

我该怎么做才能确保将此功能正确添加到生成的清单中?注意不同的名称:package.appxmanifest in windows.json,生成的清单实际上是 package.windows10.appxmanifest.

这是 Cordova 6.1.1 和 Cordova@Windows 4.3.1.

有两种添加能力的方法:

  1. package.windows10.appxmanifest 文件的 Capabilities 标签内添加 <DeviceCapability Name="microphone" />,如下所示:

    <Capabilities>
      <Capability Name="internetClient" />
      <DeviceCapability Name="microphone" />
    </Capabilities>
    
  2. 导航到项目的根文件夹。打开命令行 window 并输入 cordova platform update windows 命令以更新 windows 平台。 <DeviceCapability Name="microphone" /> 将添加到清单文件中。

我似乎受到了 cordova-windows@4.3.1 中的 a bug 的影响,导致无法更新清单文件中的功能。

该问题已于 4 月 5 日发布的 cordova-windows@4.3.2 解决。