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. 使用PyQt来编写第一个Python GUI程序

    原文:使用PyQt来编写第一个Python GUI程序 本文由 伯乐在线 - Lane 翻译,Daetalus 校稿.未经许可,禁止转载!英文出处:pythonforengineers.com.欢迎加 ...

  2. ecshop删除商品函数

    /** * 从回收站删除多个商品 * @param mix $goods_id 商品id列表:可以逗号格开,也可以是数组 * @return void */ function delete_goods ...

  3. 几个学习Maven不错的网址

    几个学习Maven不错的网址:---------------------------------------------------1.Maven官方网站 http://maven.apache.or ...

  4. jquery简单判断PC端还是移动端

    $(function(){ if (!navigator.userAgent.match(/mobile/i)) { //PC端 }else{ //移动端 } })

  5. UVA-548Tree(二叉树的递归遍历)

    Tree Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu Submit Status Des ...

  6. C/C++指针的指针(**p)和指针的引用(*&)使用案例分析

    #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <stdlib.h> ...

  7. SQL Server索引进阶:第一级,索引简介

    这个并不是我翻译的,全文共有15篇,但我发现好多网站已经不全,所以自己整理. 原文地址: Stairway to SQL Server Indexes: Level 1, Introduction t ...

  8. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (四) —— ContentProvider

    ContentProvider是安卓平台中,在不同应用程序之间实现数据共享的一种机制.一个应用程序如果需要让别的程序可以操作自己的数据,即可采用这种机制.并且此种方式忽略了底层的数据存储实现,Cont ...

  9. 如何用cocoapods 来管理项目中的第三方框架?

     一.安装 1.如果以前安装过,升级到10.10后工作不正常,可以先删除cocoapods $ sudo gem uninstall cocoapods ----------------------- ...

  10. LINQ实现行列转换

    用SQL语句实现行列转换很容易,但也有时候需要在程序中实现,找了好久,发现一篇文章写的挺不错的 http://blog.csdn.net/smartsmile2012/article/details/ ...