React-native-onesignal: onOpened event not triggered when app runs in background.

Created on 9 Jul 2018  路  6Comments  路  Source: OneSignal/react-native-onesignal

Description:
Hi guys this is my first call for help. I have an issue getting the onOpened event to fire when a notification is clicked on when the app is running in the background. It works perfectly from a cold start meaning when the app is completely closed and opened by pressing on the notification. onReceived, Init and everything else works fine. Followed the setup docs as is. Ive been reading everywhere and looked at the example project.

Environment
"react": "16.3.1",
"react-native": "0.55.4",
"react-native-onesignal": "^3.2.5"

Added using Yarn

compileSdkVersion 23
buildToolsVersion "27.0.3"

Running on Android device

Steps to Reproduce Issue:

  • Installed OneSignal using Yarn

  • Successfully registered device on OneSignal Platform.
  • Successfully sent tags.
  • Successfully received push notifications using Onsignal platform and postman.
  • onReceived event triggers every time with payload data. (Success)
  • When push notification is received and pressed while the app is completely closed , app will launch and alert inside of the onOpened method will fire. (Success)
  • When app is running in the background and notification is received and pressed the app will come into focus but the Alert in the onOpened method wont fire. (Failure)
  • `
    import React, { Component } from 'react';
    import {
    Platform,
    StyleSheet,
    AppState,
    Text,
    Alert,
    View
    } from 'react-native';
    import { Root } from "native-base";
    import { Router, Scene, Actions } from 'react-native-router-flux';
    import OneSignal from 'react-native-onesignal';

    import stores from './app/libs/mrDataLib';
    import { observer, Provider, inject } from 'mobx-react/native'
    import onBoarding from './app/pages/onBoarding/mrOnBoarding';

    export default class App extends Component {
    constructor(props) {
    super(props);
    this.state = {
    };
    }

    componentWillMount() {
    OneSignal.init("xxxxxxxx-xxxxxxx-xxxxxxxx-xxxxxxx");
    OneSignal.configure();
    OneSignal.inFocusDisplaying(2);
    }

    componentDidMount() {
    this.onOpened = this.onOpened.bind(this); // Taken from onesignal example
    OneSignal.addEventListener('opened', this.onOpened);
    OneSignal.addEventListener('received', this.onReceived);

    }

    componentWillUnmount() {
    OneSignal.removeEventListener('received', this.onReceived);
    OneSignal.removeEventListener('opened', this.onOpened);
    }

    onOpened(openResult) {
    // This is where my problem lies
    // Fires when app is not running and opened from notification clicked.
    // Does not fire when app is running in the background or minimised.
    Alert.alert('Test');
    };

    onReceived(notification) {
    Alert.alert('Test');
    }

    render() {
    return (
    <Root>
    <Provider store={stores}>
    <Router wrapBy={observer}>
    <Scene key="root">
    <Scene hideNavBar={true} key="onBoarding" back={false} component={onBoarding} title="onBoarding" initial={true} />
    </Scene>
    </Router>
    </Provider>
    </Root>
    );
    }

    Anything else:

    I have looked online but with no luck, please can you help me.

    Most helpful comment

    Hello,

    I'm having the same problem. When the app is in the background and I open the notification it takes me to the app but it doesn't trigger the events, and when the app is opened or not opened at all it works fine.

    Here are the versions I'm woking with:
    "react": "16.8.6"
    "react-native": "0.59.4"
    "react-native-onesignal": "3.2.12"

    I'm also running it on an android device, android version 9. I haven't been able to test it on an iPhone yet.

    All 6 comments

    Have you seen this issue regarding RN app restarts? https://github.com/geektimecoil/react-native-onesignal/issues/583

    This issue should now be fixed in version 3.2.6

    Hello,

    I'm having the same problem. When the app is in the background and I open the notification it takes me to the app but it doesn't trigger the events, and when the app is opened or not opened at all it works fine.

    Here are the versions I'm woking with:
    "react": "16.8.6"
    "react-native": "0.59.4"
    "react-native-onesignal": "3.2.12"

    I'm also running it on an android device, android version 9. I haven't been able to test it on an iPhone yet.

    add OneSignal.inFocusDisplaying(2);

    I am using one signal version "react-native-onesignal": "^3.5.0"
    still facing the same issue: onOpened event not triggered when app runs in background

    Still not working, any updates?

    Was this page helpful?
    0 / 5 - 0 ratings