Android Kotlin - WebView 显示空白页面

Android Kotlin - WebView shows blank page

我什么都试过了,还是不行。我的网络视图总是显示空白屏幕。 我的主要动机是从服务器加载pdf文件。

activity_web_view.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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=".activities.WebViewActivity">

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

</RelativeLayout>

WebViewActivity.kt

class WebViewActivity : AppCompatActivity() {
    private val url: String = "https://www.google.co.in/"
    override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
        super.onCreate(savedInstanceState, persistentState)
        setContentView(R.layout.activity_web_view)

        initWebView()
        setWebClient()
        loadUrl(url)

    }

    @SuppressLint("SetJavaScriptEnabled")
    private fun initWebView() {
        webView.settings.javaScriptEnabled = true
        webView.settings.loadWithOverviewMode = true
        webView.settings.useWideViewPort = true
        webView.settings.domStorageEnabled = true
        webView.webViewClient = object : WebViewClient() {
            override
            fun onReceivedSslError(view: WebView?, handler: SslErrorHandler?, error: SslError?) {
                handler?.proceed()
            }
        }
    }

    private fun setWebClient() {
        webView.webChromeClient = object : WebChromeClient() {
            override fun onProgressChanged(
                view: WebView,
                newProgress: Int
            ) {
                super.onProgressChanged(view, newProgress)
            }
        }
    }

    private fun loadUrl(pageUrl: String) {
        webView.loadUrl(pageUrl)
    }
}

从 Main 调用 Activity

 val intent = Intent(this, WebViewActivity::class.java)
                startActivity(intent)

我不知道我做错了什么。非常感谢帮助。

提前致谢。

使用:

   override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        setContentView(R.layout.activity_web_view)

        println("in webview")//--> add this to confirm this is actually called

        initWebView()
        setWebClient()
        loadUrl(url)
}

不是你用的那个。另一个用于持久重启,在正常情况下不会被调用,您需要在清单中将 activity 标记为:

https://developer.android.com/reference/android/R.attr.html#persistableMode

此片段 webview 在 kotlin 中显示空白页面:

    override fun setupView() {
            //val mWebView: WebView? = view?.findViewById(R.id.webviewdaum) as WebView
            //mWebView?.loadUrl("https://www.greenhcm.com/")
            //val webSettings = mWebView?.getSettings()
            //webSettings?.setJavaScriptEnabled(true)
            // Force links and redirects to open in the WebView instead of in a browser
            //mWebView?.setWebViewClient(WebViewClient())


        //var mywebview: WebView? = null

        val mywebview: WebView = view?.findViewById(R.id.webviewdaum) as WebView
        mywebview!!.webViewClient = object : WebViewClient() {
            override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
                view?.loadUrl(url)
                return true
            }
        }
        mywebview!!.loadUrl("https://www.google.com/")
        // Enable Javascript
        val webSettings: WebSettings = mywebview.getSettings()
        webSettings.javaScriptEnabled = true
        mywebview.settings.loadWithOverviewMode = true
        mywebview.settings.useWideViewPort = true
        mywebview.settings.domStorageEnabled = true
        // Force links and redirects to open in the WebView instead of in a browser

        // Force links and redirects to open in the WebView instead of in a browser
        mywebview.setWebViewClient(WebViewClient())
    }

错误信息是

2020-10-27 12:33:38.773 11545-11545/com.greenhcm.android D/EgretLoader: EgretLoader(Context context) 2020-10-27 12:33:38.774 11545-11545/com.greenhcm.android D/EgretLoader: The context is not activity