安卓开发学习笔记(五):史上最简单且华丽地实现Android Stutio当中Webview控件https/http协议的方法
一.我们先在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" />
这样的话,就可以让安卓应用进行肆无忌惮地访问网站啦!
四.实现效果如下:
怎么样,还算简单吧!嘿嘿
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
No toolchains found in the NDK toolchains folder for ABI with prefix: ...
原文: No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabi 版权声明:本文为Tasfa原创文章,未经博主允许不得转载。如有问题请关注www.tasfa.cn https://blog.csdn.net/qq_30135181/article/details/78770676 产生背景 最近把Android Studio更新到3.0,更新之后出现了build错误:No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabi,google了很多方法,总结一下这些坑 问题解决 从错误字面理解来看,是指NDK的toolchais下没有 arm-linux-androideabi编译工具,这时候就简单明了。直接进入ndk目录查看一下确认是否有该工具目录 which ndk-build #一定要用这里的路径 cd ndkPath 用which查找到...
- 下一篇
iOS 编写高质量Objective-C代码(六)
《编写高质量OC代码》已经顺利完成一二三四五六七篇!附上链接: iOS 编写高质量Objective-C代码(一)—— 简介iOS 编写高质量Objective-C代码(二)—— 面向对象iOS 编写高质量Objective-C代码(三)—— 接口和API设计iOS 编写高质量Objective-C代码(四)—— 协议与分类iOS 编写高质量Objective-C代码(五)—— 内存管理机制iOS 编写高质量Objective-C代码(六)—— block专栏iOS 编写高质量Objective-C代码(七)—— GCD专栏 本篇的主题是iOS中的 “Block的原理及应用”。 先简单介绍一下今天的主角:block。 block(块):是一种 “ 词法闭包 ”,通过block,开发者可将代码块像对象一样传递。 一、理解“block”的概念: 1. block的数据结构: 通过clang命令行工具(OC转C++),我们先来看一下block的内部数据结构大概是什么样子的? struct Block_descriptor { unsigned long int reserved; unsig...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7