The following document describes how to integrate the Xamarin Android plugin to support deep linking.

In order to integrate your app with the deep linking, you will need to add the following intent-filter for an appropriate activity to the Android Manifest File:

<intent-filter>
	<data android:scheme="apx" />
	<data android:host="deeplink" />
	<action android:name="com.appoxee.VIEW_DEEPLINK" />
	<category android:name="android.intent.category.DEFAULT" />
	<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>

Example:

<activity android:name="com.mappp.MappAndroidSDKTest.DeepLinkActivity">
	<intent-filter>
		<data android:scheme="apx" />
		<data android:host="deeplink" />
		<action android:name="com.appoxee.VIEW_DEEPLINK" />
		<category android:name="android.intent.category.DEFAULT" />
		<category android:name="android.intent.category.BROWSABLE" />
	</intent-filter>
</activity>

The current version of deep linking requires the developer to anticipate where a deep link will be received in the app. 

On each app page where a deep link is expected put this piece of code: 

Android.Net.Uri uri;
if (intent != null)
{
      if ("com.appoxee.VIEW_DEEPLINK".Equals(intent.Action))
      {
          uri = intent.Data;
          //Data supplied from the front-end.
          var link = uri.GetQueryParameter("link");
          //This is the messageId
          var messageId = uri.GetQueryParameter("message_id");
          //This is the eventTrigger only for version 5.0.7 and higher
          var eventTrigger = uri.GetQueryParameter("event_trigger");

      }
}

Example:

protected override void OnCreate(Bundle savedInstanceState)
{
      base.OnCreate(savedInstanceState);
      Xamarin.Essentials.Platform.Init(this, savedInstanceState);
      SetContentView(Resource.Layout.activity_deeplink);


      Android.Net.Uri uri;
      if (this.Intent != null)
      {
          if ("com.appoxee.VIEW_DEEPLINK".Equals(this.Intent.Action))
          {
              uri = this.Intent.Data;
              //Data supplied from the front-end.
              string link = uri.GetQueryParameter("link");
              //This is the messageId
              string messageId = uri.GetQueryParameter("message_id");
              //This is the eventTrigger only for version 5.0.7 and higher
              string eventTrigger = uri.GetQueryParameter("event_trigger");



             /* Deeplink*/ 
             // Intent newActivity = new Intent(Intent.ActionView);
             //newActivity.SetData(Android.Net.Uri.Parse(link));
             //StartActivity(newActivity);

          }
      }

}