2017-12-18 5 views

답변

3

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/") 
    } 
} 
+0

kotlin에서 javascript를 사용 설정하는 방법 ?? –

+0

webView.getSettings(). setJavaScriptEnabled (true); – R2R

0

에 추가하기이 활동에 :

@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 및 클린 도메인 이름을 편집하면됩니다.