12

UIApplication:openURL行得通吗?

NSString *iTunesLink = @"http://www.youtube.com/watch?v=TFFkK2SmPg4";
BOOL did = [[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];

这无济于事。

4

1 回答 1

11

我假设您想要测试自定义 URL 方案。您将需要canOpenURL先查看是否可以打开 URL。canOpenURL返回一个BOOL值,该值指示 URL 的方案是否可以由安装在设备上的某些应用程序处理。如果canOpenURL返回YES,那么您将继续使用 . 打开 URL openURL

默认情况下,YouTube 链接会在 iOS 设备上打开 YouTube 应用。由于 YouTube 的应用程序无法在 tvOS 测试版中访问,因此此行为尚无法在新的 Apple TV 上进行测试。

以下是如何canOpenURL使用其自定义 URL 方案查看 Facebook 是否安装在 iOS 设备上的示例:

对象-C:

// Check if FB app installed on device
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"fb://"]]) {
   [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"fb://profile/355356557838717"]];
}
else {
   // FB not installed
   // Do something else
}

迅速:

// Check if FB app installed on device
if UIApplication.sharedApplication().canOpenURL(NSURL(string:"fb://")!) {
    UIApplication.sharedApplication().openURL(NSURL(string:"fb://profile/355356557838717")!)
}
else {
    // FB not installed
    // Do something else
} 

我预计 Facebook 等应用程序将采用与 iOS 对应的相同方式实现其自定义 URL 方案。

于 2015-09-20T11:10:39.047 回答