`

ch018 Android webview

阅读更多

--------------------------------------------AndroidManifest.xml----------------------------------

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.ch18"

    android:versionCode="1"

    android:versionName="1.0" >

    <uses-sdk

        android:minSdkVersion="10"

        android:targetSdkVersion="15" />

    <!-- 网络访问权限 -->

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

    <application

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <activity

            android:name=".MainActivity"

            android:label="@string/title_activity_main" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>

</manifest>

--------------------------------------------activity_main.xml----------------------------------

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent" >

    <WebView

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"

        android:id="@+id/wv"

        tools:context=".MainActivity" />

</RelativeLayout>

--------------------------------------------MainActivity.java--------------------------------------

package com.ch18;

import android.app.Activity;

import android.app.AlertDialog;

import android.app.ProgressDialog;

import android.graphics.Bitmap;

import android.os.Bundle;

import android.os.Handler;

import android.util.Log;

import android.view.KeyEvent;

import android.webkit.JsPromptResult;

import android.webkit.JsResult;

import android.webkit.WebChromeClient;

import android.webkit.WebView;

import android.webkit.WebViewClient;

/**

 * 

 * 项目名称:com.ch18    

 * 类名称:MainActivity    

 * 类描述:webview

 * 创建人:方勇   

 * 创建时间:2012-11-20 下午10:10:05   

 * Copyright (c) 方勇-版权所有

 */

public class MainActivity extends Activity {

/* 重写回退按钮 */

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

if (keyCode == event.KEYCODE_BACK && wv.canGoBack()) {

wv.goBack();

return true;

}

return super.onKeyDown(keyCode, event);

}

/* Android浏览器 */

private WebView wv;

/* 进度条,用户体验 */

private ProgressDialog pdialog;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

findViews();

init();

setListeners();

showResults();

}

/* 实例化UI */

private void findViews() {

wv = (WebView) findViewById(R.id.wv);

}

/* 初始化数据 */

private void init() {

wv.getSettings().setDefaultTextEncodingName("UTF-8");

// js可用

wv.getSettings().setJavaScriptEnabled(true);

// 滚动样式为无滚动条

wv.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);

}

/* 设置监听 */

private void setListeners() {

// 设置url跳转到wenview

wv.setWebViewClient(new MyWebViewClient());

// js处理

wv.setWebChromeClient(new MyWebChromClient());

// html与android交互,android注入到js里面

wv.addJavascriptInterface(new JSInterface(), "a07");

}

/* 显示结果 */

private void showResults() {

pdialog = new ProgressDialog(this);

// pdialog.show();

wv.loadUrl("file:///android_asset/webview.html");

}

/* 显示弹出对话框结果 */

private void showAlertResult(String message) {

AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setTitle("alert");

builder.setMessage(message);

builder.show();

}

/* 处理url跳转 */

final class MyWebViewClient extends WebViewClient {

@Override

public void onPageStarted(WebView view, String url, Bitmap favicon) {

pdialog = ProgressDialog.show(MainActivity.thisnull"load.........");

super.onPageStarted(view, url, favicon);

}

@Override

public void onPageFinished(WebView view, String url) {

pdialog.dismiss();

super.onPageFinished(view, url);

}

@Override

public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {

super.onReceivedError(view, errorCode, description, failingUrl);

}

}

/* 处理javascript */

final class MyWebChromClient extends WebChromeClient {

@Override

public boolean onJsAlert(WebView view, String url, String message, JsResult result) {

super.onJsAlert(view, url, message, result);

if (!message.equals("")) {

showAlertResult(message);

//响应html,已经关闭

result.cancel();

return true;

}

return super.onJsAlert(view, url, message, result);

}

@Override

public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {

return super.onJsConfirm(view, url, message, result);

}

@Override

public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {

return super.onJsPrompt(view, url, message, defaultValue, result);

}

}

/* web与android交互 */

final class JSInterface {

private Handler handler = new Handler();

private int flag = 0;

public void onClick() {

handler.post(new Runnable() {

@Override

public void run() {

if (flag == 0) {

wv.loadUrl("javascript:changeImage01()");

flag = 1;

else {

wv.loadUrl("javascript:changeImage02()");

flag = 0;

}

}

});

}

// 供JS调用

public void logout(String str) {

Log.i("a07", str);

}

}

}

--------------------------------------------效果----------------------------------------------------

<!--EndFragment-->
  • 大小: 144.6 KB
0
0
分享到:
评论

相关推荐

    Android WebView 去除标题

    在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中加载和显示网页内容。有时候,我们可能希望去除WebView中的标题部分,以实现更自定义化的界面设计。本篇文章将详细探讨如何在Android的...

    实例详解Android Webview拦截ajax请求

    Android Webview 拦截 Ajax 请求的详细讲解 Android Webview 提供了页面加载及资源请求的钩子,但是对于 H5 的 Ajax 请求并没有提供干涉的接口。这意味着我们不能在 Webview 中干涉 JavaScript 发起的 HTTP 请求,...

    Android webview 内存泄露的解决方法

    Android webview 内存泄露的解决方法 最近在activity嵌套webview显示大量图文发现APP内存一直在涨,没法释放内存,查了很多资料,大概是webview的一个BUG,引用了activity导致内存泄漏,所以就尝试传递...

    Android webview调用摄像头扫描二维码

    本文将详细讲解如何在Android Webview中调用摄像头进行二维码扫描,并结合ZXing(Zebra Crossing)解析包进行二维码的解析。 首先,让我们了解Android Webview的基本用法。Webview是Android SDK提供的一种视图组件...

    Android Webview视频播放器

    在Android平台上,Webview是一个非常重要的组件,它允许开发者在原生应用中嵌入网页内容。这个项目"Android Webview视频播放器"是利用Webview来实现HTML5视频播放功能的示例。以下是对这个项目的详细解读: 1. **...

    Android Webview滑动监听

    在Android开发中,Webview是一个非常重要的组件,它允许开发者在原生应用中嵌入网页内容,实现网页与原生应用的交互。本篇将详细讲解如何在Android Webview中实现滑动监听以及图片的放大缩小功能。 首先,我们要...

    Android webview加载网页.zip

    在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序内部加载和显示网页内容,无需跳转到外部浏览器。这个“Android webview加载网页.zip”文件可能包含了一个示例项目或者教程,帮助开发者理解...

    android webview播放网页视频

    在Android开发中,Webview是一个非常重要的组件,它允许我们加载和展示网页内容。当涉及到在Webview中播放网页视频时,这个问题可能会变得稍微复杂,因为Android原生的Webview并不总是支持所有现代HTML5视频特性。...

    android webview 版本69.0

    在Android平台上,WebView是一个至关重要的组件,它允许开发者在应用程序中嵌入网页浏览功能,而无需启动完整的浏览器应用。在给定的标题“android webview 版本69.0”中,提到的是一个特定版本的WebView,即69.0。...

    通过css注入实现android webview的夜间模式

    在Android开发中,Webview是一个非常重要的组件,它允许我们加载和展示网页内容。而实现夜间模式是现代应用中常见的需求,特别是在保护用户视力和节省电池方面。本篇将详细介绍如何利用CSS注入来实现在Android ...

    Android WebView播放视频(包括全屏播放)

    在Android应用开发中,WebView是一个非常重要的组件,它允许开发者在应用程序内嵌入网页内容,实现类似浏览器的功能。本文将详细讲解如何在Android的WebView中播放视频,包括全屏播放的实现方法。以下是对该主题的...

    Android WebView 缓存详解

    Android WebView 缓存详解 一. 两种缓存类型: 页面缓存:加载一个网页时的html、JS、CSS等页面或者资源数据,这些缓存资源是由于浏览器 的行为而产生,开发者只能通过配置HTTP响应头影响浏览器的行为才能间接地...

    Android WebView另类实现 自由复制进入选择文字模式

    在Android开发中,WebView是一个非常重要的组件,它允许我们在原生应用中展示网页内容,提供了一种混合式应用开发的解决方案。本篇文章将深入探讨如何在Android WebView中实现自由复制和选择文字的功能,这对于增强...

    Android WebView H5调用拍照

    在Android应用开发中,WebView是一个非常重要的组件,它允许开发者在原生应用中展示网页内容。混合开发(Hybrid Development)结合了Web技术与原生应用的优势,使得开发者可以使用HTML5、CSS3和JavaScript来构建应用...

    Android-AndroidWebView加载PDF文件实现

    Android WebView 加载 PDF 文件实现。其原理就是在 app 本地搭建一个 website ,然后利用 WebView 加载这个站点,站点去实现加载显示 PDF 的目的,站点其原理也是采用 js 框架去实现的。

    动态设置android webview字体大小DEMO

    在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中内嵌网页内容。这个"动态设置android webview字体大小DEMO"是一个示例项目,专门演示如何在运行时调整WebView中显示的文本的字体大小,以提高...

    Android WebView加载网页以及本地图片缓存问题

    在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序内部加载和显示网页内容,而无需离开应用。WebView不仅能够加载远程HTTP/HTTPS网址,还能处理本地HTML、CSS和JavaScript资源,极大地增强了应用...

    android webview input=file 失效解决方案

    在Android开发中,Webview是一个重要的组件,它允许我们在原生应用中内嵌网页内容,提供混合式应用的用户体验。然而,在使用Webview时,有时会遇到一个问题:当HTML页面中包含`&lt;input type="file"&gt;`用于上传文件的...

Global site tag (gtag.js) - Google Analytics