React-Native openURL Twitter链接问题

时间:2018-06-18 14:45:46

标签: react-native

我正在我的应用中显示一个Twitter提要,该提取正在从Twitter API中提取。由于推文没有显示全文,因此有一个Twitter短代码网址(t.co)可以查看完整的推文。

我遇到的问题是,当我使用openURL点击URL时,它会在浏览器中打开,重定向到Twitter应用程序并重定向回浏览器以显示推文。

如果我的Twitter应用程序已经打开,这是有效的 - 如果它没有打开,最终重定向回浏览器不会加载页面。

如果没有安装Twitter应用程序,只需在浏览器中加载,一切正常。

有没有办法避免重定向,只是在Twitter应用中打开t.co网址,如果它已安装?

1 个答案:

答案 0 :(得分:0)

因此我设法通过首先在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);
?>

然后从react-native中获取unshortener的完整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)
}

将URL字符串中的“ i / web”替换为“ web”非常重要,这样应用程序就可以本地打开链接,而不是打开移动链接。