Scheduling app in ionic which triggers functions after specified time - angularjs

I'm a newbie to Ionic app development and have a requirement for which I've mined the internet but in vain.
My requirement is as below:
The user can select a Time Period i.e say 3hrs from now, after this time period, a trigger will run within the app and will perform a certain function depending what the user has selected (like play music, send sms or email). I have my individual modules of code ready for playing music, sending sms or email.
I only need to know how to trigger those events in ionic.
The important part is that the trigger should work even when the app is closed, screen is locked and should also survive a reboot.
I've tried the following, http://www.gajotres.net/how-to-use-local-notifications-with-ionic-framework/ ,
https://github.com/wnyc/cordova-plugin-wakeuptimer ,
https://scotch.io/tutorials/build-a-real-time-scheduling-app-using-angularjs-and-firebase but could not meet my requirements and in Vain.
Please help me and guide me through this.
Thanks in Advance,

Thats not possible with ionic, as hack u can use local notification and schedule notification as per ur requirement, on tap u can call any other action.

Related

Advice: I'm trying to make a tracking time feature in my application but when should I send the data to the backend

I'm making a client management system in Laravel and ReactJS. I use Laravel for the backend and the api and ReactJS (with Context API) for the frontend of course.
I want to add a tracking timer into my application so the idea is that you can click on a button and select a client and it will start a timer, when you click on the stop button it will stop the timer and the time passed, is how much you spend working for that client.
My question is when should I send the time spend to the backend API?
My ideas:
After the users clicked on the stop button.
Every single minute (but with this technique the client will send a lot of requests to the backend).
NOTE: When a user refreshes the page the timer needs to continue where it left off.
Does anyone have some advice on how to do this?
From your requirement, I guess that's fair enough when the stop button is clicked. In fact, you may capture the date-time
once start is clicked
once again when the stop button is clicked also find the difference between these two to identify the time consumed in your client application.
This way, refreshing the page will have no impact since these are loosely coupled.

react native cron job lib

I am working on a react-native based mobile app using expo.
in the app the user can set schedules for medication reminders, for that I am using expo-notifications to show those reminders.
expo-notifications provides some functions to schedule notifications, but it is not that flexible.
schedules like every Sunday at 09:00am, or every 2 days at 05:00pm, daily at 08:30pm, and so on...
I need a library that helps in scheduling those reminder notifications, with the ability to cancel the scheduled notification.
My important thing is that the suggested library should work even if the app is backgrounded or killed.
Any other suggestions on how to make reminders that work even if the app is backgrounded or killed are appreciated.
I tried node-schedule but I found it works only if the app is in foreground.
thanks in advance
You can check out react-native-background-timer: https://github.com/ocetnik/react-native-background-timer

CodenameOne API, how to customise Local Notification text

I think i've found a blocker in my app development that i hope you can help me out with please.I am using a CN1 Local Notification and i want them to be triggered at an interval at a particular time. The LocalNotification sample project works but please can you answer this. How can i code it so that each local notification text n.setAlertTitle() is customised\different each day, from reading from a List? All the examples i read have static text.
I had thought of not making it repeat but initiating a new notification upon the user clicking previous one, but this would have the problem that if the user ignores the notification then no more would be sent, so i abandoned that approach.
Many thanks in advance.
The solution is not to issue a recurring notification and instead register several separate notifications. You will need to store and manage the notification ID's so you can cancel and replace them.
In order to change the text dynamically your app needs to run and the basic idea of the notification is that it occurs while your app isn't running so it must be static.

How to integrate payment gateway in applications created using javascript frameworks like ExtJs?

