tvOS topshelf没有启动应用程序

时间:2015-10-28 15:47:06

标签: tvos

我已经为示例tvOS应用程序设置了顶层架子,但点击topshelf项目并没有启动该应用程序。我已经设置了显示网址,但我不确定我是否做得对...任何人都知道如何做到这一点?

1 个答案:

答案 0 :(得分:4)

您可能会错过.plist文件中的网址方案。

我的info.plist网址方案:

info.plist URL scheme

我的顶级货架项目的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
}

在此示例中,我打开另一个视图控制器而不是主视图控制器。