android中通過kotlin使用WebView


  本文記錄通過代碼來在APP中添加一個WebView訪問網頁的過程,由於沒有kotlin基礎和android基礎,所以費勁周折。首先我們利用AS向導創建一個Empty Activity的APP,然后在onCreate里面修改成如下代碼:

1     override fun onCreate(savedInstanceState: Bundle?) {
2         super.onCreate(savedInstanceState)
3         //setContentView(R.layout.activity_main)
4         var web:WebView= WebView(this);
5         setContentView(web);
6         web.loadUrl("https://www.baidu.com")
7     }

別的什么都不動,編譯,安裝到手機,彈出如下界面:

 
搜索錯誤代碼得知是Google針對Android P版本以后的應用程序,將要求默認使用加密連接,也就是不允許使用http協議訪問,解決辦法之一是修改清單文件允許APP使用HTTP協議。

1     <application
2         android:allowBackup="true"
3         android:icon="@mipmap/ic_launcher"
4         android:label="@string/app_name"
5         android:roundIcon="@mipmap/ic_launcher_round"
6         android:supportsRtl="true"
7         android:usesCleartextTraffic="true"   //添加本行代碼
8         android:theme="@style/AppTheme">
9         <activity android:name=".MainActivity">

 繼續編譯,安裝,運行,出現如下錯誤提示:

 

 

 錯誤原因是APP無權鏈接網絡。解決方法:在AndroidManifest.xml文件中加入聯網的權限 <uses-permission android:name="android.permission.INTERNET"></uses-permission>即可

1 <?xml version="1.0" encoding="utf-8"?>
2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3     package="com.example.usewebview">
4     <uses-permission android:name="android.permission.INTERNET"/>   為APP添加聯網權限
5     <application

再次編譯安裝運行時出現

 

 

 網頁沒有在APP里面打開,而是讓選擇用其他APP打開。修改代碼:

 1     override fun onCreate(savedInstanceState: Bundle?) {
 2         super.onCreate(savedInstanceState)
 3         //setContentView(R.layout.activity_main)
 4         var web:WebView= WebView(this);
 5         setContentView(web);
 6         web.loadUrl("http://www.baidu.com")
 7         val webClient = object : WebViewClient() {
 8             override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
 9                 return false
10             }
11         }
12         web.webViewClient=webClient;//或者不要上面內容,直接web.webViewClient=WebViewClient()
13     }

編譯,運行,OK。這是一個最簡單的過程,要是在APP里面正常使用,還需做很多工作。
參考資料:
https://www.iteye.com/blog/bolg-2211950   Android權限標簽uses-permission的書寫位置
 https://www.jianshu.com/p/b266ab3233d0 關於WebView(WebKit)
https://www.jianshu.com/p/24d5d935ad0b  Android Webview 基礎教程
https://blog.csdn.net/weixin_40438421/article/details/85700109  Android WebView 的使用(超詳細用法)
https://www.jianshu.com/p/50afc19de8e5    使用Kotlin寫一個簡單的WebView例子

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM