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: Обновить текущую страницу.
#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
Все