如何在Ionic Framework Project中添加cordova \ phonegap功能

时间:2014-12-11 11:06:44

标签: cordova plugins ionic-framework

我正在研究离子骨架(离子自身发生器)。现在我想在我的应用程序中添加一些功能(例如,本地通知,或从移动相机拍照)。我的项目中有这个文件夹结构 根

node_modules

平台(包括android)

SCSS

WWW

一些文件等,**

现在我如何在项目中添加功能。我知道cordova \ phoneGap提供了这些功能但是如何添加它以及如何在我的控制器中使用这些插件?

2 个答案:

答案 0 :(得分:2)

您可以使用ngCordova。 http://ngcordova.com/

本地通知

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

  $scope.addNotification = function () {
    $cordovaLocalNotification.add({
      id: 'some_notification_id'
      // parameter documentation:
      // https://github.com/katzer/cordova-plugin-local-notifications#further-informations-1
    }).then(function () {
      console.log('callback for adding background notification');
    });
  };

  $scope.cancelNotification = function () {
    $cordovaLocalNotification.cancel('some_notification_id').then(function () {
      console.log('callback for cancellation background notification');
    });
  };

  $scope.cancelAllNotification = function () {
    $cordovaLocalNotification.cancelAll().then(function () {
      console.log('callback for canceling all background notifications');
    });
  };

  $scope.checkIfIsScheduled = function () {
    $cordovaLocalNotification.isScheduled('some_notification_id').then(function (isScheduled) {
      console.log(isScheduled);
    });
  };

  $scope.getNotificationIds = function () {
    $cordovaLocalNotification.getScheduledIds().then(function (scheduledIds) {
      console.log(scheduledIds);
    });
  };

  $scope.checkIfIsTriggered = function () {
    $cordovaLocalNotification.isTriggered('some_notification_id').then(function (isTriggered) {
      console.log(isTriggered);
    });
  };

  $scope.getTriggeredIds = function () {
    $cordovaLocalNotification.getTriggeredIds().then(function (triggeredIds) {
      console.log(triggeredIds);
    });
  };

  $scope.notificationDefaults = $cordovaLocalNotification.getDefaults();

  $scope.setDefaultOptions = function () {
    $cordovaLocalNotification.setDefaults({ autoCancel: true });
  };

  // event callbacks events `onadd`, `ontrigger`, `onclick` and `oncancel`
  // can be assigned like this:
  $cordovaLocalNotification.onadd = function (id, state, json) {};

});

相机

module.controller('PictureCtrl', function($scope, $cordovaCamera) {

  var options = {
    quality : 75,
    destinationType : Camera.DestinationType.DATA_URL,
    sourceType : Camera.PictureSourceType.CAMERA,
    allowEdit : true,
    encodingType: Camera.EncodingType.JPEG,
    targetWidth: 100,
    targetHeight: 100,
    popoverOptions: CameraPopoverOptions,
    saveToPhotoAlbum: false
  };

  $cordovaCamera.getPicture(options).then(function(imageData) {
    // Success! Image data is here
  }, function(err) {
    // An error occurred. Show a message to the user
  });

});

答案 1 :(得分:0)

使用ngCordova是可选的,但是通过Angular DI(依赖注入)提供服务或指令可以使应用程序保持井井有条。

对于初学者,他们应该知道在普通香草中使用Cordova插件是了解IOS或Android平台本机功能使用的起点。请检查此网站http://www.plugreg.com/以检查可用的Cordova插件。