20
Views
5
Comments
[Firebase Mobile] Deep link push notification does not always work
Forge component by David Sousa
23
Published on 26 May 2020
Application Type
Mobile
Platform Version
11.9.0 (Build 17011)

Hello everyone,

Deep link push notification with Firebase Mobile plugin is not work 100% on Android and sometime also on iOS, 

In Android, when the mobile app is not yet started (not exist in recent task manager), the push notification deep link parameter can be received and it will redirected to the specific screen.

Meanwhile if the app is closed but it exists in recent task manager, when receiving another push notification it won't redirect to any page. Just stay in the home screen.

Also, when the mobile app is in foreground or being used, there is no native pop up push notification retrieved, I wonder is this the plugin behaviour or not? Can I change it by modifying the plugin? Is there any solution or workaround to achieve the deep link feature with Firebase Mobile?

I have a  sample demo video on how it behaves with our current project app, here's the link: https://drive.google.com/open?id=16uW3BdW8LadYzJWZq6Ec8V8tVwhv_1fl

And I've attached an .oml file to show how I implemented the plugin. Thank you.

note: yes I've posted this question on forum here. but it didn't catch as a question in the component support section so I try to re-post.

DeeplinkingApp.oml

Rank: #1379

Hi Aditya,

I am currently facing the exact same problem, I posted yesterday before I saw your post. I think I have figured out what the problem is. When the app is killed and you open the app, the screen is rendered again, therefore triggering the FirebaseCloudMessaging block. When you have your app open in the background when receiving the notification, the screen is not refreshed and therefore the FirebaseCloudMessaging block is not triggered and the deeplink is not detected. We need to find a way to refresh the screen when App on Resume. I already tried an OnParametersChanged on the screen and was hoping to trigger a full screen refresh, but that also doesn't work. We need to find another way, at least I think, to force the screen to refresh and trigger the FirebaseCloudMessaging block. Here is a link to my question on the forum: https://www.outsystems.com/forums/discussion/66866/use-firebase-push-notification-deeplink-when-application-is-running-on-background/ 

Rank: #1379

I found the problem! Weirdly, we had some screens where it was working and some screens where it wasn't. That was weird because we used the same layout webblock on both screens. We did some tests and this tests has pointed us to the problem. We had a screen where it was working, we made a new button on a screen which linked to that screen where it was working. The push notification was working when we went to the screen through the working button, but when using the newly made button, the push notifications, again, didn't work. So the journey from button to screen was leading to working or non working push notifications. That is when we decided to change the Module Transition of the button to None (it was previously on slide from left). Now it works!! So appearently the module transition between screens has impact on the push notifications. When changing all module transitions to none, we suddenly had no issues with the push notifications. I will inform OutSystems of this weird behavior



Hello Tyler, thank you for your responses.

I tried to change all the transitions in my example mobile app but still the deep link didn't work for me. Here's what I did:

I've change the global module transitions into none, also in the splash screen and login transition:

However, if we need to remove all the animation transition in order to make the deep link worked, wouldn't that be a bad user experience? Anyway I've attached my sample mobile app after removing all the transitions.

DeeplinkingApp.oml

Rank: #1379

Hi Aditya,

Too bad it still doesn't work for you. I looked at your oml and I saw that the Login flow still has a fade transition in the RedirectToURL. Maybe if you also change that value to None it will work? Also the OnClick in the application Title there still is a Fade transition. 

I completely agree with you that changing all the transitions is bad for the user experience. Therefore I will contact OutSystems and describe the problem we have and hope they will fix it for us. 

Let me know if changing these last 2 transistion fixes your problem, otherwise I will have another look for you! Maybe you can also put some logging in the FirebasecloudMessaging block to ensure it enters the function.

Kind regards,

Tyler


Hey Tyler,

You're right I missed those 2 transitions before, but it is unfortunate it still didn't work for me after changing those transitions. Is it because we used different plugins? Since I'm using this one and you are using other Firebase plugin (https://www.outsystems.com/forge/component-overview/1406/firebase), or it doesn't actually matter?

Also, I'm generated the Android .apk with MABS 6.3 version.