我已经为示例tvOS应用程序设置了顶层架子,但点击topshelf项目并没有启动该应用程序。我已经设置了显示网址,但我不确定我是否做得对...任何人都知道如何做到这一点?
答案 0 :(得分:4)
您可能会错过.plist文件中的网址方案。
我的info.plist网址方案:
我的顶级货架项目的displayURL:
var displayURL: NSURL {
let components = NSURLComponents()
components.scheme = "openApplication"
components.path = "LiveStreamsViewController"
components.queryItems = [NSURLQueryItem(name: "channelID", value: String(self.id))]
return components.URL!
}
如果用户点击顶部货架中的物品,应用程序将打开。在appDelegate中,您可以捕获您的URL并使用它执行其他操作:
func application(app: UIApplication, openURL url: NSURL, options: [String: AnyObject]) -> Bool {
// When the user clicks a Top Shelf item, the application will be asked to open the associated URL.
if let viewController = self.window?.rootViewController?.storyboard?.instantiateViewControllerWithIdentifier("liveStream") as? LiveStreamsViewController {
if let queryItemValue = NSURLComponents(URL: url, resolvingAgainstBaseURL: false)?.queryItems?.first?.value, let channelID = Int(queryItemValue) {
viewController.pageIndex = channelID
self.window?.rootViewController?.presentViewController(viewController, animated: true, completion: nil)
}
}
return true
}
在此示例中,我打开另一个视图控制器而不是主视图控制器。