Android编程 - WebView控件基本使用方法

【Android】webview常用方法和使用 webview详解 阅读详情

最近集中在看《Android程序设计》(北航出版社)的图形用户接口的相关章节,主要针对自己比较喜欢的UI领域关注一下Android的GUI基础知识。


WebView控件提供了一个内嵌的浏览器试图,用于显示本地的html或网路上的网页。


第一步//main.xml

<WebView
    android:id="@+id/html"
    android:layout_width="fill_parent"
    android:layout_height="280px"
	/> 


第二步.//主类.java

@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		WebView web = (WebView) findViewById(R.id.html);
		web.getSettings().setJavaScriptEnabled(true);//用于支持JavaScript
		web.loadUrl("http://www.baidu.com");//访问外部网址


第三步.//AndroidManifest.xml

若无此行许可,则访问外部网址时,将显示网页找不到,同理在写Socket通信的程序时也需要用到本许可

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

第四步.//主类.java

普通WebView控件默认显示的浏览器视图并无网页加载进度条或通告,在点击第一个页面的超链接后,系统会调用自身浏览器进程进行下一步网络访问,这很不符合我们的编程和使用习惯,以下方法重写可以自行定制其操作。

// 此方法可以处理webview 在加载时和加载完成时一些操作
		web.setWebChromeClient(new WebChromeClient() {
			@Override
			public void onProgressChanged(WebView view, int newProgress) {
				if (newProgress == 100) { // 这里是设置activity的标题,
					// 也可以根据自己的需求做一些其他的操作
					setTitle("加载完成");
				} else {
					setTitle("加载中.......");

				}
			}
		});

		web.setWebViewClient(new WebViewClient() {
			@Override
			public boolean shouldOverrideUrlLoading(WebView view, String url) { // 重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边
				view.loadUrl(url);
				return true;
			}





要开学了,食堂教三主干道,擦身而过的那些年轻面孔,就像两年前的我们一样稚嫩。

那个时候我还很天真,总是幻想着未来的无数可能性。

渐渐地,我们都知道了,任何一种可能性,都需要靠自己的努力去实现。

好的,坏的,全凭你自己。


 生活是什么样子,其实都是自己拿着画笔一笔一笔画出来的。

谁也不能许我一个美好的未来,但我自己可以。


第009天:APP的网络连接 因此,一般我们都会在网络上传输一些格式化后的数据,这种数据会有一定的 结构规格和语义,当另一方收到数据消息之后就可以按照相同的结构规格进行解析,从而取出他 想要的那部分内容。没错,通常情况下我们都应该将这些通用的网络操作提取到一个公共的类里,并提供一个静 态方法,当想要发起网络请求的时候,只需简单地调用一下这个方法即可。的接口设计得确实非常人性化,它将一些常用的功能进行了很好的 封装,使得我们只需编写少量的代码就能完成较为复杂的网络操作。的主要优势在于它的体积更小,在网络上传输的时候可以更省 流量。 阅读详情

相关推荐

webview-plus:在任何Android 4.x设备上的统一Webview

重要说明:该项目已终止。 有关适用于Android的最新Webview +,请访问位于的新Cocoon Cloud。 新的Cocoon云完全基于Cordova,并具有增强的功能,其中包括:最新的Webview +,新的Cocoon插件,更好的Developer App,对所有Cordova插件的支持以及经过改进的UI。 适用于Android的Webview + 该项目是cordova / phonegap应用程序的插件,并在任何Android 4.x设备上提供统一的Webview 。 。 寻找吗? Webview +的功能,优势和优势 V8 Javascript VM 适用于Android 4.x 最新HTML5 API 与Cordova插件兼容 比系统Webview更好的性能 先决条件 您需要在SDK工具中安装级别19。 如何在当前项目中安装Webview + 即使它是与c

Android WebView 工作遇坑总结(持续迭代)

微信支付无法拉起 微信支付官方文档webview loader url 需要加入Referer做为header onPageFinished在4.4版本会被多次执行的问题 这里不多做赘述,直接参数作者说明参考地址 关闭activity视频不停止播放 请在activity 生命周期方法中 调用webview 相关的生命周期方法webview.destro...

博艺的技术专栏 583

WebView控件基本使用 Android

WebView 控件 基本使用 Android WebView 控件 基本使用 Android WebView 控件 基本使用 Android

android中webView 的基本使用与属性总汇

为了使APP更加具有灵活性和可控制性,我们通常会在APP中内嵌运营人员可以自由切换的网页。这时候我们就要用到一个神奇的控件webView。本篇文章由浅入深的详细介绍webView 的使用与各项属性,从最常用属性到最不常用属性依次进行了充分讲解。

五万年前走丢了 846

STM32L431电池供电项目实战:用STOP2模式把功耗降到5uA以下(CubeMX配置详解)

本文详细介绍了如何在STM32L431电池供电项目中利用STOP2模式实现5μA以下的超低功耗设计。通过CubeMX配置、硬件优化和软件策略,成功将农业温湿度监测节点的待机功耗控制在4.7μA,确保CR2032电池供电下3年以上的工作寿命。文章包含完整的低功耗实现路径和实测数据,特别适合物联网边缘设备开发者参考。

weixin_30345577的博客 395

烽火HG680-LC刷机后体验:当贝纯净桌面+讯飞语音,老盒子秒变智能电视的折腾记录

本文详细记录了烽火HG680-LC机顶盒刷机后的使用体验,通过安装当贝纯净桌面和讯飞语音助手,老盒子焕发新生,实现无广告、快速响应的智能电视功能。文章对比了刷机前后的性能差异,分享了影音播放、语音控制等实用功能,并提供了ADB调试和问题解决的实用技巧,帮助用户将闲置的运营商盒子变身为高性能的智能影音中心。

weixin_30292843的博客 474

android webview 显示图片,怎样实现: webview加载外部网页,网页中img标签加载本地图片...

实验过的解决方案:1: var Webview = plus.android.importClass("android.webkit.WebView");var WebSettings = plus.android.importClass("android.webkit.WebSettings");var wv = plus.android.currentWebview();var settin...

weixin_33023873的博客 369

用LTspice仿真CMOS反相器功耗?这份避坑指南能省你3天调试时间

本文详细介绍了如何使用LTspice准确仿真CMOS反相器的功耗,包括动态功耗、短路功耗和静态功耗的测量技巧。通过工程实践指南,帮助电子工程师避开常见陷阱,优化仿真参数设置,提升仿真结果的可靠性,节省调试时间。

w7x8y9z的博客 190

深入理解Android网络编程——学习笔记(一)——加载一个Web页面

深入理解Android网络编程——学习笔记(一) 平台:Android Stduio SDK:27 参考文献:http://android-doc.com/ 1、加载一个Web页面 (1)在AS(Android Studio)中创建项目 (2)添加字符串。在字符串文件 \res\values\strings.xml 添加需要的字符串 <string name="open_ul...

Alvin的博客 539

自锁电路设计

Hi,uu们,是不是经常要用到自锁电路,通常不是使用555芯片就是用比较器来做自锁,今天我们来简单看下自锁电路的设计.图1采用了比较器构建了一个自锁电路,采用低电平复位,当需要复位的时候志需要将反向端的二极管拉低一下即可,免去 三极管控制同相端和电源短接的麻烦。图1:比较器构建的自锁电路也可以使用555去构建,如下图2所示.图2:使用555构建的自锁电路工作原理见555的真值表,真值表如表1所示.表1:555电路真值表相对来说555还是比较贵,所以我就想能不能有个便宜的方法做个自锁电路,构建电路如下图3所示

weixin_43884675的博客 7071

手把手教你实现阿克曼ROS小车的运动控制

本文详细介绍了如何从零开始实现阿克曼ROS小车的运动控制。内容涵盖硬件搭建、STM32底层PID速度与舵机控制、ROS层阿克曼运动学模型解析,以及上下位机通信协议设计。通过手把手的代码示例和调试步骤,帮助机器人爱好者与开发者掌握将高级速度指令转化为小车具体动作的全流程,实现流畅的阿克曼转向控制。

weixin_29193259的博客 200

Android——网络编程

Android——网络编程 网络编程主要是在手机端使用 HTTP 协议和服务器端进行网络交互,并对服务器返回的数据进行解析,也是 Android 中最常使用到的网络技术了, WebView的用法 提供了一个 WebView 控件,借助它我们就可以在自己的应用程序里嵌入一个浏览器,从而非常轻松地展示各种各样的网页。 在布局文件中加入一个WebView控件。 <WebView android:id="@+id/web_view" android:layout_width="match_p

菜菜的博客 574

2020.12.25丨CRISPResso2安装教程

一个月前接到一个项目,说是做关于CRISPR的编辑效率个性化分析。本来这个分析以前是没有做过的,不过客户发了参考文献。里面流程和命令行都非常清楚,再加上读研期间CRISPR的项目“中道崩殂”,让我对CRiSPR的技术有些执念,便下决心接下来试试。 整个测序分析使用的工具就是CRISPResso,,下面介绍最快捷的安装方式。 首先,CRISPResso只支持python2.X,不支持3.X你需要下载Anaconda或者miniconda,以Miniconda为例: 安装环境: Linux 64-bi

4634

android网络编程总结

今天来总结下android的网络编程的部分: 首先,应该了解的几个问题: 1)Android平台网络相关API接口  a) java.net.*(标准Java接口)  java.net.*提供与联网有关的类,包括流、数据包套接字(socket)、Internet协议、常见Http处理等。比如:创建URL,以及URLConnection/HttpURLConnection对象、设置链

