본문 바로가기
개발/유용한코드

소셜공유

by 경주초이 2020. 3. 2.

소셜공유 호출

( function( $ ) {
	
	$.fn.layout = function( options ) {
		
	    var defaults = {
	    		
	    	container : "shareLinkContainer",
	    	imageUrl  : ""
	    		
	    };
	    
	    var settings = $.extend( true, {}, defaults, options );
	    
	    $( ".link_share" ).off( "click" ).on( "click", function() {
	    	
	    	var vendor = $(this).attr( "data-vendor" );
	    	
			if (vendor == "facebook") {
				
				window.open("https://www.facebook.com/sharer/sharer.php?u="+settings.wlink, 'Share on Facebook',
				'scrollbars=no, width=500, height=500');
				
			}
	    	
	    });
		
	};
	
	$( ".btn_share.btn_data" ).off( "click" ).on( "click", function() {
		
		var shareOptions = {
				
			title  : $(this).attr( "data-share-title" ),
			btitle : $(this).attr( "data-share-btn-title" ),
			desc   : $(this).attr( "data-share-desc" ),
			imgrl  : $(this).attr( "data-share-image-url" ),
			mlink  : $(this).attr( "data-share-mobile-link" ),
			wlink  : $(this).attr( "data-share-web-link" )
				
		}
		
		$( '#shareLinkContainer' ).layout( shareOptions );
		
	});
	
})( jQuery );

 

카카오 API 호출#

해당 호출 설정은 유동적입니다.

이미 1차에서 관련 API가 공통으로 호출되는 경우도 있어 소셜공유에 따로 포함하지는 않았음.
아래 설정은 각 페이지에 맞게 호출 여부를 결정하면 됨.

<script type="text/JavaScript" src="https://developers.kakao.com/sdk/js/kakao.min.js"></script>    
<script>
    // Kakao.init함수를 이용하여 앱의 JavaScript 키를 설정해야 합니다.
    // 앱 등록 과정을 통해 도메인을 등록해야 합니다. 이 때, 스킴(http://) 및 포트 번호까지 동일해야 합니다.
    // 따라서 Kakao는 localhost 환경에서는 공유가 작동하지 않는다.
    Kakao.init('');
</script>

공유 버튼

<!-- popup 공유하기 -->
<div id="shareLinkContainer" class="l_popup dim">
    <div class="l_popup_container">
        <div class="inner">
            <div class="btn_close">
                <a href="javascript:;" onclick="javascript:$('#shareLinkContainer').fadeOut(500)"><img src="/resources/di/images/common/btn_close.png" alt="닫기"></a>
            </div>
            <div class="l_popup_content">
                <div class="l_popup_txt">
                    공유하기
                </div>
                <ul class="sns_list clearfix">
                    <li>
                        <a href="javascript:;" class="link_share" data-vendor="kakaotalk">
                            <img src="/resources/di/images/common/ico_kakao.png" alt="">
                            <span class="txt">카카오톡</span>
                        </a>
                    </li>
                    <li>
                        <a href="javascript:;" class="link_share" data-vendor="facebook">
                            <img src="/resources/di/images/common/ico_facebook.png" alt="">
                            <span class="txt">페이스북</span>
                        </a>
                    </li>
                </ul>
            </div>
            <div class="copy_url">
                <span class="site_url" style="overflow: hidden;"></span><button class="btn_url_copy">URL복사</button>
            </div>
        </div>
    </div>
</div>

공유 버튼은 공유 정보를 포함하고 있습니다. 알맞게 공유 정보를 설정해야 정상적으로 공유 기능이 작동합니다.

공유 버튼을 구분하는 지시자는 btn_share btn_data의 복합 클래스입니다.
해당 클래스 모두 존재해야 공유 버튼이라 인식합니다.

<!-- 공유하기 버튼 -->
<button class="c_btn type02 btn_share btn_data"
        data-share-title="title"
        data-share-btn-title="btn-title"
        data-share-desc="설명."
        data-share-image-url=""
        data-share-mobile-link=""
        data-share-web-link="">공유하기</button>

 

공유 컨테이너

공유 버튼을 클릭시 노출되는 공유 팝업 영역으로 아이디는 shareLinkContainer 입니다.

 

 

 

 

 

 

 

'개발 > 유용한코드' 카테고리의 다른 글

[SVN] 파일 이름 변경시 에러 발생  (0) 2020.06.22
[javascript] includes() 작동 안함  (0) 2020.06.10
파일업로드_javascript  (0) 2020.03.02
프로세스 관리-02  (0) 2020.02.26
프로세스 관리-01  (0) 2020.02.26