Метод getInitialNotification не вызывается, когда приложение находится в фоновом режиме в реагировать родной - PullRequest
0 голосов
/ 28 апреля 2020

В android я пытаюсь вызвать метод getInitialNotification () в моем componentDidMount приложения. js Класс, но когда мое приложение находится в фоновом режиме, и я нажимаю на уведомление, мое приложение не открывается, нажимая на уведомление, а также извлекается уведомление

вот мой код метода componentDidMount

  firebase.notifications().getInitialNotification()
            .then((notificationOpen: NotificationOpen) => {
                if (notificationOpen) {
                    console.log('getInitialNotification AppJS : ########: ')
                    // App was opened by a notification
                    // Get the action triggered by the notification being opened
                    const {action, notification} = notificationOpen
                    let item = JSON.parse(notification.data.body)
                    console.log('getInitialNotification AppJS : ########: item ', item)
                    console.log('getInitialNotification AppJS : ########: action ', action)
                    setTimeout(() => {
                        EventBus.getInstance().fireEvent('NOTIFICATION', {item: item})
                    }, 5000)
                }
            })

вот мой AndroidManifest. xml


  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
  <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
  <uses-permission android:name="android.permission.VIBRATE" />
  <uses-permission android:name="android.permission.CAMERA"/>
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    <application
      android:name=".MainApplication"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:allowBackup="false"
      android:usesCleartextTraffic="true"
      android:theme="@style/AppTheme">
      <activity
          android:name=".SplashActivity"
          android:label="@string/app_name"
          android:launchMode="singleTask"
      >
        <intent-filter>
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
      <activity
          android:name=".MainActivity"
          android:label="@string/app_name"
          android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
          android:screenOrientation="portrait"
          android:exported="true"
          android:windowSoftInputMode="adjustResize"
          android:launchMode="singleTask"
      />
      <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
      <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="APIKEYVALUE"/>
      <service android:name="io.invertase.firebase.messaging.RNFirebaseMessagingService">
        <intent-filter>
          <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
      </service>
      <service android:name="io.invertase.firebase.messaging.RNFirebaseInstanceIdService">
        <intent-filter>
          <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
        </intent-filter>
      </service>
      <service android:name="io.invertase.firebase.messaging.RNFirebaseBackgroundMessagingService" />
    </application>

</manifest>

вот мой SplashActivity. java код

@Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            Intent fcmIntent = this.getIntent();
            Bundle bundle = fcmIntent.getExtras();

            Intent intent = new Intent(this, MainActivity.class);
            intent.putExtras(fcmIntent);
            startActivity(intent);
            finish();
        }
...