React-Native [8. 공유하기, 링크]

Min Hyung Kim·2022년 4월 4일
0
post-thumbnail

공유하기

예시 코드

Detail.js

import React,{useState,useEffect} from 'react';
import { StyleSheet, Text, View, Image, ScrollView,TouchableOpacity,Alert,Share } from 'react-native';

.
.
.

    const share = () => {
        Share.share({
            message:`${tip.title} \n\n ${tip.desc} \n\n ${tip.image}`,
        });
    }
    return ( 
        <ScrollView style={styles.container}>
            <Image style={styles.image} source={{uri:tip.image}}/>
            <View style={styles.textContainer}>
                <Text style={styles.title}>{tip.title}</Text>
                <Text style={styles.desc}>{tip.desc}</Text>
                <View style={styles.buttonGroup}>
                    <TouchableOpacity style={styles.button} onPress={()=>popup()}><Text style={styles.buttonText}>팁 찜하기</Text></TouchableOpacity>
                    <TouchableOpacity style={styles.button} onPress={()=>share()}><Text style={styles.buttonText}>팁 공유하기</Text></TouchableOpacity>
                </View>
            </View>
        </ScrollView>
    )
}

.
.
.

사용법

import { Share } from "react-native";
  1. 기존 "react-native" 라이브러리에서 Share 기능을 추가로 import
  2. 공유 기능을 실행시킬때 작동할 Share 기능을 작성한다.
    • 예시에서는 Share.share 함수에 message를 작성하였다.
  3. 화살표함수로 share() 함수를 실행시킨다.

링크

설치코드

expo install expo-linking

예시코드

Detail.js

import React,{useState,useEffect} from 'react';
import { StyleSheet, Text, View, Image, ScrollView,TouchableOpacity,Alert,Share } from 'react-native';
import * as Linking from 'expo-linking';

export default function DetailPage({navigation,route}) {

.
.
.

    const link = () => {
        Linking.openURL("https://spartacodingclub.kr")
    }
    return (
        <ScrollView style={styles.container}>
            <Image style={styles.image} source={{uri:tip.image}}/>
            <View style={styles.textContainer}>
                <Text style={styles.title}>{tip.title}</Text>
                <Text style={styles.desc}>{tip.desc}</Text>
                <View style={styles.buttonGroup}>
                    <TouchableOpacity style={styles.button} onPress={()=>popup()}><Text style={styles.buttonText}>팁 찜하기</Text></TouchableOpacity>
                    <TouchableOpacity style={styles.button} onPress={()=>share()}><Text style={styles.buttonText}>팁 공유하기</Text></TouchableOpacity>
                    <TouchableOpacity style={styles.button} onPress={()=>link()}><Text style={styles.buttonText}>외부 링크</Text></TouchableOpacity>
                </View>
                
            </View>
            
        </ScrollView>
    
    )
}

.
.
.

사용법

import * as Linking from 'expo-linking';
  1. expo-linking을 설치한다.
  2. "expo-linking" 라이브러리에서 *(전부)를 Linking으로 선언한다.
  3. 링크 기능을 실행시킬때 작동할 Link 기능을 작성한다.
    예시에서는 Linking.openURL 함수로 스파르타코딩 사이트를 접속하도록 작성했다.
  4. 화살표함수로 link() 함수를 실행시킨다.
profile
지금은 갈팡질팡하지만 점차 바르게 걷게될지어다

0개의 댓글

관련 채용 정보