oneHuang的专栏 817

使用 Simulink + Simscape Electrical 对基于VSG控制的背靠背变流器整流侧进行建模与仿真

本文介绍了基于Simulink的直驱风电系统背靠背变流器整流侧虚拟同步发电机(VSG)建模方法。首先阐述了直驱风电系统结构和VSG控制的作用,然后详细指导了模型搭建过程:从创建项目、添加PMSG和变流器模块,到搭建主电路拓扑和实现VSG控制逻辑。重点说明了VSG控制器如何模拟传统同步发电机的特性,并提供了仿真设置和结果分析方法。该模型可用于研究风电系统在不同工况下的响应特性,为新能源发电系统设计提供重要参考。

amy_mhd的博客 181

CP AUTOSAR标准之AUTOSAR OS(AUTOSAR_SWS_OS)(二)

AUTOSAR OS是一个Operating System,即操作系统。它最核心的功能是管理任务和事件的调度,不同任务间的同步流,并且提供监控和错误处理功能。或者用最简化理解就是一个函数调度器。

CoolBreeze的博客 655

安卓大json文件解析_Android里的网络以及XML,JSON文件的解析

涉及到Android里的网络编程都需要添加权限一、WebView:是应用程序打开web网页的UI控件前台:xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/...

weixin_29433715的博客 226

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Android精通教程V

