{"id":5124,"date":"2017-04-09T20:37:07","date_gmt":"2017-04-09T18:37:07","guid":{"rendered":"https:\/\/www.tomislavstankovic.com\/blog\/?p=5124"},"modified":"2019-01-05T19:55:53","modified_gmt":"2019-01-05T17:55:53","slug":"ionic2-sqlite","status":"publish","type":"post","link":"https:\/\/www.tomislavstankovic.com\/blog\/ionic2-sqlite\/","title":{"rendered":"Ionic 2 &#8211; SQLite za trajno spremanje podataka"},"content":{"rendered":"<p>Jedna od najva\u017enijih funkcionalnosti svake mobilne aplikacije je mogu\u0107nost trajnog spremanja podataka kako bi se oni mogli koristiti kasnije. Podaci koje spremite u <em><a href=\"https:\/\/ionicframework.com\/docs\/native\/sqlite\/\" target=\"_blank\">SQLite<\/a><\/em> bazu podataka mogu se koristiti kada npr. <a href=\"https:\/\/www.tomislavstankovic.com\/blog\/ionic2-provjera-povezanost-mreza-internet\/\" target=\"_blank\">aplikacija nije povezana s mre\u017eom<\/a>, a \u017eelite korisniku omogu\u0107iti da i dalje mo\u017ee pregledavati sadr\u017eaj mobilne aplikacije. <\/p>\n<p>VA\u017dNA NAPOMENA! &#8211; Testiranje <em>SQLite<\/em> baze ne mo\u017eete raditi unutar web preglednika nego isklju\u010divo na ure\u0111aju.<\/p>\n<h2>Instalacija plugina<\/h2>\n<h3>Ionic Native 3.x<\/h3>\n<p>Ako koristite <em><a href=\"https:\/\/blog.ionic.io\/ionic-native-3-x\/\" target=\"_blank\">Ionic Native 3.x<\/a><\/em> plugin \u0107ete instalirati naredbama <\/p>\n<pre class=\"lang:sh decode:true\">$ npm install --save @ionic-native\/sqlite\r\n$ ionic plugin add cordova-sqlite-storage<\/pre>\n<p>U ovom slu\u010daju, kada koristite novi Ionic Native 3.x, plugin se poziva na sljede\u0107i na\u010din<\/p>\n<pre class=\"lang:js decode:true \" >import { SQLite } from '@ionic-native\/sqlite';<\/pre>\n<p>Umjesto kao \u0161to je bilo do sada<\/p>\n<pre class=\"lang:js decode:true \" >import { SQLite } from 'ionic-native';<\/pre>\n<h2>Kori\u0161tenje SQLite plugina<\/h2>\n<p>Plugin za po\u010detak trebamo dodati u  <span class=\"lang:default decode:true  crayon-inline \" >app.module.ts<\/span> <\/p>\n<pre class=\"lang:js mark:8,26 decode:true \" title=\"app.module.ts\" >import { NgModule, ErrorHandler } from '@angular\/core';\r\nimport { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';\r\nimport { MyApp } from '.\/app.component';\r\nimport { HomePage } from '..\/pages\/home\/home';\r\n\r\nimport { StatusBar } from '@ionic-native\/status-bar';\r\nimport { SplashScreen } from '@ionic-native\/splash-screen';\r\nimport { SQLite } from '@ionic-native\/sqlite';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    MyApp,\r\n    HomePage\r\n  ],\r\n  imports: [\r\n    IonicModule.forRoot(MyApp)\r\n  ],\r\n  bootstrap: [IonicApp],\r\n  entryComponents: [\r\n    MyApp,\r\n    HomePage\r\n  ],\r\n  providers: [\r\n    StatusBar,\r\n    SplashScreen,\r\n    SQLite,\r\n    {provide: ErrorHandler, useClass: IonicErrorHandler}\r\n  ]\r\n})\r\nexport class AppModule {}<\/pre>\n<h2>Kreiranje tablica<\/h2>\n<p>Sada se fokusiramo na  <span class=\"lang:default decode:true  crayon-inline \" >app.component.ts<\/span>  gdje \u0107emo kreirati sve potrebne tablice. Svaki put kada se aplikacija pokrene ova \u0107e <em>root<\/em> komponenta kreirati potrebne tablice ako one ve\u0107 ne postoje.<\/p>\n<pre class=\"lang:js mark:5,10,19,22-34 decode:true \" title=\"app.component.ts\" >import { Component } from '@angular\/core';\r\nimport { Platform } from 'ionic-angular';\r\nimport { StatusBar } from '@ionic-native\/status-bar';\r\nimport { SplashScreen } from '@ionic-native\/splash-screen';\r\nimport { SQLite, SQLiteObject } from '@ionic-native\/sqlite';\r\n\r\nimport { HomePage } from '..\/pages\/home\/home';\r\n@Component({\r\n  templateUrl: 'app.html',\r\n  providers: [SQLite]\r\n\r\n})\r\nexport class MyApp {\r\n  rootPage:any = HomePage;\r\n\r\n  constructor(_platform: Platform,\r\n              _statusBar: StatusBar, \r\n              _splashScreen: SplashScreen, \r\n              private _sqlite: SQLite) {\r\n    _platform.ready().then(() =&gt; {\r\n      \/\/SQLite po\u010detak\r\nthis._sqlite.create({\r\n  name: 'baza.db',\r\n  location: 'default'\r\n})\r\n  .then((db: SQLiteObject) =&gt; {\r\n    db.executeSql(\"CREATE TABLE IF NOT EXISTS mojaTablice (mojatablicaId INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, user_name TEXT, location TEXT)\", {})\r\n      .then(() =&gt; console.log('Executed SQL'))\r\n      .catch(e =&gt; console.log(e));\r\n   db.executeSql(\"CREATE TABLE IF NOT EXISTS mojaDrugaTablice (mojadrugatablicaId INTEGER PRIMARY KEY AUTOINCREMENT, firstname TEXT, lastname TEXT)\", {})\r\n      .then(() =&gt; console.log('Executed SQL'))\r\n      .catch(e =&gt; console.log(e));\r\n  })\r\n  .catch(e =&gt; console.log(e));\r\n   \/\/SQLite kraj\r\n      _statusBar.styleDefault();\r\n      _splashScreen.hide();\r\n    });\r\n  }\r\n}<\/pre>\n<h2>Kori\u0161tenje SQLite baze<\/h2>\n<p>Na sljede\u0107i na\u010din koristimo ranije kreirane tablice. Prvo u konstruktoru moramo otvoriti <em>SQLite<\/em> bazu. Nakon toga mo\u017eemo unositi podatke u <em>SQLite<\/em> bazu, \u010ditati spremljene podatke iz nje ili ih obrisati.<\/p>\n<pre class=\"lang:js mark:4,9,13,18,21-27,31-74 decode:true \" title=\"home.ts\" >import { Component } from '@angular\/core';\r\nimport { NavController, Platform } from 'ionic-angular';\r\nimport { ApiProvider } from '..\/..\/providers\/api-providers';\r\nimport { SQLite, SQLiteObject } from '@ionic-native\/sqlite';\r\n\r\n@Component({\r\n  selector: 'page-home',\r\n  templateUrl: 'home.html',\r\n  providers: [SQLite]\r\n})\r\nexport class HomePage {\r\n\r\n  public MyDataList: Array&lt;Object&gt;;\r\n\r\n  constructor(public _navCtrl: NavController,\r\n              public _platform: Platform,\r\n              public _api: ApiProvider,\r\n              private _sqlite: SQLite) {\r\n\r\n     \/\/Inicijalizacija SQLite baze\r\n      this._platform.ready().then(() =&gt; {\r\n            this._sqlite = new SQLite();\r\n            this._sqlite.openDatabase({name: \"baza.db\", location: \"default\"}).then(() =&gt; {\r\n            }, (error) =&gt; {\r\n                console.log(\"Gre\u0161ka baze: \", error);\r\n            });\r\n        });\r\n\r\n  }\r\n\r\n  \/\/Dohvati podatke s API-ja i spremi ih u SQLite bazu\r\n    saveToSqlite(){\r\n         \/\/pozivanje API-ja\r\n          this._api.getMyData().subscribe(res =&gt; {\r\n          \/\/Spremi podatke u lokalnu SQLite bazu\r\n          if(res.length &gt; 0) {\r\n                for(var i = 0; i &lt; res.length; i++) {\r\n                     \/\/ console.log(res[i].from);\r\n                      this._database.executeSql(\"INSERT INTO mojaDrugaTablice (firstname, lastname, date) VALUES (?,?)\", [res[i].firstname, res[i].lastname]).then((data) =&gt; {\r\n                      console.log(\"Spremljeno: \" + JSON.stringify(data));\r\n                      }, (error) =&gt; {\r\n                      console.log(\"Gre\u0161ka: \" + JSON.stringify(error.err));\r\n        });\r\n                }\r\n          }\r\n           });\r\n    }\r\n\r\n     \/\/Dohva\u0107anje lokalnu baze\r\n     getMyOfflineData(){\r\n        this._database.executeSql(\"SELECT * FROM mojaDrugaTablice\", []).then((data) =&gt; {\r\n            this.MyDataList = [];\r\n            if(data.rows.length &gt; 0) {\r\n                for(var i = 0; i &lt; data.rows.length; i++) {\r\n                    this.MyDataList.push({\r\n                      mojadrugatablicaId: data.rows.item(i).mojadrugatablicaId,\r\n                      firstname: data.rows.item(i).firstname,\r\n                      lastname: data.rows.item(i).lastname\r\n                    });\r\n                }\r\n            }\r\n        }, (error) =&gt; {\r\n            console.log(\"Gre\u0161ka kod dohva\u0107anja offline baze: \" + JSON.stringify(error));\r\n        });\r\n    }\r\n\r\n     \/\/Isprazni lokalnu bazu\r\n    deleteMyOfflineData() {\r\n        this._database.executeSql(\"DELETE FROM mojaDrugaTablice\", []).then((data) =&gt; {\r\n        console.log('mojaDrugaTablica SQLite deleted!');\r\n        }, (error) =&gt; {\r\n            console.log(\"Gre\u0161ka kod brisanja: \" + JSON.stringify(error.err));\r\n        });\r\n    }\r\n\r\n      ionViewWillEnter(){\r\n      \/\/Spremi u SQLite\r\n       this.saveToSqlite();\r\n      \/\/Dohvati iz SQLite\r\n      this.getMyOfflineData();\r\n      \/\/Isprazni SQLite\r\n      this.deleteMyOfflineData();\r\n  }\r\n\r\n}<\/pre>\n<p>Spremljene podatke mo\u017eemo prikazati na sljede\u0107i na\u010din<\/p>\n<pre class=\"lang:xhtml decode:true \" title=\"home.html\" >&lt;ion-header&gt;\r\n    &lt;ion-navbar&gt;\r\n        &lt;ion-title&gt;\r\n            Ionic 2 - SQLite\r\n        &lt;\/ion-title&gt;\r\n            &lt;button (click)=\"saveToSqlite()\"&gt;Save Offline Data&lt;\/button&gt;\r\n            &lt;button (click)=\"getMyOfflineData()\"&gt;Get Offline Data&lt;\/button&gt;\r\n            &lt;button (click)=\"deleteMyOfflineData()\"&gt;Delete Offline Data&lt;\/button&gt;\r\n    &lt;\/ion-navbar&gt;\r\n&lt;\/ion-header&gt;\r\n \r\n&lt;ion-content padding&gt;\r\n    &lt;ion-list&gt;\r\n         &lt;ion-item *ngFor=\"let data of MyDataList\"&gt;\r\n             {{MyDataList.firstname}} {{MyDataList.lastname}}\r\n         &lt;\/ion-item&gt;\r\n     &lt;\/ion-list&gt;\r\n&lt;\/ion-content&gt;<\/pre>\n<h2>Zaklju\u010dak<\/h2>\n<p>Ovo je najjednostavniji prikaz kori\u0161tenja <em><a href=\"https:\/\/ionicframework.com\/docs\/native\/sqlite\/\" target=\"_blank\">SQLite<\/a><\/em> baze podataka unutar <em><a href=\"https:\/\/www.tomislavstankovic.com\/blog\/uvod-u-ionic-2\/\">Ionic 2<\/a><\/em> projekta. U jednom od sljede\u0107ih blog postova pokazati \u0107u <a href=\"https:\/\/www.tomislavstankovic.com\/blog\/ionic-2-3-sqlite-servis\/\" target=\"_blank\">kako napraviti <em>SQLite<\/em> servis<\/a> koji \u0107e <strong>olak\u0161ati upravljanje <em>offline<\/em> podacima<\/strong> tj. u kojem \u0107e se odvijati sva logika vezana uz kreiranje tablica, spremanje, \u010ditajne i brisanje podataka.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jedna od najva\u017enijih funkcionalnosti svake mobilne aplikacije je mogu\u0107nost trajnog spremanja podataka kako bi se oni mogli koristiti kasnije. Podaci koje spremite u SQLite bazu podataka mogu se koristiti kada npr. aplikacija nije povezana s mre\u017eom, a \u017eelite korisniku omogu\u0107iti da i dalje mo\u017ee pregledavati sadr\u017eaj mobilne aplikacije. VA\u017dNA NAPOMENA! &#8211; Testiranje SQLite baze ne &hellip; <a href=\"https:\/\/www.tomislavstankovic.com\/blog\/ionic2-sqlite\/\" class=\"more-link\">Nastavi \u010ditati <span class=\"screen-reader-text\">Ionic 2 &#8211; SQLite za trajno spremanje podataka<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":5125,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[564,351],"tags":[381,388,399],"class_list":["post-5124","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mobile","category-razvoj","tag-ionic-2","tag-ionic-native","tag-sqlite"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Ionic 2 - SQLite za trajno spremanje podataka - Tomislav Stankovi\u0107<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.tomislavstankovic.com\/blog\/ionic2-sqlite\/\" \/>\n<meta property=\"og:locale\" content=\"hr_HR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ionic 2 - SQLite za trajno spremanje podataka - Tomislav Stankovi\u0107\" \/>\n<meta property=\"og:description\" content=\"Jedna od najva\u017enijih funkcionalnosti svake mobilne aplikacije je mogu\u0107nost trajnog spremanja podataka kako bi se oni mogli koristiti kasnije. Podaci koje spremite u SQLite bazu podataka mogu se koristiti kada npr. aplikacija nije povezana s mre\u017eom, a \u017eelite korisniku omogu\u0107iti da i dalje mo\u017ee pregledavati sadr\u017eaj mobilne aplikacije. VA\u017dNA NAPOMENA! &#8211; Testiranje SQLite baze ne &hellip; Nastavi \u010ditati Ionic 2 &#8211; SQLite za trajno spremanje podataka\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.tomislavstankovic.com\/blog\/ionic2-sqlite\/\" \/>\n<meta property=\"og:site_name\" content=\"Tomislav Stankovi\u0107\" \/>\n<meta property=\"article:published_time\" content=\"2017-04-09T18:37:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-01-05T17:55:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/04\/ionic2-sqlite.png\" \/>\n\t<meta property=\"og:image:width\" content=\"825\" \/>\n\t<meta property=\"og:image:height\" content=\"510\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Tomislav Stankovi\u0107\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisao\/la\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tomislav Stankovi\u0107\" \/>\n\t<meta name=\"twitter:label2\" content=\"Procijenjeno vrijeme \u010ditanja\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic2-sqlite\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic2-sqlite\\\/\"},\"author\":{\"name\":\"Tomislav Stankovi\u0107\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0329c549c57700034ea77f5d3d78396d\"},\"headline\":\"Ionic 2 &#8211; SQLite za trajno spremanje podataka\",\"datePublished\":\"2017-04-09T18:37:07+00:00\",\"dateModified\":\"2019-01-05T17:55:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic2-sqlite\\\/\"},\"wordCount\":265,\"commentCount\":4,\"publisher\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0329c549c57700034ea77f5d3d78396d\"},\"image\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic2-sqlite\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/04\\\/ionic2-sqlite.png\",\"keywords\":[\"Ionic 2\",\"Ionic Native\",\"SQlite\"],\"articleSection\":[\"Mobile\",\"Razvoj\"],\"inLanguage\":\"hr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic2-sqlite\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic2-sqlite\\\/\",\"url\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic2-sqlite\\\/\",\"name\":\"Ionic 2 - SQLite za trajno spremanje podataka - Tomislav Stankovi\u0107\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic2-sqlite\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic2-sqlite\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/04\\\/ionic2-sqlite.png\",\"datePublished\":\"2017-04-09T18:37:07+00:00\",\"dateModified\":\"2019-01-05T17:55:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic2-sqlite\\\/#breadcrumb\"},\"inLanguage\":\"hr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic2-sqlite\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"hr\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic2-sqlite\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/04\\\/ionic2-sqlite.png\",\"contentUrl\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/04\\\/ionic2-sqlite.png\",\"width\":825,\"height\":510,\"caption\":\"Ionic 2 i SQLite\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic2-sqlite\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Po\u010detna stranica\",\"item\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ionic 2 &#8211; SQLite za trajno spremanje podataka\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/\",\"name\":\"Tomislav Stankovi\u0107\",\"description\":\"Sam svoj bloger\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0329c549c57700034ea77f5d3d78396d\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"hr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0329c549c57700034ea77f5d3d78396d\",\"name\":\"Tomislav Stankovi\u0107\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"hr\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/cropped-TomislavStankovic.jpg\",\"url\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/cropped-TomislavStankovic.jpg\",\"contentUrl\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/cropped-TomislavStankovic.jpg\",\"width\":248,\"height\":165,\"caption\":\"Tomislav Stankovi\u0107\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/cropped-TomislavStankovic.jpg\"},\"description\":\"Bloger \u0161irokog raspona interesa od kojih dio voli objaviti na ovom blogu. U neslobodno vrijeme Angular developer mobilnih i web aplikacija.\",\"sameAs\":[\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/tomislavstankovic\\\/\"],\"url\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/author\\\/tomislavstankovic\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ionic 2 - SQLite za trajno spremanje podataka - Tomislav Stankovi\u0107","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.tomislavstankovic.com\/blog\/ionic2-sqlite\/","og_locale":"hr_HR","og_type":"article","og_title":"Ionic 2 - SQLite za trajno spremanje podataka - Tomislav Stankovi\u0107","og_description":"Jedna od najva\u017enijih funkcionalnosti svake mobilne aplikacije je mogu\u0107nost trajnog spremanja podataka kako bi se oni mogli koristiti kasnije. Podaci koje spremite u SQLite bazu podataka mogu se koristiti kada npr. aplikacija nije povezana s mre\u017eom, a \u017eelite korisniku omogu\u0107iti da i dalje mo\u017ee pregledavati sadr\u017eaj mobilne aplikacije. VA\u017dNA NAPOMENA! &#8211; Testiranje SQLite baze ne &hellip; Nastavi \u010ditati Ionic 2 &#8211; SQLite za trajno spremanje podataka","og_url":"https:\/\/www.tomislavstankovic.com\/blog\/ionic2-sqlite\/","og_site_name":"Tomislav Stankovi\u0107","article_published_time":"2017-04-09T18:37:07+00:00","article_modified_time":"2019-01-05T17:55:53+00:00","og_image":[{"width":825,"height":510,"url":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/04\/ionic2-sqlite.png","type":"image\/png"}],"author":"Tomislav Stankovi\u0107","twitter_card":"summary_large_image","twitter_misc":{"Napisao\/la":"Tomislav Stankovi\u0107","Procijenjeno vrijeme \u010ditanja":"4 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic2-sqlite\/#article","isPartOf":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic2-sqlite\/"},"author":{"name":"Tomislav Stankovi\u0107","@id":"https:\/\/www.tomislavstankovic.com\/blog\/#\/schema\/person\/0329c549c57700034ea77f5d3d78396d"},"headline":"Ionic 2 &#8211; SQLite za trajno spremanje podataka","datePublished":"2017-04-09T18:37:07+00:00","dateModified":"2019-01-05T17:55:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic2-sqlite\/"},"wordCount":265,"commentCount":4,"publisher":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/#\/schema\/person\/0329c549c57700034ea77f5d3d78396d"},"image":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic2-sqlite\/#primaryimage"},"thumbnailUrl":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/04\/ionic2-sqlite.png","keywords":["Ionic 2","Ionic Native","SQlite"],"articleSection":["Mobile","Razvoj"],"inLanguage":"hr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.tomislavstankovic.com\/blog\/ionic2-sqlite\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic2-sqlite\/","url":"https:\/\/www.tomislavstankovic.com\/blog\/ionic2-sqlite\/","name":"Ionic 2 - SQLite za trajno spremanje podataka - Tomislav Stankovi\u0107","isPartOf":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic2-sqlite\/#primaryimage"},"image":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic2-sqlite\/#primaryimage"},"thumbnailUrl":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/04\/ionic2-sqlite.png","datePublished":"2017-04-09T18:37:07+00:00","dateModified":"2019-01-05T17:55:53+00:00","breadcrumb":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic2-sqlite\/#breadcrumb"},"inLanguage":"hr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.tomislavstankovic.com\/blog\/ionic2-sqlite\/"]}]},{"@type":"ImageObject","inLanguage":"hr","@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic2-sqlite\/#primaryimage","url":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/04\/ionic2-sqlite.png","contentUrl":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/04\/ionic2-sqlite.png","width":825,"height":510,"caption":"Ionic 2 i SQLite"},{"@type":"BreadcrumbList","@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic2-sqlite\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Po\u010detna stranica","item":"https:\/\/www.tomislavstankovic.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ionic 2 &#8211; SQLite za trajno spremanje podataka"}]},{"@type":"WebSite","@id":"https:\/\/www.tomislavstankovic.com\/blog\/#website","url":"https:\/\/www.tomislavstankovic.com\/blog\/","name":"Tomislav Stankovi\u0107","description":"Sam svoj bloger","publisher":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/#\/schema\/person\/0329c549c57700034ea77f5d3d78396d"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.tomislavstankovic.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"hr"},{"@type":["Person","Organization"],"@id":"https:\/\/www.tomislavstankovic.com\/blog\/#\/schema\/person\/0329c549c57700034ea77f5d3d78396d","name":"Tomislav Stankovi\u0107","image":{"@type":"ImageObject","inLanguage":"hr","@id":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2019\/10\/cropped-TomislavStankovic.jpg","url":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2019\/10\/cropped-TomislavStankovic.jpg","contentUrl":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2019\/10\/cropped-TomislavStankovic.jpg","width":248,"height":165,"caption":"Tomislav Stankovi\u0107"},"logo":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2019\/10\/cropped-TomislavStankovic.jpg"},"description":"Bloger \u0161irokog raspona interesa od kojih dio voli objaviti na ovom blogu. U neslobodno vrijeme Angular developer mobilnih i web aplikacija.","sameAs":["https:\/\/www.tomislavstankovic.com\/blog\/","https:\/\/www.linkedin.com\/in\/tomislavstankovic\/"],"url":"https:\/\/www.tomislavstankovic.com\/blog\/author\/tomislavstankovic\/"}]}},"_links":{"self":[{"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/posts\/5124","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/comments?post=5124"}],"version-history":[{"count":26,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/posts\/5124\/revisions"}],"predecessor-version":[{"id":5434,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/posts\/5124\/revisions\/5434"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/media\/5125"}],"wp:attachment":[{"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/media?parent=5124"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/categories?post=5124"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/tags?post=5124"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}