安卓开发学习笔记(五):史上最简单且华丽地实现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" />

 

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

 

四.实现效果如下:

 

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

目录
相关文章
|
2月前
|
存储 Shell Android开发
基于Android P,自定义Android开机动画的方法
本文详细介绍了基于Android P系统自定义开机动画的步骤,包括动画文件结构、脚本编写、ZIP打包方法以及如何将自定义动画集成到AOSP源码中。
58 2
基于Android P,自定义Android开机动画的方法
|
2月前
|
Android开发
基于android-11.0.0_r39,系统应用的手动签名方法和过程
本文介绍了基于Android 11.0.0_r39版本进行系统应用手动签名的方法和解决签名过程中遇到的错误,包括处理`no conscrypt_openjdk_jni-linux-x86_64`和`RegisterNatives failed`的问题。
134 2
|
28天前
|
前端开发 JavaScript 数据库
https页面加载http资源的解决方法
https页面加载http资源的解决方法
66 7
|
1月前
|
ARouter 测试技术 API
Android经典面试题之组件化原理、优缺点、实现方法?
本文介绍了组件化在Android开发中的应用,详细阐述了其原理、优缺点及实现方式,包括模块化、接口编程、依赖注入、路由机制等内容,并提供了具体代码示例。
35 2
|
16天前
|
安全 应用服务中间件 网络安全
修复HTTPS升级后出现 Mixed Content: The page at 'https://xxx' was loaded over HTTPS, but requested an insecure frame 'http://xxx'. This request has been blocked; the content must be served over HTTPS. 的问题
修复HTTPS升级后出现 Mixed Content: The page at 'https://xxx' was loaded over HTTPS, but requested an insecure frame 'http://xxx'. This request has been blocked; the content must be served over HTTPS. 的问题
|
1月前
|
安全 网络安全 数据安全/隐私保护
HTTP与HTTPS协议区别及应用场景
在互联网高速发展的今天,HTTP与HTTPS作为数据传输的基石,作用至关重要。HTTP允许客户端与服务器间传输超文本文档,但其数据传输过程未加密,存在安全隐患;HTTPS则在此基础上加入了SSL/TLS协议,实现了数据加密传输,增强了安全性,广泛应用于电子商务、网上银行、政府网站及社交媒体平台等涉及敏感信息传输的领域,有效保护了用户隐私和数据安全。随着网络安全意识提升,HTTPS正逐渐成为主流。
|
2月前
|
Android开发
Android在rootdir根目录创建自定义目录和挂载点的方法
本文介绍了在Android高通平台的根目录下创建自定义目录和挂载点的方法,通过修改Android.mk文件并使用`LOCAL_POST_INSTALL_CMD`变量在编译过程中添加目录,最终在ramdisk.img的系统根路径下成功创建了`/factory/bin`目录。
132 1
|
2月前
|
Android开发
我的Android进阶修炼:安卓启动流程之init(1)
本文深入分析了Android系统中的init进程,包括其源码结构、主要功能以及启动流程的详细注解,旨在帮助读者理解init作为用户空间的1号进程在Android启动过程中的关键作用。
44 1
|
2月前
|
开发工具 uml git
AOSP源码下载方法,解决repo sync错误:android-13.0.0_r82
本文分享了下载AOSP源码的方法,包括如何使用repo工具和处理常见的repo sync错误,以及配置Python环境以确保顺利同步特定版本的AOSP代码。
279 0
AOSP源码下载方法,解决repo sync错误:android-13.0.0_r82
|
安全 中间件
不安全的HTTP方法
检查原始测试响应的“Allow”头,并验证是否包含下列一个或多个不需要的选项:DELTE,SEARCE,COPY,MOVE,PROPFIND,PROPPATCH,MKCOL,LOCK,UNLOCK,PUT
709 0
不安全的HTTP方法