Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы WebKit ссылка на протокол WebScripting

Опции
Развертывание Target:

На этой странице
Язык:

WebScripting

WebScripting неофициальный протокол, определяющий методы, которые классы могут реализовать для экспорта их интерфейсов в среду WebScript, таких как JavaScript.

Не все свойства и методы экспортируются в JavaScript по умолчанию. Объект должен реализовать методы класса, описанные ниже для указания свойств и методов для экспорта. Кроме того, если его тип возврата и все его параметры не являются объектами Objective C или скалярами, метод не экспортируется.

Аргумент метода и типы возврата, которые являются объектами Objective C, будут преобразованы в надлежащие типы для среды сценариев. Например:

  • nil преобразовывается в неопределенный.

  • NSNumber объекты будут преобразованы в числа JavaScript.

  • NSString объекты будут преобразованы в строки JavaScript.

  • NSArray объекты будут отображены на специальных массивах только для чтения.

  • NSNull будет преобразован в JavaScript null.

  • WebUndefined будет преобразован в неопределенный.

  • WebScriptObject экземпляры будут развернуты для среды сценариев.

Экземпляры всех других классов будут обернуты прежде чем быть переданным сценарию и развернуты, когда они возвращаются к Objective C. Типы примитивов такой как int и char брошены к числовому в JavaScript.

Доступом к атрибутам объекта, таким как переменные экземпляра, управляет кодирование значения ключа (KVC). Методы KVC setValue:forKey: и valueForKey: используются для доступа к атрибутам объекта от среды сценариев. Кроме того, среда сценариев может делать попытку любого числа запросов атрибута или вызовов метода, не экспортирующихся Вашим классом. Можно управлять этими запросами путем переопределения setValue:forUndefinedKey: и valueForUndefinedKey: методы из протокола кодирования значения ключа.

Исключения могут быть повышены от среды сценариев путем отправки a throwException: обменивайтесь сообщениями к соответствующему WebScriptObject экземпляр. Метод, повышающий исключение, должен быть в рамках вызова сценария.

Наследование


Не применимый

Соответствует


Не применимый

Оператор импорта


Swift

import WebKit

Objective C

@import WebKit;

Доступность


