【问题标题】:Kotlin WebView doesn't work in app, it just opening chrome insteadKotlin WebView 在应用程序中不起作用,它只是打开 chrome
【发布时间】:2022-01-20 12:36:17
【问题描述】:

我尝试使用 WebView,通常它假设在 webview 中运行网站对吗?

但是当我尝试运行我的代码时,首先应用程序正在打开,几秒钟后它正在打开 chrome。

这是我的 kotlin 代码

package com.example.webapp
    
    import androidx.appcompat.app.AppCompatActivity
    import android.os.Bundle
    import android.view.KeyEvent
    import android.view.LayoutInflater
    import android.view.View
    import android.webkit.WebView
    import android.webkit.WebViewClient
    import com.example.onsbet.databinding.ActivityMainBinding
    
    
    class MainActivity : AppCompatActivity() {
    
        private lateinit var binding:ActivityMainBinding
        private val link = "https://www.mylink.com/"
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            binding = ActivityMainBinding.inflate(layoutInflater)
            setContentView(binding.root)
    
            binding.webView.apply {
                loadUrl(link)
            }
    
        }
    }

【问题讨论】:

    标签: android kotlin webview


    【解决方案1】:

    我试过了,打开正确

    确保您输入了互联网权限

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

    要打开用户单击的链接,请使用 setWebViewClient() 为您的 WebView 提供 WebViewClient。在下面添加这一行

    binding.webView.webViewClient = WebViewClient()
    

    你的其余代码是正确的

    import androidx.appcompat.app.AppCompatActivity
    import android.os.Bundle
    import com.marwaeltayeb.androidkotlin.databinding.ActivityMainBinding
    import android.webkit.WebViewClient
    
        class MainActivity : AppCompatActivity() {
        
            private lateinit var binding:ActivityMainBinding
            private val link = "https://www.google.com/"
        
            override fun onCreate(savedInstanceState: Bundle?) {
                super.onCreate(savedInstanceState)
                binding = ActivityMainBinding.inflate(layoutInflater)
                setContentView(binding.root)
        
                binding.webView.webViewClient = WebViewClient()
                binding.webView.apply {
                    loadUrl(link)
                }
            }
        }
    

    【讨论】:

    • 嘿,互联网连接已经提供。很高兴听到它为您正确打开。我不知道为什么它在谷歌浏览器上为我打开。这有点奇怪
    • 添加此代码:binding.webView.webViewClient = WebViewClient()
    • 试试吧,它会工作的
    • 谢谢。成功了!但是现在进入我自己的网站链接时似乎只有白屏,除了google.com
    • 我尝试了另一个网站,它也有效。等到网站加载完毕。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多