Swift 通过今日扩展打开主应用程序

Swift 通过今日扩展打开主应用程序,swift,uitableview,xcode6,ios8-today-widget,today-extension,Swift,Uitableview,Xcode6,Ios8 Today Widget,Today Extension,我在我的应用程序中添加了一个“今日”小部件。今天扩展包括一个UITableView。现在,如果按下UITableView的某个单元格,我想打开该应用程序。你们中有人知道怎么做吗?今天,扩展可以访问NSExtensionContext。在扩展控制器中: let myAppUrl = NSURL(string: "myapp://some-context")! extensionContext?.openURL(myAppUrl, completionHandler: { (success) in

我在我的应用程序中添加了一个“今日”小部件。今天扩展包括一个UITableView。现在,如果按下UITableView的某个单元格,我想打开该应用程序。你们中有人知道怎么做吗?

今天,扩展可以访问
NSExtensionContext
。在扩展控制器中:

let myAppUrl = NSURL(string: "myapp://some-context")!
extensionContext?.openURL(myAppUrl, completionHandler: { (success) in
    if (!success) {
        // let the user know it failed
    }
})

之所以提供success参数,是因为系统可能无法打开特定的URL(假设您想启动“twitter://”但是用户没有安装Twitter应用程序。如果您正在启动自己的应用程序,这不应该是一个问题。

Christopher Pickslay提供的代码工作正常,您只需将以下行添加到应用程序的info.plist(作为源代码打开):

CbundleUrlTypes

如何打开应用程序或使用扩展名和包含的应用程序共享用户的默认值。

请看一看,因为您说过希望在用户点击UITableViewCell时启动它,大概您会在
tableView:DidSelectRowatineXpath:
中调用它,我已经尝试过了,但func
tableView:DidSelectRowatineXpath
没有正在工作。我已经尝试了此操作,但是func
tableView:didSelectRowAtIndexPath
不起作用。存在一个错误,点击
UITableViewCell
s中的空白区域不会导致表视图回调。请查看。好的。感谢您的帮助!
    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLName</key>
            <string>com.mikitamanko.myapp</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>some-context</string>
            </array>
        </dict>
    </array>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>