quinta-feira, 24 de março de 2016

ionic - download file

Hi,

I will show you how to download a file from an URL to the device with Ionic.

Be attention: It will only work in a real device, don't use ionic serve, ionic view, ionic live-reload, -l, phonegap build services or anything like this.

Let's go! It is very simple:

First of all, you need to install 2 plugins:

cordova plugin add org.apache.cordova.file-transfer
cordova plugin add org.apache.cordova.file

Now, you need to receive the parameter $cordovaFileTransfer:

.controller('MyCtrl', function($scope, $window, $cordovaFileTransfer) {

And here is the magic code:

function downloadFile() {
  var url = "http://www.localhost8080.com.br/site/img/portfolio-2.jpg";

  var folder = 'localhost8080/';
  var filename = url.split("/").pop();

  var targetPath = window.cordova.file.externalRootDirectory + folder + filename;

  $cordovaFileTransfer.download(url, targetPath, {}, true).then(
    function (result) {
      var myNativeURL = result.toURL());
    }, function (error) {

    }, function (progress) {

    }
  );
}

See more at:
http://www.gajotres.net/using-cordova-file-transfer-plugin-with-ionic-framework/
http://ngcordova.com/docs/plugins/fileTransfer/
https://www.thepolyglotdeveloper.com/2014/09/manage-files-in-android-and-ios-using-ionicframework/

That's it :)
Adriano Schmidt

quarta-feira, 23 de março de 2016

$http get ionic não fuciona no celular

Opa :)

Todos os meus $http.get e $http.post pararam de funcionar quando eu rodava no celular, mas no "ionic serve" estava ok... isso aconteceu depois que subi a versão do cordova...

Para resolver, foi preciso instalar esse plugin:

    cordova plugin add cordova-plugin-whitelist

Ao fazer isso, funcionou perfeitamente.

Fonte: http://stackoverflow.com/questions/30389825/angular-ionic-http-get-not-working-in-real-device-ios

Abraço!
Adriano Schmidt

terça-feira, 15 de março de 2016

has no method 'requestfilesystem'

Olá :D

Hoje no meu projeto ionic aconteceu o erro:
    has no method 'requestfilesystem'

Primeiro de tudo.. se você tentar usar o window.requestFileSystem ou qualquer plugin para acessar arquivos ou fazer download ou upload, não use de forma alguma: ionic serve, ionic view, ionic live-reload, -l, phonegap build

Esses plugins só funcionam em dispositivos reais... talvez no emulador funcione, não cheguei a testar.

Bom, se mesmo assim você ainda estiver com o erro, provavelmente você precisa instalar esse plugin:
    cordova plugin add org.apache.cordova.file

Abraço!!!
Adriano Schmidt

Device communication timed out. Try unplugging & replugging the device

Olá :D

Não estava conseguindo rodar meu projeto ionic no celular (ionic run android)

Dava esse erro da imagem (Device communication timed out. Try unplugging & replugging the device)

Tentei desplugar e plugar o celular.. reiniciei o notebook, reiniciei o celular... nada funcionou!
Teve uma época q quando dava esse erro, eu tentava mais umas 3 vezes q voltava a funcionar... agora posso tentar 1000 mil vezes q sempre dá erro...

Pelo fato de eu estar no Windows, acredito q possa ser algo do adb, alguma coisa de driver talvez....



Achei duas soluções para o problema:

Usei o Ionic View: É muito legal e fácil de usar. Você faz upload da sua app para o Ionic Apps, e no seu celular com a app do IonicView você consegue acessar todas as suas apps (Você pode testar num iphone sem ter um Mac).

Mas com o Ionic View você ainda tem as mesmas limitações do Ionic Serve... Você não consegue testar todos os plugins do Cordova por exemplo.

Então consegui rodar a minha app diretamente no celular através dos seguintes comandos:

ionic build android
adb.exe install -r platforms/android/build/outputs/apk/android-debug.apk

Se não encontrar o adb.exe coloque no seu PATH: <ANDROID_SDK>\platform-tools

Fontes:
https://www.facebook.com/groups/1558333777738228/permalink/1693011350937136/
https://www.thepolyglotdeveloper.com/2014/09/manage-files-in-android-and-ios-using-ionicframework/


É isso aí, vaaaleu!!!
Adriano Schmidt

Split MySQL

Opa :D

Eu tinha uma coluna chamada coluna_ids que continha o valor "172:536"... e eu precisava quebrar esse valor em antes e depois do sinal de dois pontos.

Para pegar o valor antes dos dois pontos eu usei:
select id from tabela where value_id = SUBSTRING_INDEX(SUBSTRING_INDEX(coluna_ids, ':', -1), ':', 1) ))

Para pegar o valor depois dos dois pontos eu usei:
select id from tabela where value_id = SUBSTRING_INDEX(SUBSTRING_INDEX(coluna_ids, ':', 1), ':', 1) ))

Fonte: https://gustavostraube.wordpress.com/2012/12/14/split-string-no-mysql/

Abraço!
Adriano Schmidt