[Android/Kotlin] - WebView ์‚ฌ์šฉํ•˜๊ธฐ

2020. 12. 30. 20:20ใ†๐Ÿ“ฑAndroid/๐Ÿ“ Android Study

๋ฐ˜์‘ํ˜•

 

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์•ฑ์—์„œ ์›นํŽ˜์ด์ง€๋ฅผ ๋„์šธ ๋•Œ ๋งŽ์ด ์‚ฌ์šฉํ•˜์‹œ๋Š” WebView๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•ด ๋“œ๋ฆฌ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

 

๊ถŒํ•œ ์„ค์ •ํ•ด์ฃผ๊ธฐ

WebํŽ˜์ด์ง€์— ์ ‘์†ํ•˜๋ ค๋ฉด Internet ๊ถŒํ•œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

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

 

WebView ๋„์šฐ๊ธฐ

private fun initWebView(address : String) {

  val webView = findViewById<WebView>(R.id.webView)

  // ์™€์ดํŒŒ์ด & ๋ฐ์ดํ„ฐ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉด ์›น๋ทฐ ์ƒ์„ฑ
  if(getNetworkConnected(applicationContext) ) {
    
    // ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ ๋˜์–ด ์žˆ์„ ๋•Œ (์…€๋ฃฐ๋Ÿฌ/์™€์ดํŒŒ์ด)
    webView.settings.javaScriptEnabled = true // ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ํ—ˆ์šฉ
    
    // ์›น๋ทฐ์•ˆ์— ์ƒˆ ์ฐฝ์ด ๋œจ์ง€ ์•Š๋„๋ก ๋ฐฉ์ง€
    webView.webViewClient = WebViewClient() 
    webView.webChromeClient = WebChromeClient()
    
    // ์›ํ•˜๋Š” ์ฃผ์†Œ๋ฅผ WebView์— ์—ฐ๊ฒฐ
    webView.loadUrl(address) 
  } else {
    // ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ ๋˜์–ด ์žˆ์ง€ ์•Š์„ ๋•Œ (์…€๋ฃฐ๋Ÿฌ/์™€์ดํŒŒ์ด)
    var toast = Toast(this)
    toast.drawCustomToast("์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ด์ฃผ์„ธ์š”.")
    finish() // Activity ์ข…๋ฃŒ
  }

}

์™€์ดํŒŒ์ด & ๋ฐ์ดํ„ฐ ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ํฌ์ŠคํŒ… ๊ธ€์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”!

 

Kotlin - Wifi ์—ฐ๊ฒฐ ์ƒํƒœ ํ™•์ธํ•˜๊ธฐ

๊ถŒํ•œ ์„ค์ •ํ•˜๊ธฐ Network ๊ถŒํ•œ์„ ์„ค์ •ํ•ด์ฃผ๋Š” permission์„ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”! ์‚ฌ์šฉ๋ฒ• ConnectionManager๋ฅผ ํ†ตํ•ด Network Wifi ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค : ) // ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ ํ™•์ธ ํ•จ์ˆ˜ fun getNetworkConnected(context..

yunaaaas.tistory.com

 

WebView ๋’ค๋กœ๊ฐ€๊ธฐ ์ด๋ฒคํŠธ

๋งŒ์•ฝ WebView์—์„œ ๋’ค๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ์›นํŽ˜์ด์ง€ ๋’ค๋กœ๊ฐ€๊ธฐ๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

override fun onBackPressed() {
  //์›น์‚ฌ์ดํŠธ์—์„œ ๋’ค๋กœ ๊ฐˆ ํŽ˜์ด์ง€ ์กด์žฌ์‹œ
  if(webView.canGoBack()) {
    webView.goBack() // ์›น์‚ฌ์ดํŠธ ๋’ค๋กœ๊ฐ€๊ธฐ
  }
  else {
    super.onBackPressed()
  }
}

 

 

๋ฐ˜์‘ํ˜•