使用深度/通用链接时,iOS上是否存在“ App Picker”?

时间:2019-12-19 10:32:15

标签: android ios xamarin deep-linking ios-universal-links

我需要基于android功能在iOS平台上解决以下问题。

那故事是什么? 很快,我们将获得在全国范围内标准化的自定义URL方案,多个独立公司需要支持/处理。

但是,如果用户安装了多个处理该方案的应用程序,则会出现问题。

在这种情况下,在Android上,OS平台本身会向用户显示“应用选择器”对话框,以便客户可以选择他希望打开该URL /方案的应用程序。 不幸的是,在iOS上没有这样的功能,首先为该自定义方案注册的已安装应用程序始终是处理该功能的程序。

所以我的问题是:我缺少什么吗? iOS是否有可能缺少这种基本功能?

1 个答案:

答案 0 :(得分:0)

据我所知,URL/scheme应该在iOS中进行特殊设置,而Picker不能打开与Android相同的其他应用程序。

但是,您可以尝试自定义包含其他“应用程序图标”图像的弹出视图。然后,当您单击一个图像时,将调用特殊应用程序的Open Url方法。我认为这应该是iOS中的一种解决方法

例如使用DisplayActionSheet打开其他应用程序的以下代码:

private async void Button_Clicked(object sender, EventArgs e)
{
    var action = await DisplayActionSheet("ActionSheet: Open which App?", "Cancel", null, "Twitter", "Facebook");
    Debug.WriteLine("Action: " + action);
    switch (action)
    {
        case "Twitter":
            await Launcher.OpenAsync(new Uri("twitter://user?user_id=userid"));
            break;
        case "Facebook":
            await Launcher.OpenAsync(new Uri("fb://page/page_id"));
            break;
        default:
            Console.WriteLine("Default case");
            break;
    }
}

效果:

enter image description here

注意:您还可以自定义带有“图像”和“标签”的弹出视图,代码仅作为示例指南。