I implemented added a today widget into my app. The today extension includes an UITableView. Now I'd like to open the app if a cell of the UITableView has been pressed. Does someone of you know how to do this?
Open main app via today extension
Asked Answered
Please take a look at this #24020320 –
Messiaen
Today extensions have access to an NSExtensionContext
which allows you to open an app. In your extension controller:
let myAppUrl = NSURL(string: "myapp://some-context")!
extensionContext?.openURL(myAppUrl, completionHandler: { (success) in
if (!success) {
// let the user know it failed
}
})
The success parameter is provided because the system may not be able to open a particular URL (say you want to launch "twitter://" but the user does not have the Twitter app installed. If you're launching your own app, this shouldn't be an issue.
Since you said you want it to launch when the user taps a UITableViewCell, presumably you'd call it in
tableView:didSelectRowAtIndexPath:
–
Kassiekassity I tried this already but the func
tableView:didSelectRowAtIndexPath
isn't working. –
Superheterodyne I tried this already but the func
tableView:didSelectRowAtIndexPath
isn't working. –
Superheterodyne There is a bug where tapping blank areas in
UITableViewCell
s does not result in table view callbacks. Take a look at stackoverflow.com/questions/26223537. –
Kassiekassity Ok. Thanks for your help! –
Superheterodyne
The provided code by Christopher Pickslay works fine, you just need to add the following lines to the application's info.plist (open as a source code):
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.mikitamanko.myapp</string>
<key>CFBundleURLSchemes</key>
<array>
<string>some-context</string>
</array>
</dict>
</array>
right after the
<?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>
Here's the complete guide how to open the app or share Users Defaults with Extension and the containing app.
© 2022 - 2024 — McMap. All rights reserved.