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