Expo React Native WebView открывает карты Google в приложении на Android

#javascript #react-native #expo

#javascript #react-native #expo

Вопрос:

У меня есть приложение, которое состоит из a <webView> и отображает несколько кнопок, которые открывают разные ссылки на Google Maps.

На iOS ссылка открывается в приложении «Карты», но на Android она открывается в том же виде (как и в приложении).

Когда я нажимаю кнопку «Начать навигацию» в Google, я получаю error related to intent://google-maps-link

Начало ошибки выглядит так:

 Can't open url: intent://maps.app.goo.gl/?link
  

Я передаю эту ссылку на представление в <a> теге, подобном этому:

 <a class="btn btn-info" href="<?php echo $lm['TextLink'] ?>" target="_blank">Start Route</a>

  

Как я могу открыть ссылку в новом браузере (который установлен на телефоне Android) или непосредственно в приложении Google Maps?

Я искал более 2 дней, но происходит то же самое.

Заранее спасибо!

Ответ №1:

Для этого вам придется использовать expo-linking. Это должно устранить ошибку намерения для вас. Просто используйте что-то подобное в своей функции onPress-

 Linking.openURL('http://maps.google.com/?q=100 Main Street Buffalo NY');
  

Комментарии:

1. Кнопка содержится на веб-странице, которая загружается в WebView, я открываю ссылку по ссылке href в <a> теге

2. Похоже, что веб-страница не является компонентом expo. Я чего-то не хватает?