PureBasic

WebGadget()

Синтаксис

Result = WebGadget(#Gadget , x , y , Width , Height , URL$)

Описание


Создает Гаджет "Интернет-браузер" (WebGadget) в текущем списке Гаджетов (GadgetList). Он использует браузерный движок встроенный в Операционную Систему и может отображать html-страницы.

Параметры

#Gadget Номер для идентификации нового Гаджета. В качестве этого параметра можно использовать значение #PB_Any, чтобы сгенерировать этот Номер автоматически.
x, y, Width, Height Позиция и размеры нового Гаджета.
URL$ URL-адрес для загрузки после создания Гаджета.

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

Возвращает не нулевое значение в случае успешного создания Гаджета, в противном случае возвращает ноль. Если в качестве параметра #Gadget использовалось значение #PB_Any, то в случае успеха, возвращаемым значением будет сгенерированный Номер Гаджета.

Эта функция завершается ошибкой, если не удается загрузить необходимые компоненты для WebGadget. Ниже приведены требования к WebGadget для каждой ОС.

Комментарии

Следующие компоненты необходимы для использования WebGadget на каждой ОС. Эти компоненты необходимы для использования WebGadget не только при компиляции программы, но и в уже готовом исполняемом файле. Если созданное приложение использовать на компьютере, где нет необходимых компонентов, то оно работать не будет!

Windows
В Windows WebGadget использует Internet Explorer 4.0+ и объект ActiveX.

Не забудьте заменить "\" на "/" в ваших кодах.
Linux
В Linux WebGadget использует библиотеку WebKitGtk. Пакет с этой библиотекой называется 'libwebkit'. Некоторые дистрибутивы могут включать в себя старую версию этого пакета, которая называется 'WebKitGtk'. Если в вашем дистрибутиве нет пакета для этой библиотеки, исходники можно загрузить с домашней страницы WebKitGtk.
MAC OSX
В MacOSX WebGadget использует компонент WebKit. Этот компонент поставляется вместе с операционной системой. Дополнительных требований нет.
Для работы с WebGadget могут использоваться следующие функции:

- SetGadgetText(): Изменяет текущий URL.
- GetGadgetText(): Возвращает текущий URL (URL отображаемого веб-сайта).
- SetGadgetState(): Выполняет дополнительные действия с WebGadget, для чего доступны следующие константы:
  #PB_Web_Back   : Один шаг назад по истории навигации.
  #PB_Web_Forward: Один шаг вперёд по истории навигации.
  #PB_Web_Stop   : Остановить загрузку текущей страницы.
  #PB_Web_Refresh: Обновить текущую страницу.


- SetGadgetItemText(): Со значением #PB_Web_HtmlCode в качестве параметра 'Item', html-код можно транслировать в Гаджет. (Только для Windows)
- GetGadgetItemText(): Для получения информации можно использовать следующие константы (только для Windows):
  #PB_Web_HtmlCode     : Возвращает html-код из Гаджета.
  #PB_Web_PageTitle    : Возвращает заголовок отображаемой страницы.
  #PB_Web_StatusMessage: Возвращает сообщение строки состояния.
  #PB_Web_SelectedText : Возвращает выделенный текст внутри Гаджета.
- SetGadgetAttribute(): Устанавливает следующие атрибуты (только Windows):
  #PB_Web_ScrollX       : Устанавливает позицию горизонтальной прокрутки.
  #PB_Web_ScrollY       : Устанавливает позицию вертикальной прокрутки.
  #PB_Web_BlockPopups   : Включает блокировку всплывающих окон. При блокировке окна генерируется событие #PB_EventType_PopupWindow.
  #PB_Web_BlockPopupMenu: Включает блокировку всплывающих меню. При блокировке меню генерируется событие #PB_EventType_PopupMenu.
  #PB_Web_NavigationCallback: Устанавливает обратный вызов для отслеживания (и отключения) навигации.
Процедура обратного вызова навигации должна иметь следующий формат:

Procedure NavigationCallback(Gadget, Url$)
    ;
    ; Вернём #True чтобы разрешить это перемещение или #False чтобы запретить.
    ;
    ProcedureReturn #True
EndProcedure

- GetGadgetAttribute(): Возвращает значения следующих атрибутов (только Windows):
  #PB_Web_ScrollX       : Возвращает позицию горизонтальной прокрутки.
  #PB_Web_ScrollY       : Возвращает позицию вертикальной прокрутки.
  #PB_Web_Busy          : Возвращает не нулевое значение, если Гаджет занят загрузкой страницы.
  #PB_Web_Progress      : Возвращает текущее значение (иногда приближённую оценку) прогресса после события #PB_EventType_DownloadProgress.
  #PB_Web_ProgressMax   : Возвращает текущее значение (иногда приближённо) макс. прогресса после события #PB_EventType_DownloadProgress.
  #PB_Web_BlockPopups   : Возвращает текущие настройки для блокировки всплывающих окон.
  #PB_Web_BlockPopupMenu: Возвращает текущие настройки для блокировки всплывающих меню.
  #PB_Web_NavigationCallback: Возвращает текущий обратный вызов навигации (если задан).
С этим Гаджетом могут могут произойти следующие типы событий :
  #PB_EventType_TitleChange     : Заголовок страницы изменён (только Windows).
  #PB_EventType_StatusChange    : Сообщение об изменении статуса. (только Windows).
  #PB_EventType_DownloadStart   : Началась загрузка страницы. (Windows, OS X).
  #PB_EventType_DownloadProgress: Сведения о прогрессе доступны через функцию GetGadgetAttribute() (только Windows). 
  #PB_EventType_DownloadEnd     : Загрузка страницы завершена (или прервана). (Windows, OS X).
  #PB_EventType_PopupWindow     : Блокировано всплывающее окно. (только Windows).
  #PB_EventType_PopupMenu       : Всплывающее меню заблокировано (полезно для отображения пользовательского меню) (только для Windows).

Пример

  If OpenWindow(0, 0, 0, 600, 300, "Гаджет WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    WebGadget(0, 10, 10, 580, 280, "https://www.purebasic.com")
    ; Note: Примечание: если вы хотите использовать локальный файл, измените последний параметр на "file://" + путь + имя файла
    Repeat
    Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf



Пример 2: (с обратным вызовом навигации)

; Этот пример показывает сайт PureBasic.com. Внутри процедуры обратного вызова
; навигация в раздел 'News' запрещается (возвращается #False), но разрешается
; для всех других разделов сайта (возвращается #True).

Procedure NavigationCallback(Gadget, Url$)
    If Url$= "https://www.purebasic.com/news.php"
        MessageRequester("", "Навигация запретила сюда ходить!")
        ProcedureReturn #False
    Else
        ProcedureReturn #True
    EndIf
EndProcedure

If OpenWindow(0, 0, 0, 600, 300, "Гаджет WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    WebGadget(0, 10, 10, 580, 280, "https://www.purebasic.com")
    SetGadgetAttribute(0, #PB_Web_NavigationCallback, @NavigationCallback())
    Repeat
    Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

См. также

GetGadgetText(), SetGadgetText(), GetGadgetItemText(), SetGadgetItemText(), SetGadgetState(), GetGadgetAttribute(), SetGadgetAttribute()

Поддерживаемые OS

Все

<- UseGadgetList() - Оглавление Gadget - WebGadgetPath()->