通过今天的扩展打开主应用程序

Open main app via today extension

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

今天扩展程序可以访问 NSExtensionContext which allows you to open an app。在您的扩展控制器中:

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

提供成功参数是因为系统可能无法打开特定的URL(比如你想启动"twitter://"但用户没有安装Twitter应用程序。如果你正在启动您自己的应用程序,这应该不是问题。

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

    <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>

这里是 complete guide 如何打开应用程序或与扩展程序和包含的应用程序共享用户默认设置。