본문 바로가기
Programming/Android(Kotlin & Java)

Webview: 카카오톡 친구페이지로 이동하기 - kotlin

by yoon9i 2024. 1. 5.
// 카카오 모듈
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 에 넣어 상단처럼 초기화가 가능하다.

'Programming > 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