Итак, я наконец узнал через некоторое время
На самом деле тот факт, что OpenUrl не вызывается, когда приложение еще не запущено, является довольно логичным.
Пример: my_app://query?id=azerty
Пример кода:
public class AppDelegate : UIApplicationDelegate
{
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
/* ... */
if (launchOptions != null && launchOptions.Count > 0)
{
try
{
var url = launchOptions["UIApplicationLaunchOptionsURLKey"] as NSUrl;
var result = AppDeepLinksEntry(url);
}
catch (Exception ex) { /* ... */ }
}
/* ... */
}
#region OpenUrl
public override bool OpenUrl(UIApplication app, NSUrl url, NSDictionary options)
{
return AppDeepLinksEntry(url);
}
public override bool OpenUrl(UIApplication application, NSUrl url, string sourceApplication, NSObject annotation)
{
return AppDeepLinksEntry(url);
}
#endregion OpenUrl
private bool AppDeepLinksEntry(NSUrl url)
{
Debug.WriteLine($"OpenUrl Url : {url}");
Debug.WriteLine($"OpenUrl Url Query: {url.Query}");
Debug.WriteLine($"OpenUrl Url Host: {url.Host}");
Debug.WriteLine($"OpenUrl Url Path: {url.Path}");
return true;
}
}
Я надеюсь, что объяснение и пример кодавыше поможет вам понять и / или решить ваши будущие проблемы!
Макс