앱을 개발하면서 친구나 지인에게 앱 초대나 메시지 등 공유하는 메시지를 보낼 수 있는 환경이 필요하여 

공유하기 소스를 이용하여 간단하게 만들어 보았습니다.




1. 안드로이드에서 제공하는 기본 공유하기 소스 활용


만들어진 공유하기 UI를 보면 스마트폰에 있는 공유 할 수 있는 플랫폼이 갖춰진 앱 이라면 모두 띄워지게 됩니다.


스크린 샷 제공




 Intent intent = new Intent(android.content.Intent.ACTION_SEND);

intent.setType("text/plain");

// Set default text message
// 카톡, 이메일, MMS 다 이걸로 설정 가능
//String subject = "문자의 제목";
String text = "원하는 텍스트를 입력하세요";
//intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putExtra(Intent.EXTRA_TEXT, text);

// Title of intent
Intent chooser = Intent.createChooser(intent, "친구에게 공유하기");
startActivity(chooser);




위와 같은 기본 소스로도 카카오톡, 페이스북 등으로 연동하여 공유가 가능하지만



카카오톡은 '앱 설치로 이동' 이라는 URL로 바로 이동이 가능한 것은 기본 소스로 만들지 못하며


페이스북은 페이스북 메신저로 보내는 것 외에 게시물로 사진과 함께 등록하는 것이 불가능 하여


각각 따로 만들어 보았습니다.


2. 카카오톡 공유하기(카카오 링크)


카카오톡에서 제공하는 '카카오 링크'를 이용하시면 손쉽게 구현하실 수 있습니다.

카카오톡에서 보기 쉽게 카카오 개발자 등록 및 SDK 설치 과정, xml, manifest소스 수정 등을 제공하기에 공유하기 소스만 제공하겠습니다.


 KakaoLink kakaoLink = KakaoLink.getKakaoLink(sharedialog.this);

KakaoTalkLinkMessageBuilder kakaoTalkLinkMessageBuilder
= kakaoLink.createKakaoTalkLinkMessageBuilder();

kakaoTalkLinkMessageBuilder.addImage("https://t1.daumcdn.net/cfile/tistory/2374F449586075FD07", 81, 143);
//이미지를 스마트폰,PC 사용하는 이미지 넣기
kakaoTalkLinkMessageBuilder.addText("원하는 텍스트를 입력하세요");
kakaoTalkLinkMessageBuilder.addAppButton("앱 설치로 이동",
new AppActionBuilder()
.addActionInfo(AppActionInfoBuilder.createAndroidActionInfoBuilder().setExecuteParam("execparamkey2=2222").setMarketParam("referrer=kakaotalklink").build())
.addActionInfo(AppActionInfoBuilder.createiOSActionInfoBuilder(AppActionBuilder.DEVICE_TYPE.PHONE).setExecuteParam("execparamkey2=2222").build())
.setUrl("이동할 url을 입력하세요").build());

kakaoTalkLinkMessageBuilder.setForwardable(true);
kakaoLink.sendMessage(kakaoTalkLinkMessageBuilder, sharedialog.this);

} catch(KakaoParameterException e) {
Log.i("Kakao Exception:", e.getMessage().toString());

}




3. 페이스북 게시물에 공유하기


페이스북 개발자 등록 및 sdk 설치 , 기본 환경설정은 페이스북 홈페이지에서 보기 쉽게 제공하기에 생략하겠습니다.


 ShareLinkContent content = new ShareLinkContent.Builder()

.setContentUrl(Uri.parse("이동할 url 입력하세요"))
.setContentTitle("타이틀 명 입력")
.setImageUrl(Uri.parse("https://t1.daumcdn.net/cfile/tistory/2374F449586075FD07"))
.setContentDescription("원하는 텍스트를 입력하세요")
.build();
ShareDialog shareDialog = new ShareDialog(sharedialog.this);
shareDialog.show(content, ShareDialog.Mode.AUTOMATIC);




  1. 213 2019.05.27 02:54

    어디다가 저 코드를 작성하나요 ??

    • ylblog 2019.06.03 09:20 신고

      xml화면이 있는 클래스에서 원하는 곳에 작성하시면 됩니다.
      ex) Activiry의 oncreate() 내부

  2. 주호 2019.06.23 12:57

    카톡은 코드구현 방법이 완전히 바뀐것 같네요. 혹시 이 부분 수정 가능한가요

+ Recent posts