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例子

 

 

posted on 2020-03-26 17:52  孤山独剑  阅读(4567)  评论(0编辑  收藏  举报

导航