Xamarin Deep Linking Issue - PullRequest
       8

Xamarin Deep Linking Issue

0 голосов
/ 08 ноября 2018

Я установил простое приложение 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, оно появится. Проблема в том, что при нажатии на глубокую ссылку из внешнего источника.

Я пропустил шаг или сделал что-то не так?

1 Ответ

0 голосов
/ 15 ноября 2018

Ссылка, которую я использовал, работала в IOS:

photocapture://PhotoCapture.Views.PhotoCapturePage?id=123

Не работает на Android. Мне пришлось изменить photocapture:// на http://, чтобы заставить его работать. Итоговая ссылка выглядела так:

http://PhotoCapture.Views.PhotoCapturePage?id=123
...