web-dev-qa-db-fra.com

Comment charger une URL dans une WebView avec Android Kotlin?

Je suis nouveau sur Android et Kotlin.

Tout le monde peut m'aider à charger une URL dans une webView?

Je veux juste charger l'URL et voir la page Web lorsque l'application est ouverte.

1
Ayan Chakraborty

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/")
    }
}
15
Ramesh sambu

Utilisez le plugin Android Kotlin Extension.

Utilisez l'ID de WebView dans la présentation et appelez la méthode loadUrl ().

 enter image description here

Ici id de WebView: webview

webview.loadUrl("https://www.androidride.com")

n'oubliez pas d'ajouter

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

Si votre navigateur tiers s'ouvre avec une URL chargée dans WebView, fournissez WebViewClient.

webview.webViewClient = WebViewClient()

Si vous souhaitez lire des vidéos youtube dans votre WebView, vous devez activer JavaScript dans WebView.

 enter image description here

webview.settings.javaScriptEnabled = true

Si vous débutez dans le développement d'applications Android, alors ce didacticiel vous aidera à dissiper presque tous vos doutes sur WebView.

cliquez ici

2
Thomas Daniel

Ajoutez ceci à votre activité:

@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)

}

Et ajoutez les éléments suivants à la classe HelloWebViewClient() afin de permettre la navigation via le bouton Précédent et les liens externes sortants:

    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)
}

Ajoutez des chaînes définissant website_domain ( https://stackoverflow.com/ ) et website_Host (stackoverflow.com).

Si vous rencontrez des difficultés pour obtenir ce que vous essayez d'essayer, essayez cet exemple complet et suivez simplement les instructions afin de modifier simplement l'URL et le nom de domaine propre de votre site Web.

0
JorgeAmVF