Я установил простое приложение Xamarin, чтобы попробовать и использовать Deep Linking. Глубокая связь работает отлично, когда я использую симулятор IOS. Но я не могу заставить его работать на Android во время отладки на устройстве Android.
Я настроил MainActivity.cs
так,
[IntentFilter(new[] { Intent.ActionView },
Categories = new[] {
Intent.ActionView,
Intent.CategoryDefault,
Intent.CategoryBrowsable
},
DataScheme = "photocapture",
DataHost = "PhotoCapture",
DataPathPrefix = "/photocapture/")
]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
AndroidAppLinks.Init(this);
LoadApplication(new App());
}
}
Тогда в моем App.cs
у меня есть переопределение для OnAppLinkRequestReceived
protected override async void OnAppLinkRequestReceived(Uri uri)
{ .... }
На устройстве Android я скачал HTML-файл со следующим href
<html>
<head>
<title>Product 12345</title>
</head>
<body>
<a href="photocapture://PhotoCapture.Views.PhotoCapturePage?id=123">Deeplink</a>
</body>
</html>
Когда я нажимаю эту ссылку на устройстве Android, приложение не открывается, и OnAppLinkRequestReceived
не отлавливается в отладчике.
Также, если я найду имя приложения на устройстве Android, оно появится. Проблема в том, что при нажатии на глубокую ссылку из внешнего источника.
Я пропустил шаг или сделал что-то не так?