Как отобразить гиперссылку в приложении React Native?Показать гиперссылку в React Native App
например.
<a href="https://google.com>Google</a>
Как отобразить гиперссылку в приложении React Native?Показать гиперссылку в React Native App
например.
<a href="https://google.com>Google</a>
Что-то вроде этого:
<Text style={{color: 'blue'}}
onPress={() => Linking.openURL('http://google.com')}>
Google
</Text>
используя Linking
модуль, который поставляется вместе с React Native. (Обратите внимание, что для использования Linking
требуется React Native 0.20.0 или выше.)
Это сработало для меня ... спасибо! –
Если вам нужно динамическое значение, вы можете использовать что-то вроде 'this.props.url' вместо' 'http: // google.com'' (никаких привязок не требуется) –
@philipp это бросает мне ошибку m 'can' t find variable Linking ' – devanshsadhotra
Выбранный ответ относится только к iOS. Для обеих платформ, вы можете использовать следующие компоненты:
import React, { Component, PropTypes } from 'react';
import {
Linking,
Text,
StyleSheet
} from 'react-native';
export default class HyperLink extends Component {
constructor(){
super();
this._goToURL = this._goToURL.bind(this);
}
static propTypes = {
url: PropTypes.string.isRequired,
title: PropTypes.string.isRequired,
}
render() {
const { title} = this.props;
return(
<Text style={styles.title} onPress={this._goToURL}>
> {title}
</Text>
);
}
_goToURL() {
const { url } = this.props;
Linking.canOpenURL(url).then(supported => {
if (supported) {
Linking.openURL(this.props.url);
} else {
console.log('Don\'t know how to open URI: ' + this.props.url);
}
});
}
}
const styles = StyleSheet.create({
title: {
color: '#acacac',
fontWeight: 'bold'
}
});
Если вы хотите сделать ссылки и другие типы форматированного текста, более комплексное решение заключается в использовании React Native HTMLView.
Хотя эта ссылка может ответить на вопрос, лучше включить основные части ответа здесь и укажите ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. - [Из обзора] (/ review/low-quality-posts/13192218) – Ari0nhh
@ Ari0nhh Я восстановил вопрос, поскольку это был единственный способ ответить на ваш комментарий. На SO есть много прецедентов, где высокий рейтинг - это просто ссылка на хорошую библиотеку. Плюс другие ответы уже охватывают простую реализацию. Полагаю, я мог бы переписать это как комментарий по первому вопросу, но я рассматриваю его как реальный ответ. И оставить ссылку здесь, по крайней мере, крошкой для будущих ищущих, если люди хотят ее отредактировать и улучшить ее с лучшими примерами, по крайней мере, сейчас есть место для начала. – Eliot
для React Native, есть библиотека для открытия гиперссылок в приложении.
В дополнение к этому, я полагаю, вам нужно будет проверить URL-адрес, и лучшим подходом является Regex. https://www.npmjs.com/package/url-regex
Если вы создаете для ios, SVC лучше подходит для реализации, а не для связывания (для открытия в Safari Browser). https://github.com/naoufal/react-native-safari-view – rajaishwary
Чтобы сделать это, я бы сильно подумал об упаковке компонента Text
в TouchableOpacity
. Когда прикасается TouchableOpacity
, он исчезает (становится менее непрозрачным). Это дает пользователю немедленную обратную связь при касании текста и обеспечивает улучшенный пользовательский интерфейс.
Вы можете использовать onPress
свойство на TouchableOpacity
сделать ссылку случиться:
<TouchableOpacity onPress={() => Linking.openURL('http://google.com')}>
<Text style={{color: 'blue'}}>
Google
</Text>
</TouchableOpacity>
Рассмотрите возможность добавления метки, как «JavaScript», чтобы получить больше внимания со стороны пользователей. Но не слишком обобщайте свои сообщения, добавляя теги, такие как «кодирование» и т. Д. –