I want to allow the app I'm developing to be called by other apps, using intents. I am not finding relevant information on this topic. I think I have to register the intent filter, but how do I get this in Outsystems?

Thanks in advance.

Hi Daniel,

Have you checked this out?


You might be forced to use the browser as an intermediary, however.

Hi Afonso,

Yes I did. 

I am using an external site navigation to browse to another app. 

When I return from that app, I would like to return to a screen of my outsystems mobile app. It seems that I have to register an intent filter so that Chrome knows that my app may be called.

Any ideia?

Thanks is advance

It seems that Outsystems registers the intent with your AppId when you install the app, and then you'd call an URL with the registered format. You mention that when you return from that external app, you want to go to a screen in your mobile app. 

But how are you returning? Are you closing the browser? Are you pressing back on the mobile device? To me, it looks like you need an explicit link in the external app, with the format on the documentation. And when you explicitly click on that to return, that would send you to a specific screen in your mobile app.

It is not working with an explicit link with the format of the documentation (ie: "intent://AppTest/HomeScreen#Intent;scheme=pt.serv.qa.AppTest;package=pt.serv.qa.AppTest;end;") .The # character being is being interpreted as a optional formatting character. There will be a way around it, but we think this is the wrong way to go as this string (being a Chrome Intent) only has meaning to the Chrome browser. My intent filters won't be reacting to this string - Chrome will be converting it into normal Android intents first.

It looks like that I need to use the intent plugin (https://www.npmjs.com/package/com-darryncampbell-cordova-plugin-intent).

Using this plugin is the correct way? Any other way?

Thanks in advance

Hello Daniel,

I have a plugin (that needs a lot of refactoring, but I am without time right now).

This plugin can call other applications on Android. As you discovered, you need the application to be listening.

OutSystems applications already have an intent defined (see Afonso's first link). But if you need something different, you can create. I think the only way, today, to make a mobile app to listen to different intents than the default one is to create a dummy plugin (it does nothing really), and set up the XML file with the intents you want to listen. 

I never tested it, and I am not sure, but I think there is an example in Forge...