package com.nhncommerce.shopby.mywebviewtest import android.net.Uri import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.webkit.WebResourceRequest import android.webkit.WebResourceResponse import android.webkit.WebView import android.webkit.WebViewClient import com.nhncommerce.shopby.mywebviewtest.databinding.ActivityMainBinding class MainActivity : AppCompatActivity() { val baseUrl = "https://ncpauth.html" val returnUrl = "ncpauth://ncpauth.html" val html = """
""".trimIndent() private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) binding.webView.apply { webViewClient = object : WebViewClient() { override fun shouldOverrideUrlLoading( view: WebView?, request: WebResourceRequest? ): Boolean { if (request?.url.toString().startsWith(returnUrl)) { val uri = Uri.parse(request?.url.toString()) val isContainsKey = uri.queryParameterNames.contains("key") // 파라미터에 key가 포함되어있는지 확인 if (isContainsKey) println("key = ${uri.getQueryParameter("key")}") // key 추출 //TODO: key 추출 이후 과정을 이 곳에서 진행하시면 됩니다. return isContainsKey } return super.shouldOverrideUrlLoading(view, request) } override fun onPageFinished(view: WebView?, url: String?) { super.onPageFinished(view, url) if (url?.startsWith(baseUrl) == true) { binding.webView.evaluateJavascript("document.form_auth.submit()") {} } } } WebView.setWebContentsDebuggingEnabled(true) settings.apply { javaScriptEnabled = true javaScriptCanOpenWindowsAutomatically = true supportMultipleWindows() } loadDataWithBaseURL(baseUrl, html, "text/html", "UTF-8", "") } } }