Мост между мирами как WebViewJavascriptBridge упрощает жизнь мобильным разработчикам

01 Aug, 2024

Репозиторий давно не обновлялся

Последнее обновление было 2 года назад.

14,317
🔱 2,959
👥 505

Знакомо чувство, когда нужно "подружить" нативный код с веб-вью в мобильном приложении? WebViewJavascriptBridge — это как переводчик между Objective-C и JavaScript, который уже 13 лет помогает разработчикам создавать гибридные приложения без головной боли.

Почему этот мост так популярен?

С момента создания в 2011 году проект собрал 14.3k звёзд на GitHub и используется в таких приложениях как Facebook Messenger и Paper. В чём секрет? В простоте и надёжности.

Три кита WebViewJavascriptBridge:

  1. Универсальность — работает с WKWebView, UIWebView (iOS) и WebView (OSX)
  2. Двусторонняя связь — можно вызывать методы JS из Objective-C и наоборот
  3. Минимальный 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 выступает триггером для установки соединения между средами.

Кому особенно пригодится?

  1. Разработчикам гибридных приложений — когда часть логики на веб-технологиях, а часть на нативном коде
  2. Командам, мигрирующим с UIWebView на WKWebView — библиотека поддерживает оба варианта
  3. Создателям кросс-платформенных решений — единый API для iOS и macOS

Начать просто

Установка через CocoaPods:

pod 'WebViewJavascriptBridge', '~> 6.0'

Или вручную — достаточно добавить файлы проекта. Библиотека полностью ARC-совместима, что избавляет от проблем с управлением памятью.

WebViewJavascriptBridge — это как швейцарский нож для разработчиков, работающих с гибридными приложениями. Проверенная временем библиотека с поддержкой современных WebKit API и простым интерфейсом. Если в вашем проекте нужно связать JavaScript и нативный код — определённо стоит попробовать.

Кстати, в репозитории есть отличные примеры для iOS и macOS — идеальная отправная точка для экспериментов.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.