- Android Kakao SDK 공식 가이드 : https://developers.kakao.com/docs/latest/ko/message/android-link
사전 체크 1. Android SDK 2.4.0 미만 사용 시, AndroidManifest.xml 에 queries 요소 추가 (카카오톡 호출 위해)
<!--queries에 카카오톡 패키지 추가-->
<queries>
<package android:name="com.kakao.talk" />
</queries>
사전 체크 2. AndroidManifest.xml에 카카오 링크 앱 스킴 설정
<activity android:name=".{YOUR_ACTIVITY_NAME}">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- "kakao{YOUR_NATIVE_APP_KEY}://kakaolink" 형식의 앱 실행 스킴을 설정하는데 사용 -->
<data android:host="kakaolink"
android:scheme="kakao{YOUR_NATIVE_APP_KEY}" />
</intent-filter>
</activity>
1. Template 객체 Java 구성
FeedTemplate feedTemplate = new FeedTemplate(
new Content("오늘의 디저트",
"http://mud-kage.kakao.co.kr/dn/Q2iNx/btqgeRgV54P/VLdBs9cvyn8BJXB3o7N8UK/kakaolink40_original.png",
new Link("https://developers.kakao.com",
"https://developers.kakao.com"),
"#케익 #딸기 #삼평동 #카페 #분위기 #소개팅"
),
new ItemContent("Kakao",
"http://mud-kage.kakao.co.kr/dn/Q2iNx/btqgeRgV54P/VLdBs9cvyn8BJXB3o7N8UK/kakaolink40_original.png",
"Cheese cake",
"http://mud-kage.kakao.co.kr/dn/Q2iNx/btqgeRgV54P/VLdBs9cvyn8BJXB3o7N8UK/kakaolink40_original.png",
"Cake",
Arrays.asList(new ItemInfo("cake1", "1000원")),
"Total",
"15000원"
),
new Social(286, 45, 845),
Arrays.asList(new com.kakao.sdk.template.model.Button("웹으로 보기", new Link("https://developers.kakao.com", "https://developers.kakao.com")))
);
2. 카카오 링크 발송 Java 구성
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button kakao_link_msg_button = (Button) findViewById(R.id.kakao_link_msg_button);
kakao_link_msg_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (UserApiClient.getInstance().isKakaoTalkLoginAvailable(MainActivity.this)) {
kakaoLink();
} else {
webKakaoLink();
}
}
});
}
public void kakaoLink() {
String TAG = "kakaoLink()";
// 카카오톡으로 카카오링크 공유 가능
LinkClient.getInstance().defaultTemplate(MainActivity.this, feedTemplate, null, (linkResult, error) -> {
if (error != null) {
Log.e("TAG", "카카오링크 보내기 실패", error);
} else if (linkResult != null) {
Log.d(TAG, "카카오링크 보내기 성공 ${linkResult.intent}");
MainActivity.this.startActivity(linkResult.getIntent());
// 카카오링크 보내기에 성공했지만 아래 경고 메시지가 존재할 경우 일부 컨텐츠가 정상 동작하지 않을 수 있습니다.
Log.w("TAG", "Warning Msg: " + linkResult.getWarningMsg());
Log.w("TAG", "Argument Msg: " + linkResult.getArgumentMsg());
}
return null;
});
}
public void webKakaoLink() {
String TAG = "webKakaoLink()";
// 카카오톡 미설치: 웹 공유 사용 권장
// 웹 공유 예시 코드
Uri sharerUrl = WebSharerClient.getInstance().defaultTemplateUri(feedTemplate);
// CustomTabs으로 웹 브라우저 열기
// 1. CustomTabs으로 Chrome 브라우저 열기
try {
KakaoCustomTabsClient.INSTANCE.openWithDefault(MainActivity.this, sharerUrl);
} catch (UnsupportedOperationException e) {
// Chrome 브라우저가 없을 때 예외처리
}
// 2. CustomTabs으로 디바이스 기본 브라우저 열기
try {
KakaoCustomTabsClient.INSTANCE.open(MainActivity.this, sharerUrl);
} catch (ActivityNotFoundException e) {
// 인터넷 브라우저가 없을 때 예외처리
}
}
'언어, 환경별 예제 코드' 카테고리의 다른 글
카카오 로그인 OIDC(OpenID Connect) JWT 서명검증 (JAVA) (0) | 2022.06.07 |
---|---|
iOS, 웹뷰에서 JS SDK 방식 로그인 간단히 테스트 (0) | 2022.04.05 |
Android Kakao SDK v2 Java로 사용하기 - 카카오 로그인 (2) | 2021.11.29 |
카카오 SDK 공식 예제 링크 (0) | 2021.11.03 |
iOS 하이브리드앱(웹뷰) 팝업방식 로그인, 카카오링크, 채널상담 (0) | 2021.09.02 |
댓글