quinta-feira, 22 de outubro de 2015

ionic | Missing Push Notification Entitlement

Pode acontecer se desenvolveram a vossa APP em Ionic, receberam a seguinte recomendação da depois de publicar na loja da APPLE:

Missing Push Notification Entitlement - Your app appears to include API used to register with the Apple Push Notification service, but the app signature's entitlements do not include the "aps-environment" entitlement. If your app uses the Apple Push Notification service, make sure your App ID is enabled for Push Notification in the Provisioning Portal, and resubmit after signing your app with a Distribution provisioning profile that includes the "aps-environment" entitlement. See "Provisioning and Development" in the Local and Push Notification Programming Guide for more information. If your app does not use the Apple Push Notification service, no action is required. You may remove the API from future submissions to stop this warning. If you use a third-party framework, you may need to contact the developer for information on removing the API.

Podem não fazer nada, mas se realmente quiserem resolver o aviso (warning) executem o comando:

sed -i "" -e "s/ifndef DISABLE_PUSH_NOTIFICATIONS/if 0/" {caminho para a pasta da vossa APP}/platforms/ios/{Nome da APP}/Classes/AppDelegate.m


ionic | Problemas a descarregar um objecto JSON através de HTTP no IOS 9

"ionic can't http.get on ios 9"

"App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file."

O problema que tive aconteceu apenas no IOS 9 em IOS 8 ou Android funcionava impecavelmente.  A dificuldade foi não conseguir descarregar dados JSON de um HTTP em que para isso usualmente uso o método http.get. Pelas pesquisas que fiz isto acontece realmente em endereços HTTP, se fosse HTTPS não haveria esse problema, mas de qualquer forma não testei.

Então para resolver é fazer o seguinte:

- No Xcode vão ao vosso projecto e editam o ficheiro "NomeDaAPP-info.plist" que no meu caso estava em NomeDaAPP -> Resources.

- Acrescentam:

key>NSAppTransportSecurity</key>  
     <dict>  
          <key>NSAllowsArbitraryLoads</key><true/>  
     </dict> 

Fonte:

quarta-feira, 21 de outubro de 2015

ionic | Mostrar um Loading Animation enquanto pesquisa um sitio JSON

Este pedaço de código mostra uma animação quando está a aceder a um URL para ler dados JSON. Se não encontrar esconde a animação e mostra uma mensagem "Sem Dados". Se encontrar esconde a animação e mostra os dados.



JS:

.controller('qualquercoisaController', function($scope, $http, $timeout, $ionicLoading) {

  $scope.click = function() {
    $scope.hidden_test = !$scope.hidden_test;
  };

   $ionicLoading.show({
     content: 'Loading',
     animation: 'fade-in',
     showBackdrop: true,
     maxWidth: 200,
     showDelay: 0
   });

   $timeout(function () {

     $http.get("http://qualquerCoisaComo_umUrl_jason.pt")

     .success(function(response) {
           $scope.qualquercoisa = response;
           $ionicLoading.hide();})
     .error(function(NULL) {    //Se for NULL mostra a msg Sem dados
           $scope.hidden_test = !$scope.hidden_test;
           $ionicLoading.hide();
        });
   }, 10); //tempo de delay

})



HTML:
<p ng-if="hidden_test" ng-show="!qualquercoisa.length">Sem Dados!</p>


Fonte:

ionic | Um exemplo de Infinite Scroll

Deixo-vos aqui um exemplo de uma APP com scroll infinito, ou seja, à media que se vai andando para baixo na página vão aparecendo novos itens.

segunda-feira, 5 de outubro de 2015

ionic | Plugins que dão muito jeito


Aqui fica uma lista de plugins que podem usar no ionic:

http://www.gajotres.net/useful-cordova-plugins-for-your-ionic-application-examples/

ios | Parâmetros do Apple Maps para usar em código


Aqui fica uma boa hiperligação sobre os parâmetros a usar, tais com zoom, centrar, etc.

https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html#//apple_ref/doc/uid/TP40007899-CH5-SW1

ionic | Icons com fundo transparente

Segundo alguns fóruns que li a Apple rejeita icons com fundo transparente.

Podem usar um fundo cinza claro que fica bem. Ao gerar o icon com ionic resources --icon este vai ficar automaticamente com os cantos arredondados.

Fonte:

5 razões que podem levar a Apple a rejeitar a tua APP móvel


Aqui ficam 5 razões que podem levar a Apple a rejeitar a tua APP móvel:

http://www.joshmorony.com/5-reasons-apple-might-reject-your-html5-mobile-app/

ionic | Tremeliques em transições entre views no IOS


Descarregar e guardar em js/
https://gist.github.com/IgorMinar/863acd413e3925bf282c

index.html
<script src="js/angular-ios9-uiwebview.patch.js"></script>

app.js
angular.module('myapp', ['ionic', 'ngMap', 'ngIOS9UIWebViewPatch'])



Fontes:

domingo, 4 de outubro de 2015

ionic | Devolver mensagem em caso de lista vazia


<li ng-repeat="event in events">{{event.title}}</li>
<li ng-show="!events.length">No events</li>


Fonte:

ionic | Mensagem "Sem ligação à Internet!"


Plugin:
cordova plugin add org.apache.cordova.network-information
Código:
angular.module('myApp', ['ionic'])

.run(function($ionicPlatform, $ionicPopup) {
  $ionicPlatform.ready(function() {

    // Check for network connection
    if(window.Connection) {
      if(navigator.connection.type == Connection.NONE) {
        $ionicPopup.confirm({
          title: 'No Internet Connection',
          content: 'Sorry, no Internet connectivity detected. Please reconnect and try again.'
        })
        .then(function(result) {
          if(!result) {
            ionic.Platform.exitApp();
          }
        });
      }
    }

  });
})
 

Fonte:

sexta-feira, 2 de outubro de 2015

ionic | Alguns comandos para o ionic para ter à mão

ionic info

ionic start MinhaAPP
ionic start MinhaAPP [modelo]

ionic templates -> Ver modelo disponiveis

ionic platform add [plataforma]

ionic platform remove [plataforma]

ionic emulate [plataforma]

ionic build [plataforma]

ionic run [plataforma]

ionic prepare [plataforma]

ionic run ios --device

npm install -g ionic -> Atualizar o Ionic

ionic lib update

ionic share [email]