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. VS2015如何另存解决方案文件-修改解决方案sln文件的路径

    原文:VS2005如何另存解决方案文件-修改解决方案sln文件的路径 修改解决方案sln文件的路径 方法一:工具→选项→项目和解决方案,可设置项目的默认保存位置.方法二:"解决方案资源管理器 ...

  2. java多线程同步

    一篇好文:java多线程机制同步原则 概括起来说,Java 多线程同步机制主要包含如下几点:1:如果一个类包含一个或几个同步方法,那么由此类生成的每一个对象都配备一个队列用来容纳那些等待执行同步的线程 ...

  3. [LeetCode] Best Time to Buy and Sell Stock Solution

    Say you have an array for which the ith element is the price of a given stock on day i. If you were ...

  4. php在apache中运行模式

    php在apache中运行模式 (2011-12-18 02:38:27) 标签: 杂谈 分类: 服务器及软件 一.php在php在三种工作方式:Apache 模块DLL) 以下分别比较: 1. ph ...

  5. HDU1200:To and Fro

    Problem Description Mo and Larry have devised a way of encrypting messages. They first decide secret ...

  6. 虎扯:小众玩物 webkit家的滚动条

    前面的话:对只有一种浏览器支持的属性,就不要出来秀咱前端同学,就像是早些年手机们的充电口一样,集各家所长,咱今天说的是webkit的滚动条样式,视乎只有webkit支持此项定义,有见识的前辈来辩.这玩 ...

  7. dos下遍历目录和文件的代码(主要利用for命令)

    对指定路径指定文件进行遍历的程序,这里有多个批处理代码,但运行好像有些问题,大家可以根据需要选择 ===== 文件夹结构 ======================================= ...

  8. 嵌入式linux的网络编程(1)--TCP/IP协议概述

    嵌入式linux的网络编程(1)--TCP/IP协议概述 1.OSI参考模型及TCP/IP参考模型 通信协议用于协调不同网络设备之间的信息交换,它们建立了设备之间互相识别的信息机制.大家一定都听说过著 ...

  9. 5.PHP 教程_PHP echo/print

    PHP echo 和 print 语句 echo和print区别: echo-可以输出一个或多个字符串 print-只允许输出一个字符串,返回值总为1 提示:echo输出的速度比print快,echo ...

  10. 解决eclipse中maven出现的Failure to transfer XXX.jar的问题

    这个问题很烦,试了好几次都没有彻底解决,今天终于找到解决办法了. 问题主要出在,maven在下载jar的过程中出现了中断或者错误问题(不仅仅是eclipse,其他IDE也一样) 解决办法: 移除之前的 ...