Using PWA service workers to save/serve web service in offline mode
I have a vue.js/Cordova app in which I want data coming from Rest web services to be available in offline mode, the trivial solution first coming to my mind is using local storage API by indexing each w.s response and make my frontend service return data from local storage in offline mode or in case of a slow internet connection. But I think doing this directly using local storage API is very tricky, and I thought maybe using service workers and pwa concept can do the task properly.
Now, my question is: in my use case, can service workers do the job? second, are service workers available in a Cordova android/iOS app ? Finally, what are probably the compatibility issues/usage risks when running on mobile devices ?
javascript cordova vue.js web-worker progressive-web-apps
add a comment |
I have a vue.js/Cordova app in which I want data coming from Rest web services to be available in offline mode, the trivial solution first coming to my mind is using local storage API by indexing each w.s response and make my frontend service return data from local storage in offline mode or in case of a slow internet connection. But I think doing this directly using local storage API is very tricky, and I thought maybe using service workers and pwa concept can do the task properly.
Now, my question is: in my use case, can service workers do the job? second, are service workers available in a Cordova android/iOS app ? Finally, what are probably the compatibility issues/usage risks when running on mobile devices ?
javascript cordova vue.js web-worker progressive-web-apps
add a comment |
I have a vue.js/Cordova app in which I want data coming from Rest web services to be available in offline mode, the trivial solution first coming to my mind is using local storage API by indexing each w.s response and make my frontend service return data from local storage in offline mode or in case of a slow internet connection. But I think doing this directly using local storage API is very tricky, and I thought maybe using service workers and pwa concept can do the task properly.
Now, my question is: in my use case, can service workers do the job? second, are service workers available in a Cordova android/iOS app ? Finally, what are probably the compatibility issues/usage risks when running on mobile devices ?
javascript cordova vue.js web-worker progressive-web-apps
I have a vue.js/Cordova app in which I want data coming from Rest web services to be available in offline mode, the trivial solution first coming to my mind is using local storage API by indexing each w.s response and make my frontend service return data from local storage in offline mode or in case of a slow internet connection. But I think doing this directly using local storage API is very tricky, and I thought maybe using service workers and pwa concept can do the task properly.
Now, my question is: in my use case, can service workers do the job? second, are service workers available in a Cordova android/iOS app ? Finally, what are probably the compatibility issues/usage risks when running on mobile devices ?
javascript cordova vue.js web-worker progressive-web-apps
javascript cordova vue.js web-worker progressive-web-apps
asked Nov 10 '18 at 22:08
jemlifathijemlifathi
3351826
3351826
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Unfortunately, if you are using cordova to serve up files from either file urls or http urls, as you probably will do unless serving from a website, it will not work on android, due to the fact that service workers only work in secure contexts. see https://www.w3.org/TR/service-workers-1/#secure-context.
However, on iOS there is a plugin that allows you to use service workers, even on older versions of iOS that have no native support.
even without the lack of support in android, service workers wouldn't be present in enough platforms to be used as a core part of your app.
In your case, as you are already using vue, i recomend using Vuex, Vue’s Application Data Store.
You also get some other benefits.
Thank you for the response, but is there a plug-in or an API to properly synchronize vuex store content with localstorage ?
– jemlifathi
Nov 11 '18 at 7:59
Yes, there is a plugin: github.com/championswimmer/vuex-persist
– Joel Ellis
Nov 11 '18 at 8:38
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53243910%2fusing-pwa-service-workers-to-save-serve-web-service-in-offline-mode%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Unfortunately, if you are using cordova to serve up files from either file urls or http urls, as you probably will do unless serving from a website, it will not work on android, due to the fact that service workers only work in secure contexts. see https://www.w3.org/TR/service-workers-1/#secure-context.
However, on iOS there is a plugin that allows you to use service workers, even on older versions of iOS that have no native support.
even without the lack of support in android, service workers wouldn't be present in enough platforms to be used as a core part of your app.
In your case, as you are already using vue, i recomend using Vuex, Vue’s Application Data Store.
You also get some other benefits.
Thank you for the response, but is there a plug-in or an API to properly synchronize vuex store content with localstorage ?
– jemlifathi
Nov 11 '18 at 7:59
Yes, there is a plugin: github.com/championswimmer/vuex-persist
– Joel Ellis
Nov 11 '18 at 8:38
add a comment |
Unfortunately, if you are using cordova to serve up files from either file urls or http urls, as you probably will do unless serving from a website, it will not work on android, due to the fact that service workers only work in secure contexts. see https://www.w3.org/TR/service-workers-1/#secure-context.
However, on iOS there is a plugin that allows you to use service workers, even on older versions of iOS that have no native support.
even without the lack of support in android, service workers wouldn't be present in enough platforms to be used as a core part of your app.
In your case, as you are already using vue, i recomend using Vuex, Vue’s Application Data Store.
You also get some other benefits.
Thank you for the response, but is there a plug-in or an API to properly synchronize vuex store content with localstorage ?
– jemlifathi
Nov 11 '18 at 7:59
Yes, there is a plugin: github.com/championswimmer/vuex-persist
– Joel Ellis
Nov 11 '18 at 8:38
add a comment |
Unfortunately, if you are using cordova to serve up files from either file urls or http urls, as you probably will do unless serving from a website, it will not work on android, due to the fact that service workers only work in secure contexts. see https://www.w3.org/TR/service-workers-1/#secure-context.
However, on iOS there is a plugin that allows you to use service workers, even on older versions of iOS that have no native support.
even without the lack of support in android, service workers wouldn't be present in enough platforms to be used as a core part of your app.
In your case, as you are already using vue, i recomend using Vuex, Vue’s Application Data Store.
You also get some other benefits.
Unfortunately, if you are using cordova to serve up files from either file urls or http urls, as you probably will do unless serving from a website, it will not work on android, due to the fact that service workers only work in secure contexts. see https://www.w3.org/TR/service-workers-1/#secure-context.
However, on iOS there is a plugin that allows you to use service workers, even on older versions of iOS that have no native support.
even without the lack of support in android, service workers wouldn't be present in enough platforms to be used as a core part of your app.
In your case, as you are already using vue, i recomend using Vuex, Vue’s Application Data Store.
You also get some other benefits.
answered Nov 10 '18 at 22:40
Joel EllisJoel Ellis
30515
30515
Thank you for the response, but is there a plug-in or an API to properly synchronize vuex store content with localstorage ?
– jemlifathi
Nov 11 '18 at 7:59
Yes, there is a plugin: github.com/championswimmer/vuex-persist
– Joel Ellis
Nov 11 '18 at 8:38
add a comment |
Thank you for the response, but is there a plug-in or an API to properly synchronize vuex store content with localstorage ?
– jemlifathi
Nov 11 '18 at 7:59
Yes, there is a plugin: github.com/championswimmer/vuex-persist
– Joel Ellis
Nov 11 '18 at 8:38
Thank you for the response, but is there a plug-in or an API to properly synchronize vuex store content with localstorage ?
– jemlifathi
Nov 11 '18 at 7:59
Thank you for the response, but is there a plug-in or an API to properly synchronize vuex store content with localstorage ?
– jemlifathi
Nov 11 '18 at 7:59
Yes, there is a plugin: github.com/championswimmer/vuex-persist
– Joel Ellis
Nov 11 '18 at 8:38
Yes, there is a plugin: github.com/championswimmer/vuex-persist
– Joel Ellis
Nov 11 '18 at 8:38
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53243910%2fusing-pwa-service-workers-to-save-serve-web-service-in-offline-mode%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown