Giter Site home page Giter Site logo

quasar-app-extension-onesignal's Introduction

Quasar App Extension OneSignal

Adds onesignal push notifications to quasar framework apps.

web,pwa and corodova are supported

Setup

yarn add quasar-app-extension-onesignal
quasar ext invoke onesignal

PWA mode

For pwa mode, edit the generated src-pwa/register-service-worker.js and change register(process.env.SERVICE_WORKER_FILE, { to register('/OneSignalSDKWorker.js', {

API

Extends vue components and the app with $oneSignal:

    $vm.$oneSignal === {
        get Instance (): Object|Array; // returns window.OneSignal
        setup (appId: string, initConfig?: Object) ;
        optIn (extenalUserId?: string);
        optout ();
    }

Usage

  // setup one signal
  app.$oneSignal.setup(process.env.ONESIGNAL_APP_ID)

  store.watch(
    () => store.state.auth.user,
    function (user) {
      if (user) {
        // optin using an optional external_user_id
        app.$oneSignal.optIn(user.push_id)
      } else {
        // optout
        app.$oneSignal.optOut()
      }
    }
  )

quasar-app-extension-onesignal's People

Contributors

motia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

quasar-app-extension-onesignal's Issues

Pwa updating error

Using this extension alongside PWA project with register-service-worker.js and using the method updated to reload the page after new release detection, the browser is reloading multiple times and can't find any release.

Pwa Options:

      workboxPluginMode: 'GenerateSW',
      workboxOptions: { skipWaiting: true, clientsClaim: true }, // only for GenerateSW

Code used in register-service-worker.js

  updated (/* registration */) {
    // console.log(registration)
    Notify.create({
      message:
        'Uma nova versão desta aplicação foi detectada. A aplicação será reiniciada para que a atualização tenha efeito.',
      icon: 'update',
      color: 'grey-8',
      textColor: 'white',
      timeout: 5000,
      onDismiss: () => {
        window.location.reload()
      }
    })
  },

Support for Quasar v3

Hi, awesome extension!

But, since many projects will probably be using Quasar v3 from now on, is it possible that you can update it to Quasar v3?

Problem with Object.assign

Hi, I'd like to comment a change at the init method
1

As you might see, after you make the assignment, properties like the notifyButton and the welcomeNotification will be overwritten by yours default object. Could you please just change the order of the assignment?

E.g:

Object.assign(
{ ...default_propoerties },
initConfig
)

How to integrate?

Hey there,

nice package! I really need to integrate OneSignal to my Quasar App (no PWA needed).
Unfortunately I can not get it to work.

I have a boot file named init.js where I put the following code:

import Vue from 'vue'

export default async ({ store, app }) => {
    ...
    if (store.getters['auth/isAuthenticated']) {
        app.$oneSignal.setup(process.env.ONESIGNAL_APP_ID)
    }
    ...

But app.$oneSignal is undefined when starting the app and throws:

boot error: TypeError: Cannot read property 'setup' of undefined

I added the package and executed quasar ext invoke onesignal. In my quasar.extensions.json is a new empty object named onesignal.

Can you please help me? How do I continue?

Best regards
Nick

Support for Quasar v2

Hi, awesome extension!

But, since many projects will probably be using Quasar v2 from now on, is it possible that you can update it to Quasar v2?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.