// 카카오 모듈
implementation ("com.kakao.sdk:v2-all:2.18.0") // 전체 모듈 설치, 2.11.0 버전부터 지원
웹에서 구현한 카카오톡 친구페이지로 넘어가는 기능을 앱에서도 동일하게 구현하기 위해서 상단의 gradle 을 추가해주고
대부분의 웹처리를
override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest): Boolean {
}
이곳에서 처리하게 되는데
override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest): Boolean {
Log.d("CURRENT_LOCATION_URL", request.url.toString()) // 현재 위치를 log 로 url 표시
val uri: Uri = request.url
val url: String = uri.toString()
....
}
위 코드안에 하단의 코드를 넣어서
// Kakao (url 에 카카오ID 가 포함되어 있다면 실행)
if (url.contains("카카오플러스친구ID")) {
lifecycleScope.launch {
val channelUrl = TalkApiClient.instance.addChannelUrl("카카오플러스친구ID")
KakaoCustomTabsClient.openWithDefault(this@MainActivity, Uri.parse(channelUrl.toString()))
}
return true
}
url 안에 `카카오플러스친구ID` 가 들어가있다면 kakao 에서 제공해주는
KakaoCustomTabsClient
를 통해서 카카오플러스 친구 페이지로 이동가능하다.
또한 추가로 KakaoSdk 를 초기화 해줘야하는데
@SuppressLint("SetJavaScriptEnabled")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
.....
// Kakao SDK 초기화
KakaoSdk.init(this, getString(R.string.kakao_sdk))
// 웹뷰 설정
with(binding.gogumaWebview.settings) {
cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK
javaScriptEnabled = true // js 허용여부
javaScriptCanOpenWindowsAutomatically = true // js window.open() 사용여부
loadsImagesAutomatically = true
domStorageEnabled = true
databaseEnabled = true
mixedContentMode = WebSettings.MIXED_CONTENT_NEVER_ALLOW
// 센서 기능 활성화
setGeolocationEnabled(true)
allowContentAccess = true
allowFileAccess = true
}
...
}
kakao sdk 를 strings.xml 에 넣어 상단처럼 초기화가 가능하다.
'[study]Android > Android(Kotlin & Java)' 카테고리의 다른 글
ViewBinding - kotlin (0) | 2024.01.05 |
---|---|
android backstack - kotlin (0) | 2024.01.05 |
디버그 서명 인증서 (SHA-1) (0) | 2023.12.05 |
해시키 구하기(Hash key) - Java (0) | 2023.12.05 |
해시키(Hash Key) 구하기 - kotlin (1) | 2023.12.05 |