前言大家好,我是 Vic,今天给大家带来Android精通教程V的概述,希望你们喜欢封面前言如果你想学习Android开发,那你就要了解Java编程,这是基础,也是重点,如果没学Java语法就先学习,再来学Android,别问可不可以先学Android,都告诉了,先学Java对吧!Android开发的基本了解Android开发主要了解这四种重要组件:activity为用户界面,就是说activit...

程序员哆啦A梦,蓝胖子 636

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Android网络编程概述

首先,应该了解的几个问题: 1)Android平台网络相关API接口  a) java.net.*(标准Java接口)  java.net.*提供与联网有关的类,包括流、数据包套接字(socket)、Internet协议、常见Http处理等。比如:创建URL,以及URLConnection/HttpURLConnection对象、设置链接参数、链接到服务器、向服务器写数据

期待 858

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

网络技术-android--20160317

1 WebView控件的用法:在程序中展示一些网页,不需要打开浏览器。 2 HTTP协议访问网络,工作原理:     1客户端向服务端发一条http请求,     2服务端接受服务响应会返回一些数据给客户端,     3解析返回的数据,     4显示在终端 3 android上发送http请求的方式有两种:HttpURLConnection 和 HttpClient

Timebeggar的博客 344

Android--Android网络编程概述

首先,应该了解的几个问题: 1)Android平台网络相关API接口  a) java.net.*(标准Java接口)  java.net.*提供与联网有关的类,包括流、数据包套接字(socket)、Internet协议、常见Http处理等。比如:创建URL,以及URLConnection/HttpURLConnection对象、设置链接参数、链接到服务器、向服务器写数据

Navan 638

Android网络编程

------- android培训、java培训、期待与您交流! ---------- 第1节 多线程(线程间通信-示例代码) 线程间通信:我们有一堆资源,a线程在往里边存数据,b线程再往外取数据,这一进一出在同时运行,这就涉及到多线程。 这两个线程运行代码不一致,一个负责外里边存数据,另一个往外边拿数据,所以动作不一致,就代表着有两个run方法来存放,两个run方法存放在两个类当中。 I

Geek马走日 1007

android 和javascript 的交互

在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用android方法,在这里我个人觉得有点和DWR相似。 为了让大家容易理解,我写了一个简单的Demo,具体步骤如下: 第一步:新建一个Android工程,命名为WebViewDemo(这里我在ass

shaaiwei521的专栏 501

Android WebViewClient 处理跳转URL

前言 最近代码里和WebView有很多的交互,由于住宿

小一的专栏 9490

安卓网络编程(Socket、WebView控件)

JavaSocket服务端开发 JavaSocket客户端开发 安卓Socket客户端开发 接收消息显示到控件上(解决安卓线程无法修改控件问题) Android网络接收数据并刷新界面显示 安卓webView 智能家居你APP页面开发

zhuguanlin121的博客 619
上一篇: 大三小学期《Imail - 我邮》Android安全传输应用软件工程实践总结
下一篇: Android编程 - Option Menu选项菜单&& Context Menu上下文菜单基本使用
tongcpp
博客等级 码龄15年 32粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值