NSUserActivity
NSUserActivity
объект инкапсулирует состояние пользовательского действия в приложении на определенном устройстве в пути, позволяющем тому же действию продолжаться на другом устройстве в соответствующем приложении от того же разработчика. Пользовательские действия включают действия, такие как редактирование документа, просмотр веб-страницы или просмотр видеофильма.
Например, пользователь, редактирующий документ о Mac, должен оставить, но может продолжать редактировать тот документ о iPhone. Лицо, смотрящее кино на iPad, может продолжать смотреть на Mac. В обоих случаях пользователи возобновляют действие в точке, в которой они остановились на исходном устройстве. Ваши приложения должны работать для создания этого опыта максимально бесшовным.
Пользовательское действие может продолжаться только в приложении, (1) имеющем ту же Команду разработчика ID как исходное приложение действия и (2) поддержки тип действия. Приложение указывает, что действие вводит, это поддерживает в Info.plist
под NSUserActivityTypes
ключ. При получении пользовательского действия для продолжения система определяет местоположение надлежащего приложения для запуска путем считания приложений с той же Командой ID как передающее приложение, затем фильтрации на типе входящего действия.
Для имения Команды ID приложения должны быть распределены через App Store или быть подписанным ID Разработчиком. Приложения, совместно использующие Команду ID, могут выборочно направить действия друг между другом посредством разумного использования действия activityType
свойство. Это оказывает поддержку связанным приложениям, структурированным по-другому между платформами. Например, единственное приложение Mac может направить каждый из своих типов действия к меньшим, приложениям специального назначения на iOS.
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.10 и позже.
-
Инициализирует и возвращается недавно создаваемый
NSUserActivity
объект с данным типом действия.Объявление
Swift
init(activityType
activityType
: String)Objective C
- (instancetype)initWithActivityType:(NSString *)
activityType
Параметры
activityType
Тип действия, которое будет продолжаться. Значение является определенной разработчиками строкой в формате обратного DNS условно, например,
com.myCompany.myEditor.editing
.Возвращаемое значение
NSUserActivity
объект.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
Инициализирует и возвращается недавно создаваемый
NSUserActvity
объект с первым действием вводит отNSUserActivity
введите приложениеInfo.plist
.Объявление
Swift
init()
Objective C
- (instancetype)init
Возвращаемое значение
NSUserActivity
объект.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
Булево значение, определяющее, может ли продолжающееся приложение запросить потоки быть открытыми назад исходному приложению.
Объявление
Swift
var supportsContinuationStreams: Bool
Objective C
@property BOOL supportsContinuationStreams
Обсуждение
Если значение этого свойства
YES
true
, продолжающееся приложение может соединиться назад с исходным приложением для получения дополнительной информации с помощью потоков. Это значение установлено вNO
false
по умолчанию. Это может динамично быть установлено вYES
true
выборочно поддерживать потоки продолжения на основе состояния пользовательского действия.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
Потоки запросов назад к исходному приложению.
Объявление
Swift
func getContinuationStreamsWithCompletionHandler(_
completionHandler
: (NSInputStream!, NSOutputStream!, NSError!) -> Void)Objective C
- (void)getContinuationStreamsWithCompletionHandler:(void (^)(NSInputStream *inputStream, NSOutputStream *outputStream, NSError *error))
completionHandler
Параметры
completionHandler
Блок обработчика завершения, возвращающий потоки.
Блок берет три параметра:
inputStream
Поток, из которого продолжающееся приложение может считать данные, записанные исходным приложением.
outputStream
Поток, в который продолжающееся приложение пишет данные, которые будут считаны исходным приложением.
error
Если успешный,
nil
; если не успешный,NSError
объект, инкапсулирующий причину, почему не могли быть созданы потоки.Обсуждение
Когда приложение запускается для события продолжения, оно может запросить потоки назад к исходному приложению. Потоки могут быть успешно получены только от
NSUserActivity
объект вNSApplication
илиUIApplication
делегат, которого вызывают для события продолжения. Потоки предоставлены обработчиком завершения в нераскрытом состоянии, и делегат должен открыть их сразу, чтобы начать связываться с продолжающей стороной.Потоки продолжения являются дополнительной функцией Хэндофф, и для большинства пользовательских действий не нужны они для успешного продолжения. Когда потоки необходимы, простой запрос из продолжающегося приложения, сопровождаемого ответом от исходного приложения, достаточно для большинства событий продолжения.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
Словарь, содержащий специфичную для приложения информацию состояния, должен был продолжать действие на другом устройстве.
Объявление
Swift
var userInfo: [NSObject : AnyObject]?
Objective C
@property(copy) NSDictionary *userInfo
Обсуждение
Каждый ключ и значение должны иметь следующие типы:
NSArray
,NSData
,NSDate
,NSDictionary
,NSNull
,NSNumber
,NSSet
,NSString
, илиNSURL
. Система может перевести схему URLs файла, которые отсылают к документам iCloud правильному файлу URLs на продолжающемся устройстве.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
Добавляет к
userInfo
словарь записи из данного словаря.Объявление
Swift
func addUserInfoEntriesFromDictionary(_
otherDictionary
: [NSObject : AnyObject])Objective C
- (void)addUserInfoEntriesFromDictionary:(NSDictionary *)
otherDictionary
Параметры
otherDictionary
Словарь, содержащий записи, которые будут добавлены.
Обсуждение
Передача максимально маленькая полезная нагрузка в
userInfo
словарь. Чем больше данных полезной нагрузки, которые Вы поставляете, тем дольше они берут действие для возобновления.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
Отмечает получатель как действие, использующееся в настоящее время пользователем.
Объявление
Swift
func becomeCurrent()
Objective C
- (void)becomeCurrent
Обсуждение
Типичным примером текущего пользовательского действия является действие, связанное с передовым активным окном. Недавно создаваемое пользовательское действие приемлемо на продолжение на другом устройстве после первого раза, когда это становится текущим.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
Пользовательский делегат объекта действия.
Объявление
Swift
weak var delegate: NSUserActivityDelegate?
Objective C
@property(weak) id< NSUserActivityDelegate > delegate
Обсуждение
Пользовательскому делегату действия сообщают, когда действие сохраняется или продолжается (см.
NSUserActivityDelegate
).Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
Указывает, что должно быть обновлено состояние действия.
Объявление
Swift
var needsSave: Bool
Objective C
@property(assign) BOOL needsSave
Обсуждение
Если
YES
true
, делегат к этому пользовательскому действию получает auserActivityWillSave:
обратный вызов перед действием отправляется за продолжением на другом устройстве.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
Лишает законной силы действие, когда это больше не имеет право на продолжение.
Объявление
Swift
func invalidate()
Objective C
- (void)invalidate
Обсуждение
Приложение вызывает этот метод, когда пользователь прекращает участвовать в действии, такой как тогда, когда закрывается окно, связанное с действием. Недопустимое действие не может стать текущим.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
activityType activityType
СвойствоТип действия, с которым создавался пользовательский объект действия. (только для чтения)
Объявление
Swift
var activityType: String { get }
Objective C
@property(readonly, copy) NSString *activityType
Обсуждение
Это свойство только для чтения, потому что тип действия не может быть изменен после того, как пользовательский объект действия создается.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
Дополнительный, видимый пользователем заголовок для этого действия, такого как название документа или заголовок веб-страницы.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
webpageURL webpageURL
СвойствоВеб-страница для загрузки в браузере для продолжения действия.
Обсуждение
Когда никакое подходящее приложение не установлено на возобновляющемся устройстве и
webpageURL
свойство установлено, указанная веб-страница загружается, и пользовательское действие продолжается веб-браузер.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.