WebView注意点,注释里有说明

 package com.example.suneyaenews;

 import com.example.http.HttpThread;

 import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ImageButton;
import android.widget.Toast; public class WebViewActivity extends Activity implements OnClickListener {
private static String HAO123 = "https://www.hao123.com/";
private static String BAIDU = "https://www.baidu.com/";
private static String HOME = "http://m.hao123.com/?vit=h123&from=3w123";
private WebView webView;
private ImageButton imgbtn_back, imgbtn_ahead, imgbtn_home, imgbtn_more,
imgbtn_tag; @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
initImgbtn();
webView = (WebView) findViewById(R.id.id_webview);
// new HttpThread("www.baidu.com", webView, new Handler()).start();
webView.loadUrl(HAO123);// 打开网页的第一种方式:使用webview来访问 setWebView();// 设置默认打开行为
// webView.loadUrl("file:///android_asset/xx.html ");//没成功,
// Uri uri = Uri.parse("https://www.hao123.com/");
// Intent intent = new Intent(Intent.ACTION_VIEW,uri);
// startActivity(intent);//打开网页的第二种方式:使用intent
// boolean flag = webView.isPressed();
// prompt("webView.isPressed():"+flag); webView.getSettings().setJavaScriptEnabled(true);// 设置启动javascript } private void setWebView() {
// //覆盖webView默认使用第三方或者系统浏览器打开网页的行为,
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
// true:在webview中打开, false:用系统或者第三方浏览器打开
view.loadUrl(url);
return true;
} @Override
public void onLoadResource(WebView view, String url) {
// TODO Auto-generated method stub
// prompt("正在加载资源,onLoadResource,url:"+url);
}
// 这个WebViewClient的作用:帮助WebView去处理一些页面控制,和请求通知。
});
} private void initImgbtn() {
// imgbtn_back, imgbtn_ahead, imgbtn_home, imgbtn_more,
// imgbtn_tag
imgbtn_back = (ImageButton) findViewById(R.id.id_btn_back);
imgbtn_ahead = (ImageButton) findViewById(R.id.id_btn_ahead);
imgbtn_home = (ImageButton) findViewById(R.id.id_btn_home);
imgbtn_more = (ImageButton) findViewById(R.id.id_btn_more);
imgbtn_tag = (ImageButton) findViewById(R.id.id_btn_tag);
imgbtn_back.setOnClickListener(this);
imgbtn_ahead.setOnClickListener(this);
imgbtn_home.setOnClickListener(this);
imgbtn_more.setOnClickListener(this);
imgbtn_tag.setOnClickListener(this);
} /**
* 改写物理按钮返回的逻辑,
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == event.KEYCODE_BACK) {
if (webView.canGoBack()) {
prompt("返回上一页面...");
webView.goBack();// 返回上一页面
return true;
} else {
prompt("退出程序...");
System.exit(0);
}
}
return super.onKeyDown(keyCode, event);
} private void prompt(String hint, int duration) {
Toast.makeText(this, hint, duration).show();
} /**
* 弹出提示
*
* @param hint
*/
private void prompt(String hint) {
Toast.makeText(this, hint, 100).show();
} @Override
public void onClick(View v) {
int ic_id = v.getId();
switch (ic_id) {
case R.id.id_btn_back:
if (webView.canGoBack()) {
prompt("返回上一页面...");
webView.goBack();
}
break;
case R.id.id_btn_ahead:
if (webView.canGoForward()) {
prompt("返回下一页面...");
webView.goForward();// 返回上一页面
} else {
prompt("小主,这已经是最后一页了...");
}
break;
case R.id.id_btn_home:
// 如果当前url不是HOME页,那么就加载到home页,否则什么也不干
if (!HOME.equals(webView.getUrl())) {
prompt("回到主页... " + webView.getUrl());
webView.loadUrl(HOME);
setWebView();// 设置默认打开行为
}
break;
case R.id.id_btn_more: break;
case R.id.id_btn_tag: break;
default:
break;
}
}
}

  

