为什么要用ngcordova?

时间:2015-06-23 18:48:31

标签: cordova ionic ngcordova

我正在使用离子(新用户),我需要一些插件。我有麻烦为什么我想使用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有什么好处?插件会不会更好,因为如果你需要它,你可以随时拥有最新的代码并且没有抽象?

3 个答案:

答案 0 :(得分: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/

答案 1 :(得分:1)

  

ngCordova是一个框架,它使本机Cordova API可用作AngularJS服务。

Source

因此,如果没有ngCordova,您将通过“plain JS”直接访问Cordova库。 ngCordova以一种Angular友好的方式包装库。

你可以争辩说,如果你在Angular中使用原始的Cordova(不是ng-cordova),你应该将你的Cordova电话包裹在服务中。这基本上是“重新发明轮子”,因为为此目的提供了ng-cordova。 :)

答案 2 :(得分:0)

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