Quantcast
Channel: Ionic Framework - Ionic Forum
Viewing all articles
Browse latest Browse all 49164

Add Cordova Social Sharing plugin in controller.js or app.js?

$
0
0

@brody182 wrote:

I want to add Cordova Social Sharing plugin to my app and using
the sample code form here in app.js http://ngcordova.com/docs/plugins/socialSharing/

it currently does not work... What am I doing wrong?

I am calling the button like this
<button ng-click="shareTwitter()" class="button icon-left button-block ion-social-twitter button-calm">Share On Twitter</button>

the social media buttons are located on this template friends.html, am I calling the right controller here?

.state('tab.friends', {
        url: '/dash/friends',
        views: {
          'tab-dash': {
        templateUrl: 'templates/friends.html',
        controller: 'DashCtrl'
      }
    }
      })

app.js
// Ionic Starter App

    // angular.module is a global place for creating, registering and retrieving Angular modules
    // 'starter' is the name of this angular module example (also set in a <body> attribute in index.html)
    // the 2nd parameter is an array of 'requires'
    // 'starter.services' is found in services.js
    // 'starter.controllers' is found in controllers.js
    angular.module('starter', ['ionic', 'starter.controllers', 'starter.services'])

    .run(function($ionicPlatform) {
      $ionicPlatform.ready(function() {
        // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
        // for form inputs)
        if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
          cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
          cordova.plugins.Keyboard.disableScroll(true);

        }
        if (window.StatusBar) {
          // org.apache.cordova.statusbar required
          StatusBar.styleDefault();
        }
      });
    })

    .config(function($stateProvider, $urlRouterProvider) {

      // Ionic uses AngularUI Router which uses the concept of states
      // Learn more here: https://github.com/angular-ui/ui-router
      // Set up the various states which the app can be in.
      // Each state's controller can be found in controllers.js
      $stateProvider

      // setup an abstract state for the tabs directive
        .state('tab', {
        url: '/tab',
        abstract: true,
        templateUrl: 'templates/tabs.html'
      })

      // Each tab has its own nav history stack:

      .state('tab.dash', {
        url: '/dash',
        views: {
          'tab-dash': {
            templateUrl: 'templates/tab-dash.html',
            controller: 'DashCtrl'
          }
        }
      })

      .state('tab.welcome', {
        url: '/dash/welcome',
        views: {
          'tab-dash': {
        templateUrl: 'templates/welcome.html',
        controller: 'DashCtrl'
      }
    }
      })

      .state('tab.transfer', {
        url: '/dash/transfer',
        views: {
          'tab-dash': {
        templateUrl: 'templates/transfer-form.html',
        controller: 'DashCtrl'
      }
    }
      })

      .state('tab.refill', {
        url: '/dash/refill',
        views: {
          'tab-dash': {
        templateUrl: 'templates/refill.html',
        controller: 'DashCtrl'
      }
    }
      })

      .state('tab.contact', {
        url: '/dash/contact',
        views: {
          'tab-dash': {
        templateUrl: 'templates/contact.html',
        controller: 'DashCtrl'
      }
    }
      })

      .state('tab.friends', {
        url: '/dash/friends',
        views: {
          'tab-dash': {
        templateUrl: 'templates/friends.html',
        controller: 'DashCtrl'
      }
    }
      })

      .state('tab.chats', {
          url: '/chats',
          views: {
            'tab-chats': {
              templateUrl: 'templates/tab-chats.html',
              controller: 'ChatsCtrl'
            }
          }
        })
        .state('tab.chat-detail', {
          url: '/chats/:chatId',
          views: {
            'tab-chats': {
              templateUrl: 'templates/chat-detail.html',
              controller: 'ChatDetailCtrl'
            }
          }
        })

      .state('tab.account', {
        url: '/account',
        views: {
          'tab-account': {
            templateUrl: 'templates/tab-account.html',
            controller: 'AccountCtrl'
          }
        }
      });

      // if none of the above states are matched, use this as the fallback
      $urlRouterProvider.otherwise('/tab/dash');

    })


 .controller('DashCtrl', function($scope, $cordovaSocialSharing) {

    $scope.shareTwitter = function() {
      $cordovaSocialSharing
        .shareViaTwitter(message, image, link)
        .then(function(result) {
          // Success!
        }, function(err) {
          // An error occurred. Show a message to the user
        });
      };

    $scope.shareFacebook = function() {
      $cordovaSocialSharing
        .shareViaFacebook(message, image, link)
        .then(function(result) {
          // Success!
        }, function(err) {
          // An error occurred. Show a message to the user
        });
    };

    $scope.shareSMS = function() {
      // access multiple numbers in a string like: '0612345678,0687654321'
      $cordovaSocialSharing
        .shareViaSMS(message, number)
        .then(function(result) {
          // Success!
        }, function(err) {
          // An error occurred. Show a message to the user
        });
      };

    $scope.shareFacebook = function() {
    // toArr, ccArr and bccArr must be an array, file can be either null, string or array
      $cordovaSocialSharing
        .shareViaEmail(message, subject, toArr, ccArr, bccArr, file)
        .then(function(result) {
          // Success!
        }, function(err) {
          // An error occurred. Show a message to the user
        });
    };

      // $cordovaSocialSharing
      //   .canShareViaEmail()
      //   .then(function(result) {
      //     // Yes we can
      //   }, function(err) {
      //     // Nope
      //   });

    });

controller.js

angular.module('starter.controllers', [])

.controller('DashCtrl', function($scope) {})

.controller('ChatsCtrl', function($scope, Chats) {
  // With the new view caching in Ionic, Controllers are only called
  // when they are recreated or on app start, instead of every page change.
  // To listen for when this page is active (for example, to refresh data),
  // listen for the $ionicView.enter event:
  //
  //$scope.$on('$ionicView.enter', function(e) {
  //});

  $scope.chats = Chats.all();
  $scope.remove = function(chat) {
    Chats.remove(chat);
  };
})

.controller('ChatDetailCtrl', function($scope, $stateParams, Chats) {
  $scope.chat = Chats.get($stateParams.chatId);
})

.controller('AccountCtrl', function($scope) {
  $scope.settings = {
    enableFriends: true
  };
});

Posts: 1

Participants: 1

Read full topic


Viewing all articles
Browse latest Browse all 49164

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>