我有一个Cordova应用程序(针对Android和iOS编写),在一定的安全性调整一个月后,一直在使用相当数量的用户或两个前。现在随着更新的10.1升级(目前在10.1.1上测试),我发现调用视频捕获功能的尝试完全崩溃了Cordova,没有任何从JS角度进行调试的选项。 Android方面没有问题。这只是对iOS的最新更新,并没有代码或插件更新或更改。
我们使用最新的cordova-plugin-media-capture plugin,v1.4.0和ngCordova。打电话给这个插件,通过$cordovaCapture.captureImage
拍摄照片在iOS 10.1.1中正常工作。这只是拨打电话$cordovaCapture.captureVideo
,它完全立即崩溃科尔多瓦。我已经看过Xcode,以防有任何新的或者失控的设置,并且一切看起来都正确,因此欢迎任何关于解决这个问题的建议。
早些时候(一个月或两个月前),我们解决了使用科尔多瓦 - 插件的设置挂机插件与这些iOS的设置(如图片段)config.xml中的新的iOS 10权限问题:
<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
})
希望其他人管理,以解决同样的问题,并愿意分享的解决方法。
FYI应用程序最初使用Cordova v6.2.0。我升级到最新的v6.4.0并重新测试,但获得相同的iOS问题。 –
对于两位亲切地建议我看麦克风权限的人。我已经深入挖掘,这似乎是它崩溃的原因(来自崩溃报告)。因为我的config.xml设置都包含在内,所以必须将某些东西搞砸,并且我也可以在Xcode上看到原因字符串是目前,但该应用程序似乎并没有它。 –
尝试将话筒设置保存在config.xml中,然后'cordova clean ios'然后重建并运行。诀窍,我现在可以再次录制视频。所以根本问题是麦克风设置,但在构建过程中还有其他问题。 –