문의 시 사용하시는 SDK 버전 정보를 알려주세요.
버전은
com.kakao.sdk:v2-link:2.5.2
코드 --------------------------------------------------------------------------------
class KakaoLink {
var TAG = “linku”;
fun formatMessage(name: String): String = "Hello, $name"
fun sendMessage(context: Context, act: Activity, payload: String, url: String, webLinkUrl: String, userCode: String, namecardID: String ) {
Log.d(TAG, "payload ${payload}")
val jsonObject = JSONObject(payload)
val imageUrl = url
val title = jsonObject.getString("title")
val description = jsonObject.getString("description")
val defaultFeed = FeedTemplate(
content = Content(
title = title,
description = description,
imageUrl = imageUrl,
link = Link(
webUrl = webLinkUrl,
mobileWebUrl = webLinkUrl
)
),
buttons = listOf(
Button(
act.getString(R.string.view_profile),
Link(
webUrl = webLinkUrl,
mobileWebUrl = webLinkUrl
)
)
)
)
// 카카오톡 설치여부 확인
if (LinkClient.instance.isKakaoLinkAvailable(context)) {
// 카카오톡으로 카카오링크 공유 가능
LinkClient.instance.defaultTemplate(context, defaultFeed) { linkResult, error ->
if (error != null) {
Log.e(TAG, "카카오링크 보내기 실패", error)
}
else if (linkResult != null) {
Log.d(TAG, "카카오링크 보내기 성공 ${linkResult.intent}")
act.startActivity(linkResult.intent)
// 카카오링크 보내기에 성공했지만 아래 경고 메시지가 존재할 경우 일부 컨텐츠가 정상 동작하지 않을 수 있습니다.
Log.w(TAG, "Warning Msg: ${linkResult.warningMsg}")
Log.w(TAG, "Argument Msg: ${linkResult.argumentMsg}")
}
}
} else {
// 카카오톡 미설치: 웹 공유 사용 권장
// 웹 공유 예시 코드
val sharerUrl = WebSharerClient.instance.defaultTemplateUri(defaultFeed)
// CustomTabs으로 웹 브라우저 열기
// 1. CustomTabs으로 Chrome 브라우저 열기
try {
KakaoCustomTabsClient.openWithDefault(context, sharerUrl)
} catch(e: UnsupportedOperationException) {
// Chrome 브라우저가 없을 때 예외처리
}
// 2. CustomTabs으로 디바이스 기본 브라우저 열기
try {
KakaoCustomTabsClient.open(context, sharerUrl)
} catch (e: ActivityNotFoundException) {
// 인터넷 브라우저가 없을 때 예외처리
}
}
}
}