-
Notifications
You must be signed in to change notification settings - Fork 0
miniblinknet ad, Rus. ;)
MiniBlink (далее — MB) — это полностью бесплатный механизм веб-рендеринга с открытым исходным кодом.
Для получения полной информации посетите официальный сайт miniblink.net.
-
Шаг 1: Получите ресурсы Присоединяйтесь к группе QQ, чтобы получить DLL и файлы заголовков. Нажмите здесь, чтобы узнать номер группы
-
Шаг 2. Начните с простого окна одна исполняемая программа Начнем с простого веб-окна, в котором можно открыть веб-страницу:
В среде Windows поместите заголовочный файл в текущий каталог, выберите подходящую версию miniblink_****_x32.dll, поместите его в текущий каталог и переименуйте mb.dll.
Напишите следующий код C++.Функция входа может быть изменена в соответствии с вашим типом процесса:
#include "mb.h"
int main() { mbSettingsmbSettings,< /span>mbSettings< /span>));(sizeof,0настройки(memset();new=settings*
mbInit(настройки);
mbWebView mbView = mbCreateWebWindow( MB_WINDOW_TYPE_POPUP, nullptr, 0 , 0, 800, 600);
mbShowWindow(mbView, TRUE );
mbMoveToCenter(mbView);
mbLoadURL(mbView, "https:/ /miniblink.net/mb/api%e6%96%87%e6%a1%a3/quot;);
mbRunMessageLoop();
mbUninit();
возврат 0;
Выполните, и появится веб-окно.
какое-то объяснение Все интерфейсы MB экспортируются в чистом виде C.
mbInitВыполните операцию инициализации MB. Этот оператор должен вызываться перед всеми другими операциями MB. Подробно об инициализированных элементах конфигурации можно узнать на сайте mbInit.
mbCreateWebWindow используется для создания mbWebView с реальным окном. Первый параметр определяет тип окна, MB_WINDOW_TYPE_POPUP означает создание обычного окна, MB_WINDOW_TYPE_CONTROL означает, что его необходимо встроить в родительское окно, MB_WINDOW_TYPE_TRANSPARENT означает создание прозрачного окна. Следующие параметры — это HWND, положение, ширина и высота родительского окна. Подробности см. в mbCreateWebWindow.
mbShowWindowУстановите, отображать ли окно.
mbMoveToCenterУстанавливает окно по центру родительского окна или экрана.
mbLoadURL загружает URL-адрес, поддерживает только пути сетевых протоколов, такие как https://miniblink.net, и пути протоколов локальных файлов, такие как file:///C:/xx/xx.html, не поддерживает JS, например javascript:alert(1)Подожди.
mbRunMessageLoopЗапустите цикл сообщений МБ.
mbUninitВыполните операции по очистке.
- Шаг 3. Управляйте страницей Добавьте и выполните часть JS Мы получили окно, которое может открыть веб-страницу, но более мощная особенность MB заключается в том, что он предоставляет пакет API для работы с веб-страницами.Теперь давайте попробуем добавить и выполнить часть JS для веб-страницы.
Добавьте следующий код:
void MB_CALL_TYPE onDocumentReady(mbWebView webView, void* параметр , mbWebFrameHandle frameId) { if(mbIsMainFrame(webView ,frameId)){mbRunJsnullptr,nullptr,,,истина,"alert(1);"frameId,webView(
void helloWorld() { // .. .
mbWebView mbView = mbCreateWebWindow( MB_WINDOW_TYPE_POPUP, nullptr, 0 , 0, 800, 600);
mbOnDocumentReady(mbView, onDocumentReady , nullptr);
mbShowWindow(mbView, TRUE );
// ...
Эффект следующий: вы можете видеть, что он был выполнен alert(1);:
mbOnDocumentReady используется для установки обратного вызова для события готовности страницы. Обратите внимание, что время срабатывания происходит только тогда, когда загружен HTML-скелет страницы, а картинки, видео, ajax и т. д. скорее всего не доделаны. Мы передали в эту функцию функцию обратного вызова onDocumentReady.
mbIsMainFrameИспользуется для определения того, является ли это основным кадром. Если на веб-странице есть такие теги, как iframe, эта функция может гарантировать, что наш JS будет выполняться только тогда, когда основной фрейм готов.
mbRunJs используется для выполнения фрагмента JS-кода на странице. Здесь мы передаем JS-код alert(1);, который будет выполнен. Если вы хотите получить результат выполнения на C++, вам необходимо передать mbRunJsCallback. Подробнее см. в разделе Как взаимодействовать с C++ после того, как JS получит данные.
Теперь, когда мы поняли основные принципы работы MB, мы можем продолжить просмотр этого руководства. Существует также полнаяофициальная демо-версия, включая адресную строку, перемотку веб-страницы вперед/назад, инструменты разработчика, снимки экрана и т. д.
https://github.com/bloomberg/chromium.bb/blob/master/BUILD.md Как воще собирается этот хромиум
https://zhuanlan.zhihu.com/chrome Прекрасный блог про miniblink и не токо (на китайском)
https://gitee.com/cybran/miniblink-simple-guide/blob/master/docs/guide/getting-started.md
https://blog.csdn.net/weolar Блог от Веолара (на китайском)