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

 

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

 

四.实现效果如下:

 

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

目录
相关文章
|
7月前
|
存储 设计模式 数据库
构建高效的安卓应用:探究Android Jetpack架构组件
【4月更文挑战第20天】 在移动开发的世界中,构建一个既高效又可维护的安卓应用是每个开发者追求的目标。随着Android Jetpack的推出,Google为开发者提供了一套高质量的库、工具和指南,以简化应用程序开发流程。本文将深入探讨Jetpack的核心组件之一——架构组件,并展示如何将其应用于实际项目中,以提升应用的响应性和稳定性。我们将通过分析这些组件的设计原则,以及它们如何协同工作,来揭示它们对于构建现代化安卓应用的重要性。
|
6月前
|
数据管理 API 数据库
探索Android Jetpack:现代安卓开发的利器
Android Jetpack是谷歌为简化和优化安卓应用开发而推出的一套高级组件库。本文深入探讨了Jetpack的主要构成及其在应用开发中的实际运用,展示了如何通过使用这些工具来提升开发效率和应用性能。
|
3月前
|
前端开发 JavaScript
HTTP学习笔记
HTTP学习笔记
41 1
|
4月前
|
Android开发
我的Android进阶修炼:安卓启动流程之init(1)
本文深入分析了Android系统中的init进程,包括其源码结构、主要功能以及启动流程的详细注解,旨在帮助读者理解init作为用户空间的1号进程在Android启动过程中的关键作用。
92 1
|
4月前
|
Java 网络安全 开发工具
UNITY与安卓⭐一、Android Studio初始设置
UNITY与安卓⭐一、Android Studio初始设置
|
4月前
|
Java Android开发 UED
安卓scheme_url调端:如果手机上多个app都注册了 http或者https 的 intent。 调端的时候,调起哪个app呢?
当多个Android应用注册了相同的URL Scheme(如http或https)时,系统会在尝试打开这类链接时展示一个选择对话框,让用户挑选偏好应用。若用户选择“始终”使用某个应用,则后续相同链接将直接由该应用处理,无需再次选择。本文以App A与App B为例,展示了如何在`AndroidManifest.xml`中配置对http与https的支持,并提供了从其他应用发起调用的示例代码。此外,还讨论了如何在系统设置中管理这些默认应用选择,以及建议开发者为避免冲突应注册更独特的Scheme。
|
6月前
|
安全 JavaScript 前端开发
kotlin开发安卓app,JetPack Compose框架,给webview新增一个按钮,点击刷新网页
在Kotlin中开发Android应用,使用Jetpack Compose框架时,可以通过添加一个按钮到TopAppBar来实现WebView页面的刷新功能。按钮位于右上角,点击后调用`webViewState?.reload()`来刷新网页内容。以下是代码摘要:
|
6月前
|
人工智能 安全 物联网
【Android】安卓开发的前景
【Android】安卓开发的前景
125 1
|
6月前
|
JavaScript 前端开发 Android开发
kotlin安卓在Jetpack Compose 框架下使用webview , 网页中的JavaScript代码如何与native交互
在Jetpack Compose中使用Kotlin创建Webview组件,设置JavaScript交互:`@Composable`函数`ComposableWebView`加载网页并启用JavaScript。通过`addJavascriptInterface`添加`WebAppInterface`类,允许JavaScript调用Android方法如播放音频。当页面加载完成时,执行`onWebViewReady`回调。
|
6月前
|
Web App开发 移动开发 前端开发
52. 【Android教程】网页视图:WebView
52. 【Android教程】网页视图:WebView
102 1

热门文章

最新文章