【问题标题】:How to handle custom URL scheme in Xamarin Forms如何在 Xamarin Forms 中处理自定义 URL 方案
【发布时间】:2020-07-21 02:38:01
【问题描述】:

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

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

在 iOS 上,我已将自定义 URL 方案“myawesomeapp”添加到 info.plist。现在点击自定义 url 会成功打开我的应用程序,并且 AppDelegate 中的 OpenUrl 会被命中。

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

我的应用结构正在使用 AppShell。我有一个列出报告的 ItemsPage.xaml,选择一个会在 ItemDetailPage.xaml 上显示该报告。这是我在关注自定义 url 时要模拟的流程。

提前致谢。

【问题讨论】:

    标签: ios xamarin.forms xamarin.ios custom-url


    【解决方案1】:

    理想的方法是在您的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;
    }
    

    【讨论】:

    • 谢谢你这对我有用。关于 OpenUrl 与 HandleOpenURL,对我来说正好相反。 VS 说不要使用 HandleOpenURL,因为它已被弃用。
    • 是的,你是对的。实际上有两个版本的 OpenURL。 This-> developer.apple.com/documentation/uikit/uiapplication/… 版本已弃用。所以你使用的是正确的。
    猜你喜欢
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多