Expo - scheduled notification. Bring app to foreground - react-native

I have been searching through the Expo documentation and haven't been able to find anything.
Is it possible to bring an app to the foreground using expo?
e.g. if I made a simple alarm clock - would it be possible to bring the app to the foreground and show an alarm screen without actively clicking on a notification?
I'm interested in both iOS and Android - any information is very much appreciated.

Related

Disable local notifications on button press in Expo / react-native

I have an Expo app (which has been ejected but there is very little native code being used). I am using expo-notifications to schedule local notifications for the user. I am only doing this for background/killed state notifications. There are no foreground notifications.
I'd like to know if it's possible to turn them on or off when a button is pressed without losing all the notification data in React-native/Expo?
I want to add a toggle in the settings screen to turn notifications on or off and I can't figure out how to do this. I can of course cancel all scheduled notifications with cancelAllScheduledNotificationsAsync, but then if they toggle notifications back on all the existing ones would be lost.
I'm hoping to avoid having to store a bunch of data in AsyncStorage for this.
I'm working on handling this all in push notifications (which will solve a lot of headaches) but that's still a way out from being ready.

How to implement Background Fetch on React Native | Expo?

There was a task to make push notifications when the application is completely off.
Need to implement some Background Task Manager that will be at intervals such as a minute to check for new notifications for a specific user. In simple words, make a background fetch.
Previously, I implemented push notifications in the application.But they work only when the application is enabled or simply minimized. When the app is completely off Push does not work.
Has anyone done this before ?
I use Expo for this project.

How to slience the device (either ios or android) completely in certain time of the day with React Native

I want to build an app that mute the device in certain time of the day with React Native, that says, it should start running in the background once the phone is started. Is that possible? Or its something had to be done in the actual native code? I did research online but can't find a solution at all.

react native event when first opened

I am trying to get the correct event for the first start up in a react native app.
I understand AppState and can get these statuses from the React Native Docs
App States
active - The app is running in the foreground
background - The app is running in the background. The user is either
in another app or on the home screen
inactive - This is a state that occurs when transitioning between
foreground & background, and during periods of inactivity such as
entering the Multitasking view or in the event of an incoming call
In the docs it mentions that when the app first loads AppState.currentState will be null, but I can find when that would happen.
Why do I even care you ask, I am trying to send a "login" event, but I don't want it every time the app becomes active. If it is relevant I am working on a cross platform app, both Android and IOS need to be supported.

how to keep ios app using opentok video chat in foreground

I've integrated opentok ios sdk in my iOS 7 app, it is working fine, except this problem:
During video chat if I don't access iPhone for 5-10 seconds..then my app moves into background, causing viewer at other end to hear only audio. Video is disabled after app goes to background state.
I've observed same thing with their official example
https://github.com/opentok/opentok-ios-sdk/tree/master/samples/OpenTokFullTutorial
How can I avoid my app going to background while video chat is ongoing. Skype is working fine in this case, I want to achieve same thing.
What you want to do is prevent the iPhone from going to sleep. To do this, you cant try this:
[UIApplication sharedApplication].idleTimerDisabled = YES;
Here is iOS documentation on idleTimerDisabled
If you don't want the app going into background at all (like when the user taps on home button), you can opt to kill the app when it's not running instead of having it run in the background. To do that, check out iOS guide on opting out of background execution
If you do not want your app to run in the background at all, you can
explicitly opt out of background by adding the
UIApplicationExitsOnSuspend key (with the value YES) to your app’s
Info.plist file. When an app opts out, it cycles between the
not-running, inactive, and active states and never enters the
background or suspended states. When the user presses the Home button
to quit the app, the applicationWillTerminate: method of the app
delegate is called and the app has approximately 5 seconds to clean up
and exit before it is terminated and moved back to the not-running
state.
Hope that helped!