zoukankan      html  css  js  c++  java
  • 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例子

  • 相关阅读:
    通知协议KVO的用法
    UIImageView用法
    默默的学习!
    多输入参数的方法
    一本书的摘录
    实例、局部、静态变量(java)
    分数相加的例题
    类的继承
    多线程
    单例
  • 原文地址:https://www.cnblogs.com/gushandujian/p/12575959.html
Copyright © 2011-2022 走看看