我正在我的应用中显示一个Twitter提要,该提取正在从Twitter API中提取。由于推文没有显示全文,因此有一个Twitter短代码网址(t.co)可以查看完整的推文。
我遇到的问题是,当我使用openURL点击URL时,它会在浏览器中打开,重定向到Twitter应用程序并重定向回浏览器以显示推文。
如果我的Twitter应用程序已经打开,这是有效的 - 如果它没有打开,最终重定向回浏览器不会加载页面。
如果没有安装Twitter应用程序,只需在浏览器中加载,一切正常。
有没有办法避免重定向,只是在Twitter应用中打开t.co网址,如果它已安装?
答案 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”非常重要,这样应用程序就可以本地打开链接,而不是打开移动链接。