如何在 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;
}
我有一个 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;
}