Opa, Leonardo! Quando vc relatou o seu problema e disse que estava executando o seu código com ionic cordova run android
sem sucesso eu imaginei que fosse esse o problema. O fato é que a documentação da Ionic CLI referente aos comandos ionic cordova run
e ionic cordova build
não deixa claro se há diferença entre eles quanto a aplicação que é executada no dispositivo. E eu mesmo não costumo utiliza o ionic cordova run
pois existe o Ionic DevApp e quando eu preciso testar uma funcionalidade nativa, faço o build nativo como te orientei.
No entanto, lendo o seu relato, principalmente no que diz respeito à mudança na forma do armazenamento e tendo em vista a documentação do Ionic referente ao Storage que diz:
When running in a native app context, Storage will prioritize using SQLite, as it's one of the most stable and widely used file-based databases, and avoids some of the pitfalls of things like localstorage and IndexedDB, such as the OS deciding to clear out such data in low disk-space situations.
When running in the web or as a Progressive Web App, Storage will attempt to use IndexedDB, WebSQL, and localstorage, in that order.
O que eu imagino que esteja acontecendo é que ao executar ionic cordova run
a Ionic CLI esteja executando uma aplicação web no dispositivo fazendo com que o recurso da câmera não funcione. E quando é executado o ionic cordova build
, aí sim a aplicação passa a ser executada em contexto nativo, fazendo com que a câmera funcione como deveria e o armazenamento mude como vc observou.
Em todo caso, realmente é um caso mto estranho e talvez seja um bug da Ionic CLI. Dessa forma, o que eu sugiro pra vc é que abra uma issue no repositório da Ionic CLI informando o ocorrido para que eles fiquem cientes. Daí se realmente for um bug eles poderão corrigir em versões futuras da ferramenta.
Qualquer coisa é só falar!
Grande abraço e bons estudos, meu aluno!