安卓开发学习笔记(五):史上最简单且华丽地实现Android Stutio当中Webview控件https/http协议的方法

简介: 一.我们先在XML当中自定义一个webview(Second_layout.xml) 代码如下: 1 2 10 15 可以看到,这里我们使用了现行布局以及WebView控件,tools:context=".SecondActivity"告诉我们这个控件是定义在第二个主活动当中的。

一.我们先在XML当中自定义一个webview(Second_layout.xml)

代码如下:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:app="http://schemas.android.com/apk/res-auto"
 4     xmlns:tools="http://schemas.android.com/tools"
 5 android:layout_width="match_parent"  6 android:layout_height="match_parent"  7 android:orientation="vertical"  8 tools:context=".SecondActivity"  9 android:background="@drawable/ic_launcher"> 10 <WebView 11 android:id="@+id/webView" 12 13 android:layout_width="match_parent" 14 android:layout_height="match_parent" /> 15 </LinearLayout>

可以看到,这里我们使用了现行布局以及WebView控件,tools:context=".SecondActivity"告诉我们这个控件是定义在第二个主活动当中的。这个控件的唯一标识符是:@+id/webView。这个标识符有利于我们在第二个主活动当中对这个控件的布局进行调用。这样,我们的XML代码就写好了,是不是很简单呢?嘿嘿,下面我们进行第二个主活动的编写(当然您也可以使用第一个主活动当中编写Java代码来进行控件背后的业务逻辑的实现,笔者只是在第二个主活动当中进行了实现,并无实质上的区别哦!)

二.开始主活Java代码业务逻辑实现(SecondActivity.java)

首先我们开始导入必要的包,没有导入这些包的话,程序就会报错哦!需要导入的包有:

 

1 package com.example.lenovo.activitytest;
2 
3 import android.net.http.SslError; 4 import android.os.Bundle; 5 import android.support.v7.app.AppCompatActivity; 6 import android.webkit.SslErrorHandler; 7 import android.webkit.WebSettings; 8 import android.webkit.WebView; 9 import android.webkit.WebViewClient;

 

然后开始主活动(或者说第二个活动也可以)的编写!这里我们继承的是AppCompatActivity这个类:

 

 1 public class SecondActivity extends AppCompatActivity {  2 private WebView webView;  3  @Override  4 protected void onCreate(Bundle savedInstanceState) {  5 super.onCreate(savedInstanceState);  6  setContentView(R.layout.second_layout);  7  init();  8  }  9 10 private void init(){ 11 webView = (WebView) findViewById(R.id.webView); 12 //需要加载的网页的url 13 webView.loadUrl("https://www.baidu.com"); 14 WebSettings settings = webView.getSettings(); 15 // 如果访问的页面中要与Javascript交互,则webview必须设置支持Javascript 16 settings.setJavaScriptEnabled(true); 17 webView.setWebViewClient(new WebViewClient(){ 18 public boolean shouldOverrideUrlLoading(WebView view, String url){ 19  view.loadUrl(url); 20 return true; 21  } 22 });}}

 

利用这种方法的话,就可以十分容易地实现对我们网页的访问了!是不是很激动了呢?但是我们可以看看我们WebView控件的代码后面加载的是https协议所对应的网站,但是仅应用这些代码我们是只能够实现在APP当中查看具有http协议的网站,如果您只想访问具有http协议的网站,那么这就够咯。不过您要是想要实现访问具有https协议的网站的话,我们还必须在下面加上这一段代码了!:

 

 

1       webView.setWebViewClient(new WebViewClient() {
2  @Override 3 public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { 4 //等待证书响应 5  handler.proceed(); 6  } 7 });

 

这个时候软件后面的逻辑就全部编写完毕了,但是当程序进行运行的时候,Android stuidio也不会报错,可我们打开我们的APP一看就会发现我们还是打不开网页的,APP上会显示NET::ERR_CACHE_MISS的错误,因此我们来到程序编写的最后一步,来华丽的实现我们的webview控件的编写。

 

三.在Manifest.xml当中注册

我们只需要在Manifest.xml文件下面,webview加载网页时提示NET::ERR_CACHE_MISS的错误,原因很简单,就是没有添加网络访问的权限,在AndroidManifest.xml中加下就好了,如下:

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

 

这样的话,就可以让安卓应用进行肆无忌惮地访问网站啦!

 

四.实现效果如下:

 

 怎么样,还算简单吧!嘿嘿

目录
相关文章
|
15天前
|
XML API 网络安全
【安卓】在安卓中使用HTTP协议的最佳实践
【安卓】在安卓中使用HTTP协议的最佳实践
30 4
|
15天前
|
安全 JavaScript 前端开发
kotlin开发安卓app,JetPack Compose框架,给webview新增一个按钮,点击刷新网页
在Kotlin中开发Android应用,使用Jetpack Compose框架时,可以通过添加一个按钮到TopAppBar来实现WebView页面的刷新功能。按钮位于右上角,点击后调用`webViewState?.reload()`来刷新网页内容。以下是代码摘要:
|
16天前
|
JavaScript 前端开发 Android开发
kotlin开发 webview如何在收到JS调用后,native返回数据给到JS
这段内容描述了在Hybrid App开发中,使用Kotlin的Compose构建的Web视图(WebView)如何通过JsBridge实现JavaScript与原生代码的交互
|
4天前
|
XML Android开发 数据格式
Android基础控件介绍
Android基础控件介绍
5 0
|
29天前
|
Java Android开发
18. 【Android教程】图片控件 ImageView
18. 【Android教程】图片控件 ImageView
17 4
|
29天前
|
前端开发 API Android开发
25. 【Android教程】列表控件 ListView
25. 【Android教程】列表控件 ListView
27 2
|
29天前
|
Java Android开发 开发者
17. 【Android教程】开关控件ToggleButton/Switch
17. 【Android教程】开关控件ToggleButton/Switch
19 2
|
11天前
|
Android开发
Android 自定义View 测量控件宽高、自定义viewgroup测量
Android 自定义View 测量控件宽高、自定义viewgroup测量
16 0
|
2月前
|
Android开发 数据安全/隐私保护 iOS开发
ios和安卓测试包发布网站http://fir.im的注册与常用功能
ios和安卓测试包发布网站http://fir.im的注册与常用功能
30 0
ios和安卓测试包发布网站http://fir.im的注册与常用功能
|
18天前
|
安全 网络安全 API
kotlin安卓开发JetPack Compose 如何使用webview 打开网页时给webview注入cookie
在Jetpack Compose中使用WebView需借助AndroidView。要注入Cookie,首先在`build.gradle`添加WebView依赖,如`androidx.webkit:webkit:1.4.0`。接着创建自定义`ComposableWebView`,通过`CookieManager`设置接受第三方Cookie并注入Cookie字符串。最后在Compose界面使用这个自定义组件加载URL。注意Android 9及以上版本可能需要在网络安全配置中允许第三方Cookie。
114 0