Our application is a one-page application created using ExtJs. For any user action, the browser tab is never reloaded and all the actions are performed using ajax. A user can open/close multiple ExtJs windows/panels within the same browser tab, and this way everything remains confined to the same browser tab.
Now, we need to integrate payment gateway in the application, which involves redirecting the user to the bank website and having her brought back to our application.
The issue is that when browser redirects the user, then all the application javascript code along with panels and windows get destroyed, and when the user comes back to the application then she finds it to be different from one she left.
As a solution to this, we were thinking of using following two appraoches:
Option 1. Maintaining the state of application - When user leaves for the bank's website then somehow we maintain the state of application - like which windows are opened carrying what data, which variables have which values etc.. and when user returns back, we generate the same application state for her.
Option 2. Have a browser pop-up window for payment gateway - We intend to provide a button which will open a small pop-up window carrying the transaction details, and in this pop-up window the entire payment gateway process will take place taking care of redirection and everything.
Option 1 is proving to be very cumbersome and complicated as maintaining the exact state is not getting feasible.
For Option 2, we are not sure if this is safe and possible?
Has anyone implemented such an approach earlier. Otherwise, what are the other options which we can go for?
Thanks for any help in advance.
I faced the problem and I implemented it using websocket/polling in the main application while a new window pops up for the payment.
After the payment is successful the main application will be notified.
That way each payment runs in it own sandbox totally unbound from the main application which makes maintenance quite easy. Note that our backend create a new session for each payment using the existing one.
I think it is not uncommon to open new windows for payment that's why I decided to go this.

Geoloqi Geofencing Logic Flow

All,
I have been looking high and low for a solution and at this point I am baffled. I am not looking for code here. I am just looking for the proper logic flow to alert users of my app that an event is taking place nearby using Geoloqi.
My platforms:
Geoloqi: Geofencing
Appcelerator Cloud Services: User, Event and Message Management
Language: javascript
Mobile: iPhone and Android
What I am trying to do:
1) I want users of my app to be able to create an event, then create a trigger based on that event.
2) I want users of my app who are near the event to be automatically alerted that the event is happening.
What I have so far:
1) Create an Appcelerator Event - Works fine
2) Create a Geoloqi Layer including the Appcelerator EventID - Works fine
3) Create a Geoloqi Trigger for the above layer - Works fine
I can see everything getting to the Geoloqi debugger. I just don't see the alert going out. I saw a post that the anonymous user needs to subscribe to the layer in order for the trigger to send to my users inside the trigger geofence. I just don't understand how to do that. I have tried several code permutations around the user/create_anon method with a key using either the anonymous username or the user access token to subscribe to the layer with no luck. I have tried using the access token returned on init as the parameter to subscribe with no luck.
I am wondering, however, if I can get the same effect by using a place instead of the layer, and avoiding the subscription issue. I somehow doubt this as the place has to reside in a default layer.
Color me confused. I already went through hell and back just getting the push certs set up for Apple, so any and all help is greatly appreciated.
Thanks,
Bruce
Bruce,
I'd recommend hitting the geoloqi developer IRC channel. You can get to it from one of the developer pages on their website. The geoloqi guys are usually online and they've been very helpful to me in the past.
If you do get it working, I'd love to hear the solution/flow for it! Hope that helps!
Tyler
OK, so here is what I am doing. Not sure yet if it is the answer, but I think it will work.
Create a default layer with no boundaries and a key that is the same each time the app runs. This will ensure the same layer is used based on Geoloqi's anti-dupe logic.
Create an anon user using the logged in user's email address since I am using Appcelerator to handle the user management. If I understand this correctly, this will also ensure the same anon-user is used if the user logs in again later. The anon user is automatically subscribed to the default layer.
When the user wants to create an event, the app creates an event on Appcelerator, creates a layer with a radius of x, a trigger on that layer, and sends a broadcast message to all users in the default layer using the trigger centerpoint and radius to limit the message to the immediate area.
If the user wants to cancel the event, the app sends a broadcast message to the default
layer in the same way the layer was created, then deletes the Appcelerator event and the layer.
I have all the code hooked in except the anonymous user. I can see the triggers being set and the messages being created on the Geoloqi Debugger, but I don't always get them. I'll be hooking in the anonymous user next week, so we shall see.

Resources