Доступный в OS X v10.3.9 и позже.
  • Возвращает имя среды сценариев для атрибута, указанного ключом.

    Объявление

    Swift

    class func webScriptNameForKey(_ name: UnsafePointer<Int8>) -> String!

    Objective C

    + (NSString *)webScriptNameForKey:(const char *)name

    Параметры

    name

    Имя атрибута.

    Возвращаемое значение

    Имя раньше представляло атрибут в среде сценариев.

    Оператор импорта

    Objective C

    @import WebKit;

    Swift

    import WebKit

    Доступность

    Доступный в OS X v10.3.9 и позже.

  • Возвращает имя среды сценариев для селектора.

    Объявление

    Swift

    class func webScriptNameForSelector(_ aSelector: Selector) -> String!

    Objective C

    + (NSString *)webScriptNameForSelector:(SEL)aSelector

    Параметры

    aSelector

    Селектор.

    Возвращаемое значение

    Имя раньше представляло селектор в среде сценариев.

    Обсуждение

    Это - Ваша ответственность гарантировать, что возвращенное имя уникально для сценария, вызывающего этот метод. Если возвращается этот метод nil или Вы не реализуете его, имя по умолчанию для селектора создается следующим образом:

    • Двоеточие (“”:) в Objective C селектор заменяется подчеркиванием (“_”).

    • Подчеркивание в селекторе Objective C снабжается префиксом знак доллара (“$”).

    • Знак доллара в селекторе Objective C снабжается префиксом другой знак доллара.

    Следующая таблица показывает примеры того, как создается имя по умолчанию:

    Селектор Objective C

    Имя сценария по умолчанию для селектора

    setFlag:

    setFlag_

    setFlag:forKey:withAttributes:

    setFlag_forKey_withAttributes_

    propertiesForExample_Object:

    propertiesForExample$_Object_

    set_$_forKey:withDictionary:

    set$_$$_$_forKey_withDictionary_

    Так как конструкция по умолчанию для имени метода может сбить с толку в зависимости от его имени Objective C, необходимо реализовать этот метод и возвратить более человекочитаемое имя.

    Оператор импорта

    Objective C

    @import WebKit;

    Swift

    import WebKit

    Доступность

    Доступный в OS X v10.3.9 и позже.

  • Возвраты, должен ли селектор быть скрыт от среды сценариев.

    Объявление

    Swift

    class func isSelectorExcludedFromWebScript(_ aSelector: Selector) -> Bool

    Objective C

    + (BOOL)isSelectorExcludedFromWebScript:(SEL)aSelector

    Параметры

    aSelector

    Селектор.

    Возвращаемое значение

    YEStrue если селектор, указанный aSelector должен быть скрыт от среды сценариев; иначе, NOfalse.

    Обсуждение

    Только методы с допустимыми параметрами и типами возврата экспортируются в WebKit среда JavaScript. Допустимые типы являются объектами Objective C и скалярами. Значение по умолчанию YEStrue.

    Оператор импорта

    Objective C

    @import WebKit;

    Swift

    import WebKit

    Доступность

    Доступный в OS X v10.3.9 и позже.

  • Возвраты, должен ли ключ быть скрыт от среды сценариев.

    Объявление

    Swift

    class func isKeyExcludedFromWebScript(_ name: UnsafePointer<Int8>) -> Bool

    Objective C

    + (BOOL)isKeyExcludedFromWebScript:(const char *)name

    Параметры

    name

    Имя атрибута.

    Возвращаемое значение

    YEStrue если атрибут, указанный name должен быть скрыт от среды сценариев; иначе, NOfalse.

    Обсуждение

    Значение по умолчанию YEStrue.

    Оператор импорта

    Objective C

    @import WebKit;

    Swift

    import WebKit

    Доступность

    Доступный в OS X v10.3.9 и позже.

  • Когда сценарий пытается вызвать метод на представленный объект непосредственно, выполняется.

    Объявление

    Swift

    func invokeDefaultMethodWithArguments(_ args: [AnyObject]!) -> AnyObject!

    Objective C

    - (id)invokeDefaultMethodWithArguments:(NSArray *)args

    Параметры

    args

    Параметры, которые будут переданы методу по умолчанию.

    Возвращаемое значение

    Результат вызова метода по умолчанию.

    Оператор импорта

    Objective C

    @import WebKit;

    Swift

    import WebKit

    Доступность

    Доступный в OS X v10.3.9 и позже.

  • Вызов неопределенного метода дескрипторов от среды сценариев.

    Объявление

    Swift

    func invokeUndefinedMethodFromWebScript(_ name: String!, withArguments args: [AnyObject]!) -> AnyObject!

    Objective C

    - (id)invokeUndefinedMethodFromWebScript:(NSString *)name withArguments:(NSArray *)args

    Параметры

    name

    Имя неопределенного метода.

    args

    Параметры передали неопределенному методу.

    Возвращаемое значение

    Результат вызова неопределенного метода.

    Обсуждение

    Когда сценарий пытается вызвать метод, не непосредственно экспортируемый в среду сценариев, этот метод вызывается. Необходимо возвратить результат вызова, преобразованного соответственно для среды сценариев.

    Оператор импорта

    Objective C

    @import WebKit;

    Swift

    import WebKit

    Доступность

    Доступный в OS X v10.3.9 и позже.

  • Когда среда сценариев сбрасывается, выполняет очистку.

    Объявление

    Swift

    func finalizeForWebScript()

    Objective C

    - (void)finalizeForWebScript

    Обсуждение

    Этот метод вызывается на объекты, представленные среде сценариев непосредственно перед тем, как сбрасывается среда сценариев. После вызова на принимающий объект больше не будет ссылаться среда сценариев. Дальнейшие ссылки на WebScriptObject экземпляры, создаваемые представленным объектом, будут недопустимы и могут привести к непредсказуемым результатам.

    Оператор импорта

    Objective C

    @import WebKit;

    Swift

    import WebKit

    Доступность

    Доступный в OS X v10.3.9 и позже.