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. e.currentTarget

    e.target总是指向点击的目标 e.currentTarget会指向这个点击标的冒泡对象 <div class="wrap"> wrap <div class ...

  2. canvas 基础知识

    canvas 基础 低版本的ie不支持html5,需要引入excanvas.js来让ie支持canvas. 检测支持canvas <canvas id="canvas" wi ...

  3. ArrayList和LinkedList的各项操作性能比较

          如果用java编写程序,我们通常存储易变的数据集合时用到的数据结构往往是ArrayList,不过,在JDK中还存在另一个结构--LinkedList,只不过我们通常不用,原因在于性能问题, ...

  4. java面向对象编程(类、对象)

    一.面向对象编程概述面向对象编程(Object  Oriented  Programming,缩写为OOP)是当今最流行的程序设计技术,它具有代码易于维护.可扩展性好和代码可常用等优点.面向对象的设计 ...

  5. c# 获取全屏 中鼠标焦点的位置坐标

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  6. linux date -d 的一些使用方法

    date命令中格式输出类型字符含义例如以下: %% 一个文字的 % %a 当前locale 的星期名缩写(比如: 日,代表星期日) %A 当前locale 的星期名全称 (如:星期日) %b 当前lo ...

  7. js 时间戳转换成时间格式,可自定义格式

    由于 c# 通过ajax获取的时间 传到前台 格式为:/Date(1354116249000)/ 所以需要转换一下,想要什么格式 更改 format() 里的 返回语句 就可以了 formatDate ...

  8. 七日筑基——C#第一天(上)

    从今天开始,介绍C#如何入门,其实我们学习任何语言的目标都是为了最终能把自己想像的东西做出来,所以在最开始学习的时候要定准方向,很多人在学习过程中学着学着就变味了.比如我之前有个学生,最开始学习编程的 ...

  9. 关于给javascript对象添加、删除、修改对象的属性

    以下是自己总结的几种方法 利用动态特性 function Person(){}; var person = new Person(); person.name = 'yy'; person.gende ...

  10. css3选择器的比较(三) -- 元素选择器 (+, ~)

    元素选择器中w3cschool中有些翻译不太准确 比如 +:其实是与element1元素同级,位于element1元素之后的第一个element2元素 ~:其实是与element1元素同级,位于ele ...