Push notification deep links don't open on Android if the app is killed

Hi,

Expo SDK version: 47.0.8
expo-notifications version: 0.17.0
Managed workflow

I am having the same problem as is reported here. The issue is that when the distribution build of the app is fully closed, and a push notification is received with a deep link in it, tapping on the push notification opens the app, but does not direct to the correct screen. This, however, is fully working when the app is running and is working on iOS.

I’ve attempted the suggested solution from the GitHub thread mentioned above to move Notifications.addNotificationResponseReceivedListener() to the App.js file, but saw no difference.

Below is the code for listening for push notifications.

const App = () => {
  const notificationListener = useRef();
  const responseListener = useRef();
  requestTrackingPermissionsAsync();
  const [loaded] = useFonts(customFonts);

  useEffect(() => {
    const data = new CustomerioConfig();
    data.logLevel = CioLogLevel.debug;

    const env = new CustomerIOEnv();
    env.siteId = config.CIO_SITE_ID;
    env.apiKey = config.CIO_API_KEY;
    env.region = Region.EU;

    CustomerIO.initialize(env, data);
  }, []);

  useEffect(() => {
    notificationListener.current =
      Notifications.addNotificationReceivedListener((notifications) => {
        Log.info('Notification received', notifications);
      });

    responseListener.current =
      Notifications.addNotificationResponseReceivedListener((response) => {
        Log.info('Notification selected', response);
        const { url } = response?.notification?.request?.content?.data;
        Linking.openURL(url);
      });

    return () => {
      Notifications.removeNotificationSubscription(
        notificationListener.current,
      );
      Notifications.removeNotificationSubscription(responseListener.current);
    };
  }, []);

  return (
    <Provider store={store}>
      <PersistGate persistor={persistor}>
        <AnalyticsProvider client={segmentClient}>
          <StripeProvider
            publishableKey={config.STRIPE_API_KEY}
            merchantIdentifier={config.APPLE_MERCHANT_ID}
          >
            <RNPProvider>{loaded && <AppNavigation />}</RNPProvider>
          </StripeProvider>
        </AnalyticsProvider>
      </PersistGate>
    </Provider>
  );
};

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.