webviewactivity的更多相关文章

  1. AndroidProjects个人项目归纳

    AndroidProjects 个人总结归纳-目录大纲 Data Binding框架MVVM BaseView CollapseView 更新中... 项目地址:https://github.com/ ...

  2. Android应用安全开发之浅谈网页打开APP

    一.网页打开APP简介 Android有一个特性,可以通过点击网页内的某个链接打开APP,或者在其他APP中通过点击某个链接打开另外一个APP(AppLink),一些用户量比较大的APP,已经通过发布 ...

  3. Android-webview和js互相调用

    Android-webview和js互相调用 Android 和 H5 都是移动开发应用的非常广泛.市面上很多App都是使用Android开发的,但使用Android来开发一些比较复杂附属类,提示性的 ...

  4. Android动态方式破解apk终极篇(加固apk破解方式)

    一.前言 今天总算迎来了破解系列的最后一篇文章了,之前的两篇文章分别为: 第一篇:如何使用Eclipse动态调试smali源码 第二篇:如何使用IDA动态调试SO文件 现在要说的就是最后一篇了,如何应 ...

  5. WebView的使用及添加进度条

    实现的效果比较简单类似于微信打开网页,头部有个进度条显示加载进度 下载地址:http://download.csdn.net/detail/qq_29774291/9666941 1.在安卓端加载一个 ...

  6. 初识selendroid

    Testerhome社区的lihuazhang对selendroid官网的部分内容进行了翻译和讲解. 以下内容均摘自lihuazhang.感谢lihuazhang的讲解.原文地址:https://gi ...

  7. 【转】JS 和 java 交互

    android中如何获得webView中的内容发表于 2011 年 06 月 13 日 由 admin本文概要:在程序中经常会用到webView来显示网页,但如果能够得到网页中的内容呢,本文将给你一个 ...

  8. 子线程简单实现(ZT)

    4.0以后的android在主线程中不可以直接访问网络,就得用以下的方法来搞,嘿嘿 在主函数中发送一个空的消息 : new Thread(){ @Override public void run()  ...

  9. 从手机获取图片让WebView支持本地上传图片

    一,从本地获取相册中的图片,并获取图片的URI 从本地选择图片上传到服务器时,首先要打开本地图片或文件管理器选择要上传的文件,代码如下 Intent intent =newIntent(Intent. ...

随机推荐

  1. HttpWebRequest使用注意(发生阻塞的解决办法)

    原文 http://www.cnblogs.com/Fooo/archive/2008/10/31/1323400.html HttpWebRequest使用注意(发生阻塞的解决办法) , count ...

  2. listview 的onitemlongclick阿和onitemclick冲突,item中还有button的点击事件

    listview里面item有button的,button要设置 android:focusable="false"  ,listview里面如果设置了 onitemlongcli ...

  3. Wide character in print at hcp.pl line 21.

    jrhmpt01:/root# cat -n hcp.pl 1 use LWP::UserAgent; 2 use Encode; 3 $ua = LWP::UserAgent->new; 4 ...

  4. 具体解释http 协议

    HTTP协议的主要特点可概括例如以下: 1.支持客户/server模式. 2.简单高速:客户向server请求服务时,仅仅需传送请求方法和路径.请求方法经常使用的有GET.HEAD.POST.每种方法 ...

  5. [C# 基础知识系列]专题六:泛型基础篇——为什么引入泛型

    引言: 前面专题主要介绍了C#1中的2个核心特性——委托和事件,然而在C# 2.0中又引入一个很重要的特性,它就是泛型,大家在平常的操作中肯定会经常碰到并使用它,如果你对于它的一些相关特性还不是很了解 ...

  6. CodeForces 447C DZY Loves Sequences DP

    题目:click here 题意:求给定序列更改其中一个元素后的最长连续上升子序列的长度 分析:最长的连续子序列有2种,一种是严格上升(没有更改元素)的长度加1,一种是两段严格上升的加起来. #inc ...

  7. BZOJ 1191: [HNOI2006]超级英雄Hero(二分图匹配)

    云神说他二分图匹配从来都是用网络流水过去的...我要发扬他的精神.. 这道题明显是二分图匹配.网络流的话可以二分答案+最大流.虽然跑得很慢.... -------------------------- ...

  8. C#中网站根路径、应用根路径、物理路径、绝对路径,虚拟路径的区别

    C#中网站根路径,请站点的最外一层 /表示 应用根路径 ~/表示,有时候C#程序路径并不是网站路径 物理路径 server.mappath("~/") 是指应用程序放在服务器硬盘的 ...

  9. 3.PHP 教程_PHP 语法

     基础的PHP语法 PHP脚本可以放在文档中的任何位置. PHP脚本以<?php开始,以?>结束: <?php //PHP代码 ?> PHP文件的默认文件扩展名是". ...

  10. linux用户管理最常用的三个文件说明(不完整版)

    涉及到三个文本文件:/etc/passwd /etc/shadow /etc/group 文件相关: /etc/passwd和用户名相关 /etc/shadow和密码相关 /etc/group和用户所 ...