Kotlin WebView - предотвращение открытия в новом Chrome окне браузера - PullRequest
0 голосов
/ 14 января 2020

Я вставил приведенный ниже код в MainActivity.kt в пустое действие.


import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    private val url = "http://www.yahoo.com/"

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // Get the web view settings instance
        val setting = webview.settings;

        // Enable java script in web view
        setting.javaScriptEnabled = true

        webview.loadUrl(url)

    }
}

Я также вставил компонент WebView в activity_main. xml с идентификатором @ + id / WebView . Когда приложение загружается, экран перенаправляется в браузер chrome, в который загружается страница Yahoo. Как мне поддерживать браузер в приложении?

Я пытался добавить webview.setWebViewRenderProcessClient = webViewClient() перед загрузкой URL, но при компиляции кода я получаю неразрешенную ссылочную ошибку.

РЕДАКТИРОВАТЬ

XML выглядит следующим образом:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

<WebView
    android:id="@+id/webview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

</RelativeLayout>

Я также добавил <uses-permission android:name="android.permission.INTERNET"/> в файл AndroidManifest. xml.

1 Ответ

3 голосов
/ 14 января 2020

Реализуйте WebView webClient и установите его перед вызовом webView.loadUrl = "#someURL". Пример:

webview.webViewClient = WebViewClient()

Для получения дополнительной информации о WebView проверьте здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...