{"id":6721,"date":"2017-12-17T15:27:21","date_gmt":"2017-12-17T13:27:21","guid":{"rendered":"https:\/\/www.tomislavstankovic.com\/blog\/?p=6721"},"modified":"2019-01-05T19:51:29","modified_gmt":"2019-01-05T17:51:29","slug":"ionic-app-update","status":"publish","type":"post","link":"https:\/\/www.tomislavstankovic.com\/blog\/ionic-app-update\/","title":{"rendered":"A\u017euriranje Ionic Android aplikacije bez Google Storea"},"content":{"rendered":"<p>A\u017euriranje <em>Ionic<\/em> aplikacije mogu\u0107e je na nekoliko na\u010dina. Prvi je naravno <a href=\"https:\/\/www.tomislavstankovic.com\/blog\/ionic-aplikacija-google-play-store\/\" rel=\"noopener\" target=\"_blank\">koriste\u0107i <em>Google Store<\/em><\/a>, drugi je <a href=\"https:\/\/www.tomislavstankovic.com\/blog\/ionic-deploy\/\" rel=\"noopener\" target=\"_blank\">koriste\u0107i <em>Ionic Deploy<\/em><\/a>, tre\u0107i je ru\u010dna instalacija nove verzije aplikacije svakom korisniku posebno dok je \u010detvrti na\u010din koriste\u0107i <a href=\"https:\/\/ionicframework.com\/docs\/native\/app-update\/\" rel=\"noopener\" target=\"_blank\"><em>App Update plugin<\/em><\/a> (u slu\u010daju ovog plugina mogu\u0107e je a\u017eurirati isklju\u010divo <em>Android<\/em> verzije <em>Ionic<\/em> aplikacije). <\/p>\n<p>Vi\u0161e o na\u010dinu kori\u0161tenja <em>App Update plugina<\/em> u nastavku ovog blog posta. <\/p>\n<h2>Kreiranje aplikacije<\/h2>\n<p>Za po\u010detak <a href=\"https:\/\/www.tomislavstankovic.com\/blog\/ionic-3-framework-uvod\/\" rel=\"noopener\" target=\"_blank\">kreiram novu <em>Ionic<\/em> aplikaciju<\/a> i odmah dodajem <em>Android<\/em> platformu jer kasnije planiram aplikaciju pokrenuti na <em>Android<\/em> mobilnom ure\u0111aju<\/p>\n<pre class=\"lang:sh decode:true \" >$ ionic start IonicAppUpdate blank\r\n$ cd IonicAppUpdate\r\n$ ionic cordova platform add android<\/pre>\n<p>Sada \u0107u instalirati <em><a href=\"https:\/\/ionicframework.com\/docs\/native\/app-update\/\" rel=\"noopener\" target=\"_blank\">App Update plugin<\/a><\/em> koji \u0107e biti zadu\u017een za a\u017euriranje aplikacije.<\/p>\n<pre class=\"lang:sh decode:true \" >$ ionic cordova plugin add cordova-plugin-app-update\r\n$ npm install --save @ionic-native\/app-update<\/pre>\n<p>Plugin odmah dodajem u <strong>app.module.ts<\/strong><\/p>\n<pre class=\"lang:js mark:7,29 decode:true \" title=\"app.module.ts\" >import { BrowserModule } from '@angular\/platform-browser';\r\nimport { ErrorHandler, NgModule } from '@angular\/core';\r\nimport { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';\r\nimport { SplashScreen } from '@ionic-native\/splash-screen';\r\nimport { StatusBar } from '@ionic-native\/status-bar';\r\n\r\nimport { AppUpdate } from '@ionic-native\/app-update';\r\n\r\nimport { MyApp } from '.\/app.component';\r\nimport { HomePage } from '..\/pages\/home\/home';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    MyApp,\r\n    HomePage\r\n  ],\r\n  imports: [\r\n    BrowserModule,\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    AppUpdate,\r\n    {provide: ErrorHandler, useClass: IonicErrorHandler}\r\n  ]\r\n})\r\nexport class AppModule {}<\/pre>\n<p>Trenutna verzija aplikacije (0.0.1) navedena je u <strong>config.xml<\/strong> datoteci.<\/p>\n<pre class=\"lang:default decode:true \" title=\"config.xml\" >&lt;?xml version='1.0' encoding='utf-8'?&gt;\r\n&lt;widget id=\"com.tomislavstankovic.ionicappupdate\" version=\"0.0.1\" xmlns=\"http:\/\/www.w3.org\/ns\/widgets\" xmlns:cdv=\"http:\/\/cordova.apache.org\/ns\/1.0\"&gt;\r\n    &lt;name&gt;IonicAppUpdate&lt;\/name&gt;\r\n...<\/pre>\n<p>Kako bi kasnije mogao provjeriti postoji li nova verzija <em>Android<\/em> aplikacije moram ugraditi glavnu funkcionalnost koja \u0107e se nalaziti unutar <strong>home.ts<\/strong> datoteke.<\/p>\n<pre class=\"lang:js decode:true \" title=\"home.ts\" >import { Component } from '@angular\/core';\r\nimport { NavController } from 'ionic-angular';\r\nimport { AppUpdate } from '@ionic-native\/app-update';\r\n\r\n@Component({\r\n  selector: 'page-home',\r\n  templateUrl: 'home.html'\r\n})\r\nexport class HomePage {\r\n\r\n  constructor(public navCtrl: NavController,\r\n              private appUpdate: AppUpdate) {\r\n\t\t\t  \r\n   const updateUrl = 'https:\/\/www.tomislavstankovic.com\/Ionic\/update.xml';\r\n   this.appUpdate.checkAppUpdate(updateUrl);\r\n\r\n  }\r\n\r\n}<\/pre>\n<p>Za potrebu ovog primjera promijeniti \u0107u sadr\u017eaj unutar <strong>home.html<\/strong> datoteke u kojoj \u0107u prikazati trenutnu verziju <em>Ionic<\/em> aplikacije.<\/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 AppUpdate\r\n    &lt;\/ion-title&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;h1&gt;App Update&lt;\/h1&gt;\r\n  &lt;p&gt;This plugin does self-update for android&lt;\/p&gt;\r\n  &lt;p&gt;App version=\"0.0.1\"&lt;\/p&gt;\r\n&lt;\/ion-content&gt;<\/pre>\n<p>P.S. Nakon instalacije <em>App Update plugina<\/em> nisam mogao instalirati <em>Ionic<\/em> aplikaciju na ure\u0111aj niti kreirati <em>APK<\/em> zbog sljede\u0107e gre\u0161ke<\/p>\n<p><a href=\"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android-2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android-2.png\" alt=\"A\u017euriranje Ionic Android aplikacije\" width=\"981\" height=\"1079\" class=\"aligncenter size-full wp-image-6731\" srcset=\"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android-2.png 981w, https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android-2-273x300.png 273w, https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android-2-768x845.png 768w, https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android-2-931x1024.png 931w\" sizes=\"auto, (max-width: 981px) 100vw, 981px\" \/><\/a><\/p>\n<p>To sam rije\u0161io instalacijom <a href=\"https:\/\/www.npmjs.com\/package\/cordova-plugin-android-support-v4\" rel=\"noopener\" target=\"_blank\"><em>Android Support v4 client library<\/em><\/a> <\/p>\n<pre class=\"lang:sh decode:true \" >$ cordova plugin add cordova-plugin-android-support-v4<\/pre>\n<p>Aplikaciju nakon toga uspje\u0161no pokre\u0107em<\/p>\n<p><a href=\"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android-3.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android-3.png\" alt=\"A\u017euriranje Ionic Android aplikacije\" width=\"360\" height=\"640\" class=\"aligncenter size-full wp-image-6733\" srcset=\"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android-3.png 360w, https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android-3-169x300.png 169w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/a><\/p>\n<h2>Nova verzija aplikacije<\/h2>\n<p>Sada \u0107u kreirati novu verziju aplikacije u kojoj \u0107u samo promijeniti sadr\u017eaj unutar <strong>home.html<\/strong> datoteke.<\/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 AppUpdate\r\n    &lt;\/ion-title&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;h1&gt;App Update&lt;\/h1&gt;\r\n  &lt;p&gt;This plugin does self-update for android&lt;\/p&gt;\r\n  &lt;p&gt;App version=\"0.0.2\"&lt;\/p&gt;\r\n&lt;\/ion-content&gt;<\/pre>\n<p>Tako\u0111er, isto moram napraviti i unutar <strong>config.xml<\/strong> datoteke jer ina\u010de nije mogu\u0107e a\u017eurirati aplikaciju.<\/p>\n<pre class=\"lang:default decode:true \" title=\"config.xml\" >&lt;?xml version='1.0' encoding='utf-8'?&gt;\r\n&lt;widget id=\"com.tomislavstankovic.ionicappupdate\" version=\"0.0.2\" xmlns=\"http:\/\/www.w3.org\/ns\/widgets\" xmlns:cdv=\"http:\/\/cordova.apache.org\/ns\/1.0\"&gt;\r\n    &lt;name&gt;IonicAppUpdate&lt;\/name&gt;\r\n...<\/pre>\n<h2>Gdje se nalazi nova verzija aplikacije?<\/h2>\n<p>Pretpostavimo da moju aplikaciju koristi nekoliko desetaka osoba na raznim lokacijama i da svima njima moram poslati novu verziju. S obzirom da to nisam u mogu\u0107nosti napraviti koriste\u0107i npr. <em><a href=\"https:\/\/www.tomislavstankovic.com\/blog\/ionic-aplikacija-google-play-store\/\" rel=\"noopener\" target=\"_blank\">Google Store<\/a><\/em> moram smisliti novu lokaciju s koje korisnici mogu preuzeti novu verziju aplikacije. Ranije sam ve\u0107 unutar <em>Ionic<\/em> aplikacije naveo da \u0107e se nove verzije aplikacije nalaziti na poveznici &#8216;https:\/\/www.tomislavstankovic.com\/Ionic\/update.xml&#8217; pa ju sada moram i kreirati.<\/p>\n<p>To \u010dinim putem <a href=\"https:\/\/en.wikipedia.org\/wiki\/Comparison_of_FTP_client_software\" rel=\"noopener\" target=\"_blank\">FTP-a<\/a> na na\u010din da kreiram mapu naziva &#8220;Ionic&#8221; unutar koje se nalazi informacija u novoj verziji <em>Ionic<\/em> aplikacije kao i sama <em>Ionic<\/em> aplikacija tj. novi <em>APK<\/em>.<\/p>\n<p>Kreiram datoteku <strong>update.xml<\/strong><\/p>\n<pre class=\"lang:default decode:true \" title=\"update.xml\" >&lt;update&gt;\r\n    &lt;version&gt;36&lt;\/version&gt;\r\n    &lt;name&gt;IonicAppUpdate&lt;\/name&gt;\r\n    &lt;url&gt;https:\/\/www.tomislavstankovic.com\/Ionic\/IonicAppUpdate.apk&lt;\/url&gt;\r\n&lt;\/update&gt;<\/pre>\n<p>I uploadam novi <em>APK<\/em>.<\/p>\n<p><a href=\"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android-1.png\" alt=\"A\u017euriranje Ionic Android aplikacije\" width=\"851\" height=\"178\" class=\"aligncenter size-full wp-image-6728\" srcset=\"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android-1.png 851w, https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android-1-300x63.png 300w, https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android-1-768x161.png 768w\" sizes=\"auto, (max-width: 851px) 100vw, 851px\" \/><\/a><\/p>\n<p>Kada sljede\u0107i put pokrenem aplikaciju automatski \u0107e se provjeriti postoji li a\u017euriranje i ako postoji ono \u0107e se automatski instalirati.<\/p>\n<p><a href=\"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android-4.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android-4.png\" alt=\"A\u017euriranje Ionic Android aplikacije \" width=\"2165\" height=\"640\" class=\"aligncenter size-full wp-image-6735\" srcset=\"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android-4.png 2165w, https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android-4-300x89.png 300w, https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android-4-768x227.png 768w, https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android-4-1024x303.png 1024w\" sizes=\"auto, (max-width: 2165px) 100vw, 2165px\" \/><\/a> <\/p>\n<h2>Zaklju\u010dak<\/h2>\n<p>Kori\u0161tenje <em>App Update plugina<\/em> dobro je rje\u0161enje u slu\u010dajevima kada \u017eelite svoju <em>Ionic<\/em> aplikaciju u\u010diniti dostupom odabranom krugu osoba, npr. unutar neke tvrtke, tj. kada ju ne \u017eelite u\u010diniti javno dostupnom putem <em>Google Storea<\/em>.<\/p>\n<p>I za kraj, struktura projekta prema <strong>package.json<\/strong> datoteci<\/p>\n<pre class=\"lang:js decode:true \" title=\"package.json\" >{\r\n    \"name\": \"IonicAppUpdate\",\r\n    \"version\": \"0.0.1\",\r\n    \"author\": \"Tomislav Stankovi\u0107\",\r\n    \"homepage\": \"https:\/\/www.tomislavstankovic.com\/\",\r\n    \"private\": true,\r\n    \"scripts\": {\r\n        \"clean\": \"ionic-app-scripts clean\",\r\n        \"build\": \"ionic-app-scripts build\",\r\n        \"lint\": \"ionic-app-scripts lint\",\r\n        \"ionic:build\": \"ionic-app-scripts build\",\r\n        \"ionic:serve\": \"ionic-app-scripts serve\"\r\n    },\r\n    \"dependencies\": {\r\n        \"@angular\/common\": \"5.0.3\",\r\n        \"@angular\/compiler\": \"5.0.3\",\r\n        \"@angular\/compiler-cli\": \"5.0.3\",\r\n        \"@angular\/core\": \"5.0.3\",\r\n        \"@angular\/forms\": \"5.0.3\",\r\n        \"@angular\/http\": \"5.0.3\",\r\n        \"@angular\/platform-browser\": \"5.0.3\",\r\n        \"@angular\/platform-browser-dynamic\": \"5.0.3\",\r\n        \"@ionic-native\/app-update\": \"^4.5.2\",\r\n        \"@ionic-native\/core\": \"4.4.0\",\r\n        \"@ionic-native\/splash-screen\": \"4.4.0\",\r\n        \"@ionic-native\/status-bar\": \"4.4.0\",\r\n        \"@ionic\/storage\": \"2.1.3\",\r\n        \"cordova-android\": \"^6.2.3\",\r\n        \"cordova-plugin-app-update\": \"^1.4.13\",\r\n        \"cordova-plugin-appversion\": \"^1.0.0\",\r\n        \"cordova-plugin-device\": \"^1.1.4\",\r\n        \"cordova-plugin-ionic-webview\": \"^1.1.11\",\r\n        \"cordova-plugin-splashscreen\": \"^4.0.3\",\r\n        \"cordova-plugin-whitelist\": \"^1.3.1\",\r\n        \"ionic-angular\": \"3.9.2\",\r\n        \"ionic-plugin-keyboard\": \"^2.2.1\",\r\n        \"ionicons\": \"3.0.0\",\r\n        \"rxjs\": \"5.5.2\",\r\n        \"sw-toolbox\": \"3.6.0\",\r\n        \"zone.js\": \"0.8.18\"\r\n    },\r\n    \"devDependencies\": {\r\n        \"@ionic\/app-scripts\": \"3.1.5\",\r\n        \"typescript\": \"2.4.2\"\r\n    },\r\n    \"description\": \"An Ionic project\",\r\n    \"cordova\": {\r\n        \"plugins\": {\r\n            \"cordova-plugin-app-update\": {},\r\n            \"cordova-plugin-device\": {},\r\n            \"cordova-plugin-ionic-webview\": {},\r\n            \"cordova-plugin-splashscreen\": {},\r\n            \"cordova-plugin-whitelist\": {},\r\n            \"ionic-plugin-keyboard\": {}\r\n        },\r\n        \"platforms\": [\r\n            \"android\"\r\n        ]\r\n    }\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>A\u017euriranje Ionic aplikacije mogu\u0107e je na nekoliko na\u010dina. Prvi je naravno koriste\u0107i Google Store, drugi je koriste\u0107i Ionic Deploy, tre\u0107i je ru\u010dna instalacija nove verzije aplikacije svakom korisniku posebno dok je \u010detvrti na\u010din koriste\u0107i App Update plugin (u slu\u010daju ovog plugina mogu\u0107e je a\u017eurirati isklju\u010divo Android verzije Ionic aplikacije). Vi\u0161e o na\u010dinu kori\u0161tenja App Update &hellip; <a href=\"https:\/\/www.tomislavstankovic.com\/blog\/ionic-app-update\/\" class=\"more-link\">Nastavi \u010ditati <span class=\"screen-reader-text\">A\u017euriranje Ionic Android aplikacije bez Google Storea<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":6723,"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":[482,352,388],"class_list":["post-6721","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mobile","category-razvoj","tag-app-update","tag-ionic","tag-ionic-native"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>A\u017euriranje Ionic Android aplikacije bez Google Storea - 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\/ionic-app-update\/\" \/>\n<meta property=\"og:locale\" content=\"hr_HR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A\u017euriranje Ionic Android aplikacije bez Google Storea - Tomislav Stankovi\u0107\" \/>\n<meta property=\"og:description\" content=\"A\u017euriranje Ionic aplikacije mogu\u0107e je na nekoliko na\u010dina. Prvi je naravno koriste\u0107i Google Store, drugi je koriste\u0107i Ionic Deploy, tre\u0107i je ru\u010dna instalacija nove verzije aplikacije svakom korisniku posebno dok je \u010detvrti na\u010din koriste\u0107i App Update plugin (u slu\u010daju ovog plugina mogu\u0107e je a\u017eurirati isklju\u010divo Android verzije Ionic aplikacije). Vi\u0161e o na\u010dinu kori\u0161tenja App Update &hellip; Nastavi \u010ditati A\u017euriranje Ionic Android aplikacije bez Google Storea\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.tomislavstankovic.com\/blog\/ionic-app-update\/\" \/>\n<meta property=\"og:site_name\" content=\"Tomislav Stankovi\u0107\" \/>\n<meta property=\"article:published_time\" content=\"2017-12-17T13:27:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-01-05T17:51:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android.jpg\" \/>\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\/jpeg\" \/>\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\\\/ionic-app-update\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic-app-update\\\/\"},\"author\":{\"name\":\"Tomislav Stankovi\u0107\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0329c549c57700034ea77f5d3d78396d\"},\"headline\":\"A\u017euriranje Ionic Android aplikacije bez Google Storea\",\"datePublished\":\"2017-12-17T13:27:21+00:00\",\"dateModified\":\"2019-01-05T17:51:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic-app-update\\\/\"},\"wordCount\":452,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0329c549c57700034ea77f5d3d78396d\"},\"image\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic-app-update\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/12\\\/ionic-app-update-android.jpg\",\"keywords\":[\"App Update\",\"Ionic\",\"Ionic Native\"],\"articleSection\":[\"Mobile\",\"Razvoj\"],\"inLanguage\":\"hr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic-app-update\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic-app-update\\\/\",\"url\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic-app-update\\\/\",\"name\":\"A\u017euriranje Ionic Android aplikacije bez Google Storea - Tomislav Stankovi\u0107\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic-app-update\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic-app-update\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/12\\\/ionic-app-update-android.jpg\",\"datePublished\":\"2017-12-17T13:27:21+00:00\",\"dateModified\":\"2019-01-05T17:51:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic-app-update\\\/#breadcrumb\"},\"inLanguage\":\"hr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic-app-update\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"hr\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic-app-update\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/12\\\/ionic-app-update-android.jpg\",\"contentUrl\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/12\\\/ionic-app-update-android.jpg\",\"width\":825,\"height\":510,\"caption\":\"A\u017euriranje Ionic Android aplikacije bez Google Storea\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic-app-update\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Po\u010detna stranica\",\"item\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A\u017euriranje Ionic Android aplikacije bez Google Storea\"}]},{\"@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":"A\u017euriranje Ionic Android aplikacije bez Google Storea - 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\/ionic-app-update\/","og_locale":"hr_HR","og_type":"article","og_title":"A\u017euriranje Ionic Android aplikacije bez Google Storea - Tomislav Stankovi\u0107","og_description":"A\u017euriranje Ionic aplikacije mogu\u0107e je na nekoliko na\u010dina. Prvi je naravno koriste\u0107i Google Store, drugi je koriste\u0107i Ionic Deploy, tre\u0107i je ru\u010dna instalacija nove verzije aplikacije svakom korisniku posebno dok je \u010detvrti na\u010din koriste\u0107i App Update plugin (u slu\u010daju ovog plugina mogu\u0107e je a\u017eurirati isklju\u010divo Android verzije Ionic aplikacije). Vi\u0161e o na\u010dinu kori\u0161tenja App Update &hellip; Nastavi \u010ditati A\u017euriranje Ionic Android aplikacije bez Google Storea","og_url":"https:\/\/www.tomislavstankovic.com\/blog\/ionic-app-update\/","og_site_name":"Tomislav Stankovi\u0107","article_published_time":"2017-12-17T13:27:21+00:00","article_modified_time":"2019-01-05T17:51:29+00:00","og_image":[{"width":825,"height":510,"url":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android.jpg","type":"image\/jpeg"}],"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\/ionic-app-update\/#article","isPartOf":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic-app-update\/"},"author":{"name":"Tomislav Stankovi\u0107","@id":"https:\/\/www.tomislavstankovic.com\/blog\/#\/schema\/person\/0329c549c57700034ea77f5d3d78396d"},"headline":"A\u017euriranje Ionic Android aplikacije bez Google Storea","datePublished":"2017-12-17T13:27:21+00:00","dateModified":"2019-01-05T17:51:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic-app-update\/"},"wordCount":452,"commentCount":2,"publisher":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/#\/schema\/person\/0329c549c57700034ea77f5d3d78396d"},"image":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic-app-update\/#primaryimage"},"thumbnailUrl":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android.jpg","keywords":["App Update","Ionic","Ionic Native"],"articleSection":["Mobile","Razvoj"],"inLanguage":"hr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.tomislavstankovic.com\/blog\/ionic-app-update\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic-app-update\/","url":"https:\/\/www.tomislavstankovic.com\/blog\/ionic-app-update\/","name":"A\u017euriranje Ionic Android aplikacije bez Google Storea - Tomislav Stankovi\u0107","isPartOf":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic-app-update\/#primaryimage"},"image":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic-app-update\/#primaryimage"},"thumbnailUrl":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android.jpg","datePublished":"2017-12-17T13:27:21+00:00","dateModified":"2019-01-05T17:51:29+00:00","breadcrumb":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic-app-update\/#breadcrumb"},"inLanguage":"hr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.tomislavstankovic.com\/blog\/ionic-app-update\/"]}]},{"@type":"ImageObject","inLanguage":"hr","@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic-app-update\/#primaryimage","url":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android.jpg","contentUrl":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2017\/12\/ionic-app-update-android.jpg","width":825,"height":510,"caption":"A\u017euriranje Ionic Android aplikacije bez Google Storea"},{"@type":"BreadcrumbList","@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic-app-update\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Po\u010detna stranica","item":"https:\/\/www.tomislavstankovic.com\/blog\/"},{"@type":"ListItem","position":2,"name":"A\u017euriranje Ionic Android aplikacije bez Google Storea"}]},{"@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\/6721","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=6721"}],"version-history":[{"count":17,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/posts\/6721\/revisions"}],"predecessor-version":[{"id":6743,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/posts\/6721\/revisions\/6743"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/media\/6723"}],"wp:attachment":[{"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/media?parent=6721"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/categories?post=6721"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/tags?post=6721"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}