2015-05-29 20 views
32

Yerel Olarak Yanıtla uygulamasında bir köprüyü nasıl görüntülerim?Tepki Görüntüle Yerel Uygulamada Yanıtla

örn. Böyle

<a href="https://google.com>Google</a> 
+1

kullanıcılardan daha fazla dikkat çekmek için 'javascript' gibi daha fazla etiket eklemeyi düşünün. Ancak 'kodlama' gibi etiketler ekleyerek yayınlarınızı aşırı genellemeyin. –

cevap

65

şey:

<Text style={{color: 'blue'}} 
     onPress={() => Linking.openURL('http://google.com')}> 
    Google 
</Text> 

Yerli Tepki bir arada sunulan Linking modülü kullanarak. (Not: Linking'un kullanılması React Native 0.20.0 veya üstünü gerektirir.)

+0

Bu benim için çalıştı ... teşekkürler! –

+0

Dinamik bir değere ihtiyacınız varsa, 'http: // google.com 'yerine' this.props.url 'gibi bir şey kullanabilirsiniz (hiçbir parantez gerekli değildir) –

+0

@philipp bu beni hataya atıyor' can ' t değişkeni bul ' – devanshsadhotra

6

Seçilen yanıt yalnızca iOS ile ilgilidir. Her iki platformda, aşağıdaki bileşeni kullanabilirsiniz: bağlantıları ve zengin metin başka tür yapmak istiyorsanız

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' 
    } 
}); 
+1

Seçilen cevap Android'de benim için iyi çalıştı (RN 35). – Pedram

+0

Bu, kabul edilen yanıttan nasıl farklıdır? –

+0

@JacobLauritzen şimdi birisi cevapımı kopyaladıktan sonra aynıdır:/http://stackoverflow.com/posts/30540502/revisions – Kuf

0

, daha kapsamlı bir çözüm React Native HTMLView kullanmaktır. React Native için

+1

Bu bağlantı soruyu yanıtlayabilirken, cevabın temel kısımlarını burada eklemek daha iyidir ve referans için bağlantı sağlayın. Bağlantılı sayfa değiştiğinde yalnızca bağlantı yanıtları geçersiz olabilir. - [Yorum Yaz] [/ review/düşük kaliteli-mesajlar/13192218) – Ari0nhh

+0

@ Ari0nhh Sorunuza yanıt verebilmemin tek yolu olduğu için sorumu geri aldım. Çok sıralı bir cevabın basit bir kütüphane bağlantısı olduğu SO'da çok sayıda örnek var. Artı diğer cevaplar zaten basit bir uygulamayı kapsamaktadır. Bunu orijinal soruyla ilgili bir yorum olarak yorumlayabilirim, ama bunu gerçek bir cevap olarak görüyorum. Ve buradaki bağlantıyı bırakmak en azından gelecek arayanlar için bir kırıntı, eğer insanlar onu düzenlemek ve daha iyi örneklerle iyileştirmek istiyorsa, şimdi başlayacak bir yer var. – Eliot

1

Bunu yapmak için TouchableOpacity numaralı telefona Text bileşenini sarmayı kesinlikle öneririm. TouchableOpacity'a dokunduğunda, kaybolur (daha az opak olur). Bu, metne dokunduğunuzda kullanıcılara anında geri bildirim sağlar ve daha iyi bir kullanıcı deneyimi sağlar.

Sen bağlantı gerçekleşmesi için TouchableOpacity üzerine onPress özelliğini kullanabilirsiniz:

<TouchableOpacity onPress={() => Linking.openURL('http://google.com')}> 
    <Text style={{color: 'blue'}}> 
    Google 
    </Text> 
</TouchableOpacity> 
İlgili konular