Вопрос проверяет знание способов интеграции веб-интерфейса с нативным кодом мобильного приложения, что необходимо для создания гибридных приложений или встраивания веб-контента.
Взаимодействие между фронтендом (обычно HTML/JS, загруженным в WebView) и нативным приложением (Android/iOS) — ключевая задача для гибридных приложений, прогрессивных веб-приложений (PWA) или просто встраивания веб-контента. Основной компонент — это WebView, который действует как мини-браузер внутри приложения.
myapp://action?data=value), которую перехватывает нативное приложение и выполняет соответствующее действие.// Нативная часть (Kotlin/Android)
class JsBridge(private val webView: WebView) {
@JavascriptInterface
fun showToast(message: String) {
Toast.makeText(webView.context, message, Toast.LENGTH_SHORT).show()
}
}
// В Activity, настраивая WebView:
webView.settings.javaScriptEnabled = true
webView.addJavascriptInterface(JsBridge(webView), "AndroidBridge")
// JavaScript часть в WebView
function callNativeToast() {
// Вызываем нативный метод через инжектированный объект
if (window.AndroidBridge) {
window.AndroidBridge.showToast("Hello from JS!");
}
}Такое взаимодействие используется в гибридных приложениях (Cordova/Ionic), когда часть логики реализована на веб-технологиях, а доступ к аппаратным функциям — через нативный код. Также в приложениях, которые динамически загружают контент с сервера (например, новостные приложения с веб-статьями), но требуют нативной навигации или платежей.
Вывод: Используйте WebView с мостом, когда нужно быстро разработать кроссплатформенное приложение с обновляемым веб-контентом, но с доступом к нативным API. Для более тесной интеграции и производительности рассмотрите React Native или нативную разработку.