@UntitledNikname

Как общатся с нативной средой через WebView?

К примеру, грузится страница с сайта www.example.com/myapp.html. На этой странице ничего нету кроме подключённого js файла (сбилденного react приложения) c 1 методом. Как можно и этого метода вызвать метод из Нативной среди и получить от него ответ ?
  • Вопрос задан
  • 48 просмотров
Решения вопроса 1
RomReed
@RomReed
JavaScript, Flutter, ReactNative, Redux, Firebase
вам нужно использовать JavaScript custom method. Создаете html и функцию например
<!DOCTYPE html>
<html>
<head>
	<title>test</title>
	<script type="text/javascript">
		function sendMessage(bucketCount){
			alert(bucketCount);
		}
	</script>
</head>
<body>
</body>
</html>


И в react-native с помощью рефа на webview вызываете этот метод:
this.webview && this.webview.injectJavaScript("sendMessage(5);");

как результат вы вызовите функцию и увидите свой alert.

Что касается того как получить ответ от страници то вы можете найти в официальной документации https://github.com/react-native-community/react-na...

в двух словах вам надо отписать метод onMessage в рект нативе и вызвать функцию window.ReactNativeWebView.postMessage из javascript. Затем в onMessage метода повесить проверку и отловить ваш уникальный ключ, который вы послали в postMessage и вызвать необходимый функционал.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы