Мост между мирами как WebViewJavascriptBridge упрощает жизнь мобильным разработчикам
Репозиторий давно не обновлялся
Последнее обновление было 2 года назад.
Знакомо чувство, когда нужно "подружить" нативный код с веб-вью в мобильном приложении? WebViewJavascriptBridge — это как переводчик между Objective-C и JavaScript, который уже 13 лет помогает разработчикам создавать гибридные приложения без головной боли.
Почему этот мост так популярен?
С момента создания в 2011 году проект собрал 14.3k звёзд на GitHub и используется в таких приложениях как Facebook Messenger и Paper. В чём секрет? В простоте и надёжности.
Три кита WebViewJavascriptBridge:
- Универсальность — работает с WKWebView, UIWebView (iOS) и WebView (OSX)
- Двусторонняя связь — можно вызывать методы JS из Objective-C и наоборот
- Минимальный boilerplate — всего несколько строк кода для интеграции
Как это работает на практике
Вот типичный сценарий использования:
// В Objective-C коде
[self.bridge registerHandler:@"getUserData" handler:^(id data, WVJBResponseCallback responseCallback) {
responseCallback(@{@"name": @"Иван", @"age": @30});
}];
// В JavaScript
bridge.callHandler("getUserData", null, function(response) {
alert('Пользователь: ' + response.name);
});
Такой подход особенно полезен, когда:
- Нужно получить доступ к нативным API из веб-части приложения
- Требуется обработать сложную логику на стороне устройства
- Важно сохранить производительность
Под капотом
Проект использует clever-решение с iframe для инициализации связи:
var WVJBIframe = document.createElement('iframe');
WVJBIframe.style.display = 'none';
WVJBIframe.src = 'https://__bridge_loaded__';
document.documentElement.appendChild(WVJBIframe);
Этот невидимый iframe выступает триггером для установки соединения между средами.
Кому особенно пригодится?
- Разработчикам гибридных приложений — когда часть логики на веб-технологиях, а часть на нативном коде
- Командам, мигрирующим с UIWebView на WKWebView — библиотека поддерживает оба варианта
- Создателям кросс-платформенных решений — единый API для iOS и macOS
Начать просто
Установка через CocoaPods:
pod 'WebViewJavascriptBridge', '~> 6.0'
Или вручную — достаточно добавить файлы проекта. Библиотека полностью ARC-совместима, что избавляет от проблем с управлением памятью.
WebViewJavascriptBridge — это как швейцарский нож для разработчиков, работающих с гибридными приложениями. Проверенная временем библиотека с поддержкой современных WebKit API и простым интерфейсом. Если в вашем проекте нужно связать JavaScript и нативный код — определённо стоит попробовать.
Кстати, в репозитории есть отличные примеры для iOS и macOS — идеальная отправная точка для экспериментов.
