Showing posts with label CORDOVA. Show all posts
Showing posts with label CORDOVA. Show all posts

Saturday, June 24, 2017

Using Storage in Ionic 3

Ionic’s LocalStorage is now called simply Storage in Ionic 3 and behind the scenes Storage decides the best method to store the data. On mobile phones for example, SQLite is the preferred storage method. IndexedDB, WebSQL or localstorage is used in browsers for Progressive Web Apps.


InstallationFirst, install the SQLite Cordova plugin with this command:$ cordova plugin add cordova-sqlite-storage --save


Then install Storage. You can skip this step if you’re using a version or Ionic 3 greater than RC0, because Storage is now included automatically: $ npm install --save @ionic/storage


Importing + InjectingImport it in the appropriate module, the app root module for example:Module: app.module.tsimport { Storage } from '@ionic/storage'; @NgModule({ ... providers: [ Storage ] }) @NgModule({ ... providers: [ Storage ]})@NgModule({ ... providers: [ Storage ]})@NgModule({ ... providers: [ Storage ]})


Then inject it in the components that need it:Component: team.tsimport { Storage } from '@ionic/storage'; export class TeamPage {  constructor(public navCtrl: NavController, public storage: Storage) { }


UsageNow you’re ready to start using Storage’s set, get and remove methods. Let’s use a simple example where we have three methods, one that sets a team as a favorite, one that removes the team from the favorites and one that checks if a team is a favorite:Component: team.ts


fav() { this.storage.set(`team ${ this.teamId }`, this.teamName);
this.favorite = true; }
removeFav() { this.storage.remove(`team ${ this.teamId }`); this.favorite = false; }
isFav() { this.storage.get('team ' + this.teamId).then((value) => { value ? this.favorite = true : this.favorite = false

}).catch(() => this.favorite = false); }In that example, the isFav method can be used in the ionViewWillEnter page lifecycle hook to determine if a team is already a favorite. 


 

Monday, March 27, 2017

UPDATE IONIC-CLI AND CORDOVA - ionic2


The first thing you probably want to do is make sure Ionic-CLI and Cordova are up to date:
 
1
npm install -g cordova ionic@beta
 
This line will also install both frameworks from scratch if you don’t have previous installations.
 
For the next step, you need to be inside a project folder.

UPDATE IONIC 2 PROJECT

 
Warning: Backup your project before you do this next step.
 
I bet a lot of you have a previous experience with Ionic v1. Back then, Ionic v1 was updated using this line:
 
1
ionic lib update
 
This solution no longer works. Ionic v1 used bower under the hood; Ionic v2 is moving away from this approach.
 
New solution requires us to know current Ionic v2 version. To find this information, open an official Ionic Framework npm page, look at the right side, you’ll find it there:
 
Ionic 2 npm page
 
This value should be a current Ionic 2 Framework version.
 
Let’s get back to our local project. Find a local version of package.json, search for a dependencies section, and update ionic-framework parameter value.
 
If Ionic 2 is still in alpha status, prior to doing next step, you may want to remove the ionic-framework folder from node_modules folder.
 
Update your project using this line:
 
1
npm install
 
 
While manually updating Ionic 2 settings, you can’t know if a newly updated version also requires additional/new dependencies. If any dependency changed since the last installation, you’d receive an error looking like this:
 
1
2
3
4
5
6
7
8
9
10
11
npm ERR! Windows_NT 10.0.10586
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! node v4.2.3
npm ERR! npm  v2.14.7
npm ERR! code EPEERINVALID
 
npm ERR! peerinvalid The package angular2@2.0.0-alpha.52 does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer ionic-framework@2.0.0-alpha.49 wants angular2@2.0.0-beta.0
 
npm ERR! Please include the following file with any support request:
npm ERR!     E:\Programiranje\Ionic2\Ionic2FirstApp\npm-debug.log
 
As you can see, my current Ionic 2 version requires newer Angular2 version; update package.json accordingly.
 
Do this step over and over until you find a stable combination.
 
Finally, let’s check if everything is working as it should:
 
1
ionic serve