IOS的Cordova Media Capture CaptureImage崩溃

时间:2018-11-28 14:34:26

标签: javascript cordova

此应用运行良好,大约在3周前发布在应用商店上。但是,现在当我使用Cordova媒体captureImage功能时,它最终会黑屏并强制退出。

我实际上可以拍张照片,只有当我单击“使用照片”时,它才会崩溃。

我可以很好地录制和使用视频,这也让我感到困惑。

我很困惑为什么它突然停止工作? 同样,相同的代码也可用于android,效果很好。

我必须通过上传才能进行飞行测试,所以我没有选择USB调试的方法。

科尔多瓦版本: 8.1.2(cordova-lib@8.1.1)

XCode:版本10.1(10B61)

有人对我如何解决此问题有任何建议吗?

我已经为权限添加了适当的配置更改。

<edit-config file="*-Info.plist" mode="merge" target="NSCameraUsageDescription">
  <string>My Reason..</string>
</edit-config>
<edit-config file="*-Info.plist" mode="merge" target="NSMicrophoneUsageDescription">
  <string>My Reason..</string>
</edit-config>
<edit-config file="*-Info.plist" mode="merge" target="NSPhotoLibraryUsageDescription">
  <string>My reason ..</string>
</edit-config>

这是我的JavaScript:

function takePicture(filePreview, multiUpload) {
  var captureSuccess = function(mediaFiles) {
    var i, path, len;
    for (i = 0, len = mediaFiles.length; i < len; i += 1) {
      path = mediaFiles[i].fullPath;
      if (filePreview !== null) {
        var image = document.getElementById(filePreview);
        image.src = path;
      }
    }
  };

  // capture error callback
  var captureError = function(error) {
    //alert("oops");
  };

  // start image capture
  if (multiUpload) {
    navigator.device.capture.captureImage(captureSuccess, captureError, {
      limit: 5
    });
  } else {
    navigator.device.capture.captureImage(captureSuccess, captureError, {
      limit: 1
    });
    return;
  }
}

1 个答案:

答案 0 :(得分:2)

它可能已删除了您的权限,但是请检查以确保您的info.plist文件中仍具有NSCameraUsageDescription,NSMicrophoneUsageDescription和NSPhotoLibraryUsageDescriptionentry。由于某种原因,当我更新项目时,它已经为我删除了它。