是否可以使用Swift在iOS 8中启动另一个应用程序?

Gra*_*hen 9 ios swift ios8

是否可以从另一个应用程序中启动任何应用程序?

例如,在我的应用程序中,我希望用户按下按钮并启动另一个应用程序(不要关闭当前应用程序,只需打开另一个应用程序并切换到它).

如何使用Swift在iOS 8中完成?

Ast*_*oCB 10

执行此操作的唯一方法是使用应用程序开发人员必须创建的深层链接.

iOS SDK不允许您的应用与其他应用互动,除非它使用iOS 8中引入的新Extensions框架.但是,此扩展只允许您在另一个应用中提供自己应用的内容和功能:您无法强制使用其他应用打开.

您所描述的内容只能通过非常罕见的深层链接实现,并且必须由您尝试打开的应用程序的开发人员定义.

因此,例如,您的应用程序中的链接可以打开Pocket应用程序,它允许您保存文章以供以后阅读,使用pocket://链接(而不是http://https://),同样,可以使用pebble://链接打开Pebble Smartwatch应用程序.但是,这些是由这些应用程序的开发人员定义的链接,并且此技术不适用于所有应用程序.


Mid*_* MP 6

我认为您正在寻找Apple URL Schemes.如果第三方应用程序定义了任何URL Schemes,则可以使用以下代码打开它:

if let url  = URL(string: "http://stackoverflow.com/questions/24728854/is-it-possible-to-launch-another-app-in-ios-8-using-swift/") // Change the URL with your URL Scheme
{
    if UIApplication.shared.canOpenURL(url)
    {
        UIApplication.shared.openURL(url)
    }
}
Run Code Online (Sandbox Code Playgroud)