Ios 如何在Swift应用程序中使用自定义URL打开另一个Swift应用程序

Ios 如何在Swift应用程序中使用自定义URL打开另一个Swift应用程序,ios,swift3,deep-linking,custom-url,Ios,Swift3,Deep Linking,Custom Url,我为Swift应用程序设置了自定义URL。我想在其他应用程序的按钮操作上使用此URL进行深度链接。我尝试了UIApplication.shared.open(NSURL(字符串:“redirectToApp://Testapp/startPage”)!作为URL,选项:[:],completionHandler:nil),但它不起作用。有什么建议吗 更新: 重定向至app://Testapp/startPage从Safari打开应用程序 谢谢 首先,您不应该在Swift3中使用NSURL,您应该

我为Swift应用程序设置了自定义URL。我想在其他应用程序的按钮操作上使用此URL进行深度链接。我尝试了
UIApplication.shared.open(NSURL(字符串:“redirectToApp://Testapp/startPage”)!作为URL,选项:[:],completionHandler:nil)
,但它不起作用。有什么建议吗

更新:

重定向至app://Testapp/startPage
从Safari打开应用程序


谢谢

首先,您不应该在Swift3中使用NSURL,您应该使用本机Swift版本URL。在iOS9+上,您还必须将LSApplicationQueriesSchemes条目添加到Info.plist文件中,以便能够使用深度链接打开应用程序

例如,如果您想打开Uber应用程序,您必须执行以下操作:
UIApplication.shared.open(URL(字符串:“uber://)!)。
从code开始,并将以下行添加到Info.plist文件:

<key>LSApplicationQueriesSchemes</key>
<array>
  <string>uber</string>
</array>
LSApplicationQueriesSchemes
优步

确保您编写的代码带有错误检查/处理功能,这样您就可以找出哪些不起作用

试着这样做:

    if let url = URL(string: "redirectToApp://Testapp/startPage")
    {
        if UIApplication.shared.canOpenURL(url)
        {
            UIApplication.shared.open(url, options: [:], completionHandler: {
                (success) in
                if (success)
                {
                    print("OPENED \(url): \(success)")
                }
                else
                {
                    print("FAILED to open \(url)")
                }
            })
        }
        else
        {
            print("CANNOT open \(url)")
        }
    }

“它不起作用了" ... 这是什么意思?你有错误吗?有其他应用程序打开吗?网页打开了吗?什么都没发生吗?你确定你在执行那一行吗?动作什么都不做。根本没有响应。这段代码根本没有执行。我要做的就是重新启动Xcode。可能是因为两个项目同时开工?谢谢您的时间。这段代码根本没有执行。我要做的就是重新启动Xcode。可能是因为两个项目同时开工?谢谢您的时间。这段代码根本没有执行。我要做的就是重新启动Xcode。可能是因为两个项目同时开工?谢谢你抽出时间。