안드로이드 웹뷰에서 tel:태그나 sms:태그를 눌러 에러가 날 때 조치법

코틀린 안드로이드 스튜디오로 안드로이드 앱을 만드는 경우

웹뷰를 넣어 url로 웹페이지에 들어가거나 asset에 넣은 html파일을 읽을 때 tel:태그나 sms:태그 링크를 들어가면 에러가 난다. 에러가 안 나게 하려면 다음과 같은 조치를 취하면 된다. 

MainActivity.kt 안 
class MainActivity : AppCompatActivity()
블럭 안에 아래 소스를 붙여넣는다.

       webView.webViewClient = object : WebViewClient() {
            override fun shouldOverrideUrlLoading(webView: WebView, url: String): Boolean {

                 if (url.startsWith("tel:")){
                    val intent = Intent(Intent.ACTION_DIAL)
                    intent.setData(Uri.parse(url))
                    startActivity(intent)
                    return true
                }


                else if (url.startsWith("sms:")){
                    val intent = Intent(Intent.ACTION_SENDTO)
                    intent.setData(Uri.parse(url))
                    startActivity(intent)
                    return true
                }

                return false
            }
        }


그리고 AndroidManifest.xml에서 아래와 같은 퍼미션을 주면 된다. 

  </uses-permission android:name="android.permission.call_phone">
  </uses-permission android:name="android.permission.send_sms">



반응형