【发布时间】:2016-12-07 00:47:01
【问题描述】:
我有一个 Cordova 应用程序(为 Android 和 iOS 编写),在生产中运行良好,有相当多的用户,包括在一两个月前进行必要的安全调整后的 iOS 10.0。现在随着最近的 10.1 升级(目前在 10.1.1 上进行测试),我发现调用视频捕获功能的尝试完全使 Cordova 崩溃,没有任何从 JS 角度进行调试的选项。 Android端没有问题。这只是对 iOS 的最新更新,没有代码或插件更新或更改。
我们正在使用最新的 cordova-plugin-media-capture 插件 v1.4.0 和 ngCordova。调用此插件通过$cordovaCapture.captureImage 拍照在 iOS 10.1.1 中工作正常。这只是对$cordovaCapture.captureVideo 的调用,它完全立即使 Cordova 崩溃。我查看了 Xcode,以防有任何新的或不正常的设置,并且一切似乎都是正确的,因此欢迎任何有关解决此问题的建议。
早些时候(一两个月前)我们使用 cordova-plugin-settings-hook 插件解决了新的 iOS 10 权限问题,并在配置中使用了这些 iOS 设置(显示为 sn-p) .xml:
<platform name="ios">
<config-file parent="NSLocationWhenInUseUsageDescription" platform="ios" target="*-Info.plist">
<string>Reason goes here...</string>
</config-file>
<config-file parent="NSCameraUsageDescription" platform="ios" target="*-Info.plist">
<string>Reason goes here....</string>
</config-file>
<config-file parent="NSPhotoLibraryUsageDescription" platform="ios" target="*-Info.plist">
<string>Reason goes here...</string>
</config-file>
我使用 Xcode 确认了这些设置。我们实际调用时传入的参数如下:
$cordovaCapture.captureVideo
({
limit: 1, // how many clips to record (iOS must be 1)
duration: 300 // maximum length (in seconds) = 5 minutes
})
希望其他人设法解决了同样的问题并愿意分享解决方法。
【问题讨论】:
-
仅供参考的应用程序最初使用的是 Cordova v6.2.0。我升级到最新的 v6.4.0 并重新测试,但遇到相同的 iOS 问题。
-
请两位建议我查看麦克风权限。我已经深入挖掘,这似乎是它崩溃的原因(来自崩溃报告。)必须在某个地方搞砸了,因为我包含了你的 config.xml 设置,而且我也可以在 Xcode 上看到原因字符串是存在,但该应用似乎没有它。
-
尝试将麦克风设置保留在 config.xml 中,然后
cordova clean ios然后重建并运行。成功了,我现在可以再次录制视频了。所以根本问题是麦克风设置,但在构建过程中还有其他问题。
标签: cordova cordova-plugins ios10 video-capture ngcordova