저는 Android와 Kotlin을 처음 사용합니다.Android Kotlin을 사용하여 WebView에서 URL을로드하는 방법은 무엇입니까?
누구나 webView
에 URL을로드 할 수 있습니까?
URL을로드하고 앱이 열려있을 때 웹 페이지를 보려고합니다.
저는 Android와 Kotlin을 처음 사용합니다.Android Kotlin을 사용하여 WebView에서 URL을로드하는 방법은 무엇입니까?
누구나 webView
에 URL을로드 할 수 있습니까?
URL을로드하고 앱이 열려있을 때 웹 페이지를 보려고합니다.
1.activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.kotlinwebview.MainActivity">
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:ignore="MissingConstraints"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="8dp" />
2.MainActivity.kt
class MainActivity : AppCompatActivity() {
var mywebview: WebView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
mywebview = findViewById<WebView>(R.id.webview)
mywebview!!.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
view?.loadUrl(url)
return true
}
}
mywebview!!.loadUrl("https://www.google.co.in/")
}
}
에 추가하기이 활동에 :
@SuppressLint("SetJavaScriptEnabled")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_webview)
val mWebView = findViewById<WebView>(R.id.webview)
val webSettings = mWebView.settings
webSettings.javaScriptEnabled = true
mWebView.loadUrl(getString(R.string.website_url))
mWebView.webViewClient = HelloWebViewClient()
WebView.setWebContentsDebuggingEnabled(false)
}
그리고 다음을 추가 HelloWebViewClient()
개 클래스 버튼 탐색을 다시 허용하는 외부 링크를 아웃 바운드하기 위해 :
override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
if (Uri.parse(url).host == getString(R.string.website_domain)) {
return false
}
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
startActivity(intent)
return true
}
override fun onPageFinished(view: WebView, url: String) {
// TODO Auto-generated method stub
super.onPageFinished(view, url)
}
}
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
if (keyCode == KeyEvent.KEYCODE_BACK && webview.canGoBack()) {
webview.goBack()
return true
}
return super.onKeyDown(keyCode, event)
}
이 website_domain
(https://stackoverflow.com/)와 website_host
을 정의하는 문자열을 추가 (stackoverflow.com).
시도하고있는 것을 달성하기 위해 어려움을 겪고 있다면 this full sample을 시도하고 안내에 따라 웹 사이트의 URL 및 클린 도메인 이름을 편집하면됩니다.
kotlin에서 javascript를 사용 설정하는 방법 ?? –
webView.getSettings(). setJavaScriptEnabled (true); – R2R