Я добавил виджет «Сегодня» в свое приложение. Сегодняшнее расширение включает UITableView. Теперь я хотел бы открыть приложение, если была нажата ячейка UITableView. Кто-нибудь из вас знает, как это сделать?
Откройте основное приложение через сегодняшнее расширение
comment
Пожалуйста, взгляните на этот stackoverflow.com/questions/24019820/
- person JulianM   schedule 14.08.2015
Ответы (2)
Сегодня расширения имеют доступ к NSExtensionContext
который позволяет открыть приложение. В вашем контроллере расширения:
let myAppUrl = NSURL(string: "myapp://some-context")!
extensionContext?.openURL(myAppUrl, completionHandler: { (success) in
if (!success) {
// let the user know it failed
}
})
Параметр успеха предоставляется, потому что система может быть не в состоянии открыть определенный URL-адрес (скажем, вы хотите запустить «twitter://», но у пользователя не установлено приложение Twitter. Если вы запускаете собственное приложение, это не должно быть проблемой.
person
Christopher Pickslay
schedule
15.08.2015
Поскольку вы сказали, что хотите, чтобы он запускался, когда пользователь нажимает на UITableViewCell, предположительно, вы бы назвали его в
tableView:didSelectRowAtIndexPath:
- person Christopher Pickslay; 15.08.2015
Я уже пробовал это, но функция
tableView:didSelectRowAtIndexPath
не работает.
- person paro; 15.08.2015
Я уже пробовал это, но функция
tableView:didSelectRowAtIndexPath
не работает.
- person paro; 15.08.2015
Существует ошибка, из-за которой нажатие на пустые области в
UITableViewCell
s не приводит к обратным вызовам табличного представления. Взгляните на stackoverflow.com/questions/26223537.
- person Christopher Pickslay; 16.08.2015
В порядке. Спасибо за вашу помощь!
- person paro; 17.08.2015
Предоставленный код Кристофера Пикслея отлично работает, вам просто нужно добавить следующие строки в 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>
Вот полное руководство, как открыть приложение или поделиться пользовательскими настройками по умолчанию с расширением и содержащим его приложением.
person
Mikita Manko
schedule
16.02.2017