Проблемы со ссылками на Twitter в React-Native openURL

Я показываю в своем приложении канал Twitter, который загружается из API Twitter. Поскольку в твитах не отображается полный текст, существует URL-адрес короткого кода твиттера (t.co) для просмотра всего твита.

Проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю URL-адрес с помощью openURL, он открывается в браузере, который перенаправляет в приложение Twitter и перенаправляет обратно в браузер для отображения твита.

Это работает, если у меня уже открыто приложение twitter - если оно не открывается, последнее перенаправление обратно в браузер не загружает страницу.

Все работает нормально, если приложение твиттера не установлено, оно просто загружается в браузере.

Есть ли способ избежать перенаправления и просто открыть URL-адреса t.co в приложении twitter, если оно установлено?

Умерло ли Create-React-App?
Умерло ли Create-React-App?
В этом документальном фильме React.dev мы исследуем, мертв ли Create React App (CRA) и какое будущее ждет этот популярный фреймворк React.
Освоение React Native: Пошаговое руководство для начинающих
Освоение React Native: Пошаговое руководство для начинающих
React Native - это популярный фреймворк с открытым исходным кодом, используемый для разработки мобильных приложений. Он был разработан компанией...
В чем разница между react native и react ?
В чем разница между react native и react ?
React и React Native - два популярных фреймворка для создания пользовательских интерфейсов, но они предназначены для разных платформ. React - это...
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
Хуки React: что это такое и как их использовать
Хуки React: что это такое и как их использовать
Хуки React - это мощная функция библиотеки React, которая позволяет разработчикам использовать состояние и другие возможности React без написания...
0
0
804
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Итак, мне удалось решить эту проблему, сначала создав в PHP неукороченный URL:

<?php 
$url = $_GET['url'];

$context = stream_context_create(
array(
    'http' => array(
        'follow_location' => false
    )
)
);

$html = file_get_contents($url, false, $context);

$final = str_replace("location: ",'',$http_response_header[5]);

echo json_encode ($final,JSON_PRETTY_PRINT);
?>

Затем из response-native извлеките полный URL-адрес из неукороченного:

if (href.contains('https')) {

    var short = {
        getInfo() {

          var myUrl = 'expander.php?url='+href

            return fetch(myUrl).then((res) => res.json()).catch(function(error) {
                Alert.alert(error+''); 
            });
        }
    }

   short.getInfo().then((res) => {

    var final = res.replace('i/web','web');

    Linking.openURL(final);   

   })
} else {

  Linking.openURL(href)
}

Было важно заменить «i / web» в строке URL на «web», чтобы приложение открывало ссылку изначально, а не открывало мобильную ссылку.

Другие вопросы по теме