如何在 Xamarin Forms 中处理自定义 URL 方案

How to handle custom URL scheme in Xamarin Forms

我有一个 Xamarin Forms Shell 应用程序,但我目前专注于 ios 平台。

自定义示例 url:myawesomeapp:report?id=22

在 iOS,我已将自定义 URL 方案 'myawesomeapp' 添加到 info.plist。现在点击自定义 url 成功启动我的应用程序,AppDelegate 中的 OpenUrl 被点击。

但是我如何处理 id=22 以将我带到该特定记录?

我的应用程序结构正在使用 AppShell。我有一个列出报告的 ItemsPage.xaml,选择一个将在 ItemDetailPage.xaml 上显示该报告。这是我在遵循自定义 url.

时想要模拟的流程

提前致谢。

理想的方法是在您的 App.xaml.cs 中创建一个方法,它将接受给定的查询,然后您可以从 OpenUrl.

调用该方法

示例如下:

App.xaml.cs

public void ParseAndPerformNavigation(string query)
{
   //Do string operation and get the parameter
   //Perform Navigation
}

您更新后的 OpenUrl 应该是这样的:

public override bool OpenUrl(UIApplication app, NSUrl url, NSDictionary options)
{
   var App = (App)Xamarin.Forms.Application.Current;
   App.ParseAndPerformNavigation(url.AbsoluteString);
   return false;
}