Интерфейс плагина виджета
Если Вы хотите определить пользовательский плагин для использования с виджетом, основной класс плагина должен поддерживать интерфейс Плагина Виджета. Этот интерфейс предоставляет основную поддержку инициализации для Вашего сменного кода вместе с доступом к веб-представлению Вашего виджета. Можно также использовать этот интерфейс для регистрации пользовательских объектов JavaScript для использования кодом виджета.
В то время как интерфейс Плагина Виджета требуется всех плагинов виджета, реализование дополнительного протокола WebScripting предоставляет Вам возможность соединить данные мостом между собственным кодом Вашего плагина и кодом JavaScript Вашего виджета. Узнайте больше о протоколе WebScripting путем чтения Используя Objective C Из JavaScript и WebScripting
.
Методы
Следующие разделы описывают методы интерфейса Плагина Виджета.
initWithWebView:
Инициализатор по умолчанию для Вашего плагина.
- (id) initWithWebView:(WebView*)webView |
Используйте этот метод для выполнения основной инициализации основного класса виджета. webView
параметр содержит объект представления, используемый для отображения содержания виджета. Этот метод вызывают, прежде чем страница HTML Вашего виджета полностью загружается.
Если необходимо сделать дополнительную инициализацию после того, как плагин загружается, необходимо представить метод от сменного объекта выполнить ту инициализацию. Можно тогда вызвать тот метод от обработчика событий onLoad страницы HTML виджета. См. windowScriptObjectAvailable: для получения информации о том, как создать мост между Вашими классами Objective C и JavaScript.
Реализация этого метода требуется.
windowScriptObjectAvailable:
Указывает, что scriptable объект теперь доступен.
- (void) windowScriptObjectAvailable:(WebScriptObject *) windowScriptObject |
Этот метод уведомляет Вас, что объект сценариев окна доступен для Вашего использования. Можно использовать этот метод для представления классов Objective C, поскольку JavaScript возражает так, чтобы к ним мог получить доступ код виджета.
Когда Ваш плагин получает windowScriptObjectAvailable:
сообщение, вызовите setValue:forKey:
метод windowScriptObject для соединения объекта Objective C (значение) с именем объекта клиенты JavaScript должен использовать.
Следующий пример регистрирует экземпляр класса MyScriptObject:
- (void) windowScriptObjectAvailable:(WebScriptObject *) scriptObj |
{ |
MyScriptObject* myObj = [[MyScriptObject* alloc] init]; |
[scriptObj setValue:myObj forKey:@"MyScriptObj"]; |
} |
После публикации объекта этим способом можно обратиться к нему в коде JavaScript именем, которое Вы дали ему. От предыдущего примера, если объект представил вызванный метод finishInitialization
, Вы могли вызвать тот метод с помощью следующего кода JavaScript:
function MyWebPageLoadHandler() |
{ |
if (MyScriptObj) |
{ |
MyScriptObj.finishInitialization(); |
} |
... |
} |