joaoasilva
joaoasilva

Reputation: 75

Xamarin.forms OnAppLinkRequestReceived

I'm trying to use https://developer.xamarin.com/api/member/Xamarin.Forms.Application.OnAppLinkRequestReceived/p/System.Uri/ but can't seem to get it to be called in any way.

Did anyone ever tried to implement this new method? I've tried several ways to implement different deeplinks, all of them open the app fine so they're correctly configured but that method never gets called.

Thanks.

Upvotes: 4

Views: 3304

Answers (2)

ThirdPrize
ThirdPrize

Reputation: 194

Also, your MainActivity must be derived from FormsAppCompatActivity for it to work. Once I changed it to that from FormsApplicationActivity, it started working.

Upvotes: 0

Adam
Adam

Reputation: 16199

This is how I set it up in Android.

Put this above your MainActivity.cs

 [IntentFilter(new[] { Android.Content.Intent.ActionView },
 Categories = new[]
 {
     Android.Content.Intent.CategoryDefault,
     Android.Content.Intent.CategoryBrowsable
 },
 DataScheme = "http",
 DataPathPrefix = "/tesla/",
 DataHost = "exrin.net")]

This registers the activity when the app is installed. Change the URL to your desired URL.

For Android only (no need to do this with iOS) you need to also install the Nuget Xamarin Forms AppLinks

In your OnCreate make sure you do this after your Xamarin Forms Init

 AndroidAppLinks.Init(this);

Then when you load the URL in a browser (in my example http://exrin.net/tesla) you will get this:

enter image description here

Then if you open the app it will enter here with the full URL as the URI parameter. This is in the App.cs (Xamarin.Forms.Application)

    protected override void OnAppLinkRequestReceived(Uri uri)
    {  
        base.OnAppLinkRequestReceived(uri);
    }

You can then decode the URI as you see fit to move to the specific page in your app that the URL relates to/

More details at Xamarin Forms AppLinks

Upvotes: 1

Related Questions