Deeplink now working with specific screen and input parameters


I am trying to launch the OutSystems mobile application from another third party application(built in Native Android) on Android device. I want to open a specific screen which is default screen of my application and has anonymous access. This screen has an input parameter. When I am trying to launch the application from native application with input parameter, nothing happens meaning I am not redirected to my OutSystems app. However, if I remove the input parameters, my OutSystems app gets launched. Here is what I am trying to do in Android code:

val pm = applicationContext.packageManager
        val intent:intent? = pm.getLaunchIntentForPackage("appidentifier://MyModule/DefaultScreen?ClientId=1234")
            println("Intent is null.")

I am getting Intent in null. if I use the parameter ClientId=1234, If I don't use it it works fine.

Can someone help me here and suggest if I am doing anything wrong here?

Hi Akshay,

I haven't done native Android in a couple of years, but have you tried passing those inputs outside of the link, and within the intent? With this syntax:

Thanks Afonso. How should I read them in OutSystems app?

I don't think there's any Outsystems functionality out-of-the-box for capturing Intents, you'd have to find or build a Cordova plugin that would allow you to read the Intent parameters.

I was looking at the deep link documentation and your format looks correct:

Could it be an escaping issue with the question mark/equal sign?

This is working for Android now with following code:

val packageName = "iappIdentifier"
val context = getActivity()
val pm = context!!.packageManager

val myAction = Uri.parse(“appIdentifier://Module/Screen?UserName=username&Password=password”)
val intent: Intent? = pm.getLaunchIntentForPackage(packageName)

    Toast.makeText(activity!!, "Please install the App", Toast.LENGTH_SHORT).show()

But I am struggling to get this working for iOS. Here is the code I am trying: url)!, options: [:], completionHandler: nil)
let url = "“appIdentifier://MyModule/DefaultScreen?ClientId=1234" url)!, options: [:], completionHandler: nil)

Has anyone faced this and can help me resolve?

Thank you.