0

我正在使用离子(新用户),我需要一些插件。我遇到了麻烦,为什么我想使用 ngcordova 而不是使用以下步骤直接使用 cordova 插件?

例如,为了能够捕捉视频,我可以使用 ngcordova 插件:

$ cordova plugin add cordova-plugin-media-capture

///////////////////////////////////////// ///////////////////////////////////////// ///////////////////////////////////////// ///////////////

module.controller('MyCtrl', function($scope, $cordovaCapture) {


  $scope.captureVideo = function() {
    var options = { limit: 3, duration: 15 };

    $cordovaCapture.captureVideo(options).then(function(videoData) {
      // Success! Video data is here
    }, function(err) {
      // An error occurred. Show a message to the user
    });
  }

});

或者我可以直接使用cordova插件:

$ cordova plugin add cordova-plugin-media-capture

///////////////////////////////////////// ///////////////////////////////////////// ///////////////////////////////////////// ///////////////

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
    navigator.device.capture.captureVideo(
            CaptureCB captureSuccess, CaptureErrorCB captureError,[CaptureVideoOptions options]
        );
}

然后我试图了解直接在插件上使用 ngcordova 有什么好处?直接使用插件会不会更好,因为如果你需要它并且没有抽象,你总是可以拥有最新的代码?

4

3 回答 3

1

因为当您使用 angularjs 时,它使使用 Cordova 插件变得更加容易。

使用 ngCordova,您无需直接调用 Cordova 插件并确定正确的对象或插件名称,或者检查插件是否实际安装,您只需调用一个简单的 AngularJS 服务,如下所示:

$cordovaCamera.getPicture(options)
  .then(function(imageData) {

    // Process camera data

  }, function(error) {

    // Show an error to the user

  });

你可以在这里查看详细信息,http://blog.ionic.io/ng-cordova/

于 2015-07-10T13:56:35.647 回答
1

ngCordova 是一个框架,它使原生 Cordova API 作为 AngularJS 服务可用。

来源

因此,如果没有 ngCordova,您将直接通过“普通 JS”访问 Cordova 库。ngCordova 以对 Angular 友好的方式封装了这个库。

你可能会争辩说,如果你在 Angular 中使用原始 Cordova(不是 ng-cordova),你应该将你的 Cordova 调用包装在一个服务中。这本质上是“重新发明轮子”,因为已经为此目的提供了 ng-cordova。:)

于 2016-08-15T21:46:44.087 回答
0

如果您使用 typescript,请注意 ngcordova 没有 typescript 类型,并且它们的函数签名有时会与 cordova 函数签名不同。

于 2016-03-31T20:46:02.853 回答