Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Da para fazer uma aplicação com ionic e wordpress?

Da para fazer uma aplicação com ionic e wordpress? O processo seria fazer algo com o wordpress, instalar o plugin para gerar as informações em json e depois fazer uma aplicação que pegue essas informações ? Esta certo o processo? Alguém já fez algo do gênero?

6 respostas

Oi Felipe.

O backend pouco importa para o Ionic. Pode ser PHP, Node, Ruby, Java, etc.

Da uma googada que eu já vi um tutorial(em ingles) sobre essa integração que vc comentou.(Wordpress + Ionic)

solução!

Olá Felipe,

Dá para fazer sim. Fiz um app que consumia o feed do WordPress e ficou bastante funcional. O WordPress disponibiliza funções para edição de posts e de até funcionalidades da administração dele. Dá uma lida nesse link aqui: http://blog.ionic.io/ionic-and-wordpress/

opa muito obrigado, achei algumas coisas muito legais no google e no youtube sobre o tema. Um exemplo do que já foi feito. https://ionicthemes.com/product/ionwordpress-wordpress-mobile-app

Oi Felipe.

Vi um artigo sobre o assunto e lembrei de vc

http://viladosilicio.com.br/construindo-aplicacao-do-zero-com-ionic-1/

e já tem a parte 2 tbm no mesmo site

boa tarde, Lazaro muito obrigado por lembrar de mim.

Em outro tutorial eu vi um cara que esta fazendo algo muito parecido com isso.

Surgiu uma duvida sobre o app.js

nesse site que você me mando e um exemplo que eu tinha achado na net eles estão fazendo desse jeito app.js + route.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'

angular.module('appvila', ['ionic', 'menu.controller', 'posts.controller', 'posts.service'])



.run(function($ionicPlatform) {

 $ionicPlatform.ready(function() {

   if(window.cordova && window.cordova.plugins.Keyboard) {

     // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard

     // for form inputs)

     cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);



     // Don't remove this line unless you know what you are doing. It stops the viewport

     // from snapping when text inputs are focused. Ionic handles this internally for

     // a much nicer keyboard experience.

     cordova.plugins.Keyboard.disableScroll(true);

   }

   if(window.StatusBar) {

     StatusBar.styleDefault();

   }

 });

})




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

 $stateProvider



 .state('app', {

   url: '/app',

   abstract: true,

   templateUrl: 'app/menu/menu.html',

   controller: 'MenuCtrl as menuCtrl'

 })



 .state('app.posts', {

   url: "/posts",

   views: {

     'menuContent': {

       templateUrl: "app/posts/posts.html",

       controller: 'PostsCtrl as postsCtrl'

     }

   }

 });



 $urlRouterProvider.otherwise('/app/posts');



});

No padrão que você ensino você deixa separado tudo. Essa abordagem que eles fazem é correta? ou segue o ditado da matemática nessa caso a ordem dos fatores não altera os produtos?

Exemplo do curso do ionic 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'
angular.module('starter', ['ionic', 'idf.br-filters', 'ngCordova', 'ionic-datepicker'])

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

      // Don't remove this line unless you know what you are doing. It stops the viewport
      // from snapping when text inputs are focused. Ionic handles this internally for
      // a much nicer keyboard experience.
      cordova.plugins.Keyboard.disableScroll(true);
    }
    if(window.StatusBar) {
      StatusBar.styleDefault();
    }

    DatabaseValues.setup();
    DatabaseValues.bancoDeDados.transaction(function(transacao){
      transacao.executeSql('CREATE TABLE IF NOT EXISTS agendamentos (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,nome VARCHAR(300), endereco VARCHAR(300), email VARCHAR(300), dataAgendamento VARCHAR(40), modelo VARCHAR(100), preco VARCHAR(50), confirmado BOOLEAN);', [])
    });
  });
})

route.js

angular.module('starter')
.config(function($stateProvider, $urlRouterProvider){

    $urlRouterProvider.otherwise('/login');

    $stateProvider

    .state('app', {
        url : '/app',
        templateUrl : 'templates/menu.html',
        abstract : true,
        controller : 'MenuController' 
    })

    .state('app.perfil', {
        url : '/perfil',
        views : {
            'menuContent' : {
                templateUrl : 'templates/perfil.html',
                controller : 'PerfilController'
            }
        }    
    })

    .state('app.listagem', {
        url : '/listagem',
        views : {
            'menuContent' : {
                templateUrl : 'templates/listagem.html',
                controller : 'ListagemController'
            }
        }    
    })
    .state('app.agendamentos', {
        url : '/agendamentos',
        views : {
            'menuContent' : {
                templateUrl : 'templates/agendamentos.html',
                controller : 'AgendamentosController'
            }
        }    
    })

    .state('app.carroescolhido', {
        url : '/carroescolhido/:carro',
        views : {
            'menuContent' : {
                templateUrl : 'templates/carroescolhido.html',
                controller : 'CaroEscolhidoController'
            }
        }
    })
    .state('app.finalizarpedido', {
        url : '/finalizarpedido/:carro',
        views : {
            'menuContent' : {
                templateUrl : 'templates/finalizarpedido.html',
                controller : 'FinalizarPedidoController'
            }
        }

    })

    .state('login', {
        url : '/login',
        templateUrl : 'templates/login.html',
        controller : 'LoginController'
    });
})

Cara,

É sempre bom vc separar para dividir a responsabilidade. Assim a gente deixa a aplicação mais fácil de dar manutenção evolutiva e corretiva, porém você pode tudo em apenas um arquivo. Não tem um que é mais certo que o outro, é só algumas boas praticas.

Bons estudos.