1当出现net::ERR_CLEARTEXT_NOT_PERMITTED的问题时,是因为从Android 9.0( API 级别28)开始,默认情况下禁用明文支持。因此http的url均无法在webview中加载解决办法是在清单文件中的application标签下加入
android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/Theme.KotlinAndH5" android:usesCleartextTraffic="true" 。。。。。。。 2当出现net::ERR_CONNECTION_REFUSED,可能是因为你主程序中访问的ip地址不正确,电脑浏览器访问的主机号为localhost或者127.0.0.1。但是在手机模拟器上需要使用 10.0.2.2 package com.njupt.kotlinandh5 import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.webkit.WebChromeClient import android.webkit.WebView import android.webkit.WebViewClient class MainActivity : AppCompatActivity() { private val myWebView by lazy { findViewById } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //1开启kotlin与H5通信的开关 myWebView.settings.javaScriptEnabled=true myWebView.webViewClient=MyWebViewClient() myWebView.webChromeClient=MyWebChromeClient() myWebView.loadUrl("http://10.0.2.2:8080/bmi/") } private class MyWebViewClient:WebViewClient(){ //界面加载完成之后会调用这个方法 override fun onPageFinished(view: WebView?, url: String?) { super.onPageFinished(view, url) } } private class MyWebChromeClient:WebChromeClient(){ //加载进度条 override fun onProgressChanged(view: WebView?, newProgress: Int) { super.onProgressChanged(view, newProgress) } } } 参考文章
发表评论