- 浏览: 1220171 次
- 性别:
- 来自: 荆州
文章分类
- 全部博客 (396)
- Android 基础 (72)
- Java 基础 (42)
- Android(动画效果) (26)
- Android(自定义组件) (13)
- Android(手机服务) (38)
- Android(网络相关) (27)
- Android(多媒体) (12)
- Android(小技巧) (30)
- Android(用户界面) (39)
- 基础概念 (24)
- Android组件学习 (21)
- Android数据库相关 (11)
- 生活杂谈 (10)
- 调试技巧部分 (8)
- Sql Server相关 (1)
- Android(xml相关) (2)
- Android 开发 (12)
- 韩语学习 (4)
- Mac添加环境变量的三种方法 (1)
- iPhone开发 (1)
- Android Studio (1)
最新评论
-
ppfbsar:
下载网络文件到SD卡上 -
851228082:
好文!彻底理解单类型导入与按需导入的区别了。还有一点可以通过 ...
谈java的导入(import) -
麦田的设计者:
老乡啊
sqlite 数据库保存图片 -
sf_dream:
我要是读写list、map之类的集合呢
ObjectOutputStream和ObjectInputStream类的学习 -
xfyunyun:
博主,请问webview加载html字符串时怎么进行缓存处理呢 ...
WebView使用总结2(加载HTML内容形式的String)
1.当只用WebView的时候,最先注意的当然是在配置文件中添加访问因特网的权限;
2.如果访问的页面中有Javascript,必须设置支持Javascript:
3.如果希望点击链接由自己处理而不是新开Android的系统browser中响应该链接.给WebView添加一个事件监听对象(WebViewClient)并重写其中的一些方法 shouldOverrideUrlLoading对网页中超链接按钮的响应
这样就保证了每次打开的页面都是在WebView实例中显示运行的;
4.在显示WebView时,点击手机Back时,会完全退出当前Activity,如果想退到历史浏览页面:重写back监听:
5.Android SDK提供了一个schema前缀为"file:///android_asset/".WebView遇到这样的schema,就去当前包中的 assets目录中找内容.如:"file:///android_asset/demo.html"
下面一段代码是对网页中JS的类似Alert()类的函数进行相应的重写响应:
在上述代码中,用到的prompt_dialog.xml:
还有assets中的Html文件:
2.如果访问的页面中有Javascript,必须设置支持Javascript:
webview.getSettings().setJavaScriptEnabled(true);
3.如果希望点击链接由自己处理而不是新开Android的系统browser中响应该链接.给WebView添加一个事件监听对象(WebViewClient)并重写其中的一些方法 shouldOverrideUrlLoading对网页中超链接按钮的响应
mWebView.setWebViewClient(new WebViewClient() { /** * Show in webview not system webview. */ public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return super.shouldOverrideUrlLoading(view, url); } }
这样就保证了每次打开的页面都是在WebView实例中显示运行的;
4.在显示WebView时,点击手机Back时,会完全退出当前Activity,如果想退到历史浏览页面:重写back监听:
public boolean onKeyDown(int keyCode, KeyEvent event) { WebView mWebView = (WebView) findViewById(R.id.browser); if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) { mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event); }
5.Android SDK提供了一个schema前缀为"file:///android_asset/".WebView遇到这样的schema,就去当前包中的 assets目录中找内容.如:"file:///android_asset/demo.html"
下面一段代码是对网页中JS的类似Alert()类的函数进行相应的重写响应:
webView.setWebChromeClient(new WebChromeClient() { public boolean onJsAlert(WebView view, String url, String message, final JsResult result) { AlertDialog.Builder b = new AlertDialog.Builder(BrowserJs.this); b.setTitle("Alert"); b.setMessage(message); b.setPositiveButton(android.R.string.ok, new AlertDialog.OnClickListener() { public void onClick(DialogInterface dialog, int which) { result.confirm(); } }); b.setCancelable(false); b.create(); b.show(); return true; }; @Override public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) { AlertDialog.Builder b = new AlertDialog.Builder(BrowserJs.this); b.setTitle("Confirm"); b.setMessage(message); b.setPositiveButton(android.R.string.ok, new AlertDialog.OnClickListener() { public void onClick(DialogInterface dialog, int which) { result.confirm(); } }); b.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { result.cancel(); } }); b.setCancelable(false); b.create(); b.show(); return true; }; @Override public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, final JsPromptResult result) { final LayoutInflater factory = LayoutInflater .from(BrowserJs.this); final View v = factory.inflate( R.layout.prompt_dialog, null); ((TextView) v.findViewById(R.id.prompt_message_text)) .setText(message); ((EditText) v.findViewById(R.id.prompt_input_field)) .setText(defaultValue); AlertDialog.Builder b = new AlertDialog.Builder(BrowserJs.this); b.setTitle("Prompt"); b.setView(v); b.setPositiveButton(android.R.string.ok, new AlertDialog.OnClickListener() { public void onClick(DialogInterface dialog, int which) { String value = ((EditText) v .findViewById(R.id.prompt_input_field)) .getText().toString(); result.confirm(value); } }); b.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { result.cancel(); } }); b.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { result.cancel(); } }); b.show(); return true; }; public void onProgressChanged(WebView view, int newProgress) { BrowserJs.this.getWindow().setFeatureInt( Window.FEATURE_PROGRESS, newProgress * 100); super.onProgressChanged(view, newProgress); } public void onReceivedTitle(WebView view, String title) { BrowserJs.this.setTitle(title); super.onReceivedTitle(view, title); } }); go.setOnClickListener(new OnClickListener() { public void onClick(View view) { String url = text.getText().toString(); webView.loadUrl(url); } }); webView.loadUrl("file:///android_asset/index.html");
在上述代码中,用到的prompt_dialog.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:gravity="center_horizontal" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/prompt_message_text" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <EditText android:id="@+id/prompt_input_field" android:layout_width="fill_parent" android:layout_height="wrap_content" android:selectAllOnFocus="true" android:scrollHorizontally="true" android:minWidth="250dp" /> </LinearLayout>
还有assets中的Html文件:
<html> <script type="text/javascript"> function onAlert(){ alert("This is a alert sample from html"); } function onConfirm(){ var b=confirm("are you sure to login?"); alert("your choice is "+b); } function onPrompt(){ var b=prompt("please input your password","aaa"); alert("your input is "+b); } </script> <pre> <input type="button" value="alert" onclick="onAlert()"/> <input type="button" value="confirm" onclick="onConfirm()"/> <input type="button" value="prompt" onclick="onPrompt()"/> <a href="http://www.google.com"/>Google</a> </pre> </html>
发表评论
-
ListView处理滚动和点击事件
2011-11-14 18:18 4360这段代码可以实现点击和滚动ListView事件分割处理: ... -
Android-sharedUserId数据权限 android:sharedUserId
2011-04-07 21:38 2035Android给每个APK进程分配一个单独的用户空间,其man ... -
标准TabHost的应用
2011-01-28 23:11 2227public class Activity01 exten ... -
WebView使用总结3(应用函数与JS函数互相调用)
2011-01-25 20:13 4278完成java文件: public class Method ... -
WebView使用总结2(加载HTML内容形式的String)
2011-01-25 19:57 21181接着上篇: 6.通过字符串 ... -
添加桌面快捷方式
2011-01-18 21:12 1416给一个完整的代码片段: /**Launcher的recei ... -
ListView分批动态加载Item
2011-01-02 09:16 3570这个例子主要实现ListView当滚动完毕所有可见Item后, ... -
ListView的滑动效率问题
2010-12-30 21:15 3406如何提高ListView的滚动速度,ListView的 ... -
AnalogClock的使用
2010-10-12 15:41 1959简单的main.xml就可以搞定: <?xml ve ... -
ExpandListView自动更新(以前发到eoe,现在整理下)
2010-09-26 13:52 72531.直接上界面代码: package com.exampl ... -
SurfaceView的最基础代码段
2010-09-17 14:29 13171.Activity中引用: setContentView ... -
Gallery的学习
2010-09-09 14:42 1120代码如下: Gallery g = (Gallery) f ... -
EditText的一些使用注意点
2010-09-06 14:25 70201.如何对EditText进行setText()的时候使其自动 ... -
ListView动态更新item的例子
2010-09-03 20:57 74451.ListViewUpdate.java文件: packa ... -
ListView点选背景设置
2010-09-02 07:20 14281.构造一个ListView: String[] ... -
OptionMenu的套用代码
2010-08-14 22:11 1479package com.example; impor ... -
一个简单的Spinner使用
2010-08-14 22:08 1193package com.example; impor ... -
AlertDialog显示格式化时间
2010-08-02 21:58 1716这个例子进一步学习AlertDialog: private ... -
CheckBox组件的熟悉
2010-07-27 20:52 1476在xml中可以这样定义: <CheckBox and ... -
AlertDialog的菜单以及MapView使用
2010-07-18 21:47 2310这个例子主要可以学习到: 1.使用AlertDialog显示菜 ...
相关推荐
这篇博文将对WebView的使用进行总结,包括基本用法、设置权限、数据交互以及优化技巧。 首先,我们来看一下WebView的基本用法。在Android布局文件中,添加一个WebView元素,如: ```xml <WebView android:id="@+...
以下是对WebView使用指南及使用心得的详细总结: 一、WebView的基本使用 1. 添加依赖:在AndroidManifest.xml中添加Internet权限,以确保WebView能够访问网络。 ```xml ``` 2. 在布局文件中添加WebView: ```xml...
这篇博文"WebView使用总结3(应用函数与JS函数互相调用)"聚焦于如何实现Android应用中的Java函数与JavaScript函数之间的交互,这对于构建混合式应用或者增强Web页面与原生应用的集成至关重要。 首先,我们要理解...
1. WebView加载速度与性能优化: - WebView加载资源时,每个资源如图片、CSS、JavaScript和HTML的加载时间大约在10-200毫秒之间,平均约为30毫秒。如果页面资源过多,加载时间会显著增加,影响用户体验。 - ...
总结来说,原生登录cookie保持提供给WebView使用涉及到Android的`CookieManager`类和WebView的生命周期管理。通过以上步骤,我们可以有效地在原生应用和WebView之间共享登录状态,为用户提供无缝的浏览体验。在实际...
总结,WebView是Android应用与网页内容交互的重要工具,通过合理的配置和设置,开发者可以构建功能丰富的混合式应用。同时,要注意安全性和性能优化,以提供良好的用户体验。在实际项目中,开发者还需要根据具体需求...
1. **Webview的引入与设置** 在AndroidManifest.xml中,我们需要为应用添加Internet权限,因为Webview需要访问网络资源: ```xml ``` 在布局文件(如activity_main.xml)中,我们需要添加一个Webview组件: `...
总结,使用Ionic框架进行混合式开发Android应用,可以充分利用Web技术的便捷性,同时借助WebView和Cordova插件实现与原生平台的深度集成。理解并掌握这些知识点,将有助于开发者高效地构建出功能完备、性能优良的...
总结起来,Android的WebView提供了一种灵活的方式让JavaScript和Java代码进行通信,这对于构建混合型应用或者在App中实现复杂交互功能非常有用。通过理解并熟练掌握JavaScript Interface的使用,开发者可以充分利用...
在Android开发中,WebView是一个...总结,通过上述步骤,我们可以使用Android的WebView组件构建一个基本的内置浏览器,加载和展示网页。不过,实际应用中可能还需要考虑更多细节,比如错误处理、性能优化、隐私策略等。
本文将深入探讨Android WebView的使用方法,包括如何打开指定网页、处理页面跳转、传递数据、支持JavaScript以及优化用户体验等方面。 1. 打开指定URL网页: 要加载一个网页,首先需要实例化WebView对象并设置其...
1. **WebView基本使用** - `WebView`是Android SDK中的一个类,继承自`View`,主要用于加载和显示HTML、XML或任何其他Web内容。 - 初始化:在布局文件中添加`<WebView>`标签或者在代码中创建`WebView`对象。 - ...
总结,WebView是Android开发中的一个重要工具,它能够将网页内容无缝集成到应用中,同时通过JavaScript与原生代码的交互,可以实现复杂的功能。正确理解和使用WebView,能极大地提升应用的用户体验和功能多样性。
总结起来,要实现在Android的WebView中长按图片并保存的功能,主要步骤包括:监听WebView的长按事件、判断点击的是图片、获取图片数据、保存图片到本地以及更新媒体库。在实际开发中,还要考虑到错误处理和用户体验...
### Android WebView 控件的使用详解 #### 一、引言 WebView是Android系统中的一个重要组件,主要用于在应用程序中展示Web页面。它可以帮助开发者快速地集成Web内容到原生应用中,实现网页浏览功能,这对于开发...
1. 网页缓存:Webview支持HTTP缓存,通过设置`WebSettings`的缓存模式,可以控制如何使用本地缓存。 ```java // Android 示例 webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); ``` 2. ...
Android WebView 使用方法总结 Android WebView 是一个非常强大的控件,允许开发者在 Android 应用程序中嵌入 Web 内容。下面是 Android WebView 使用方法总结的一些重要知识点: 一、WebViewClient 的使用 在 ...
本教程将详细介绍如何在Android中使用WebView,并实现JS与Java对象的相互调用。 一、WebView的基本使用 1. 添加依赖 首先,确保在`build.gradle`文件中添加了对WebView的支持库。在`dependencies`块中加入以下代码...
总结,Android的WebView结合JavaScriptInterface可以实现丰富的功能,包括与系统相机和相册的交互。通过Java代码处理相机拍照和相册选择的逻辑,然后通过JavaScript将图片数据传递回WebView进行展示,为用户提供更...
总结,Android WebView是构建混合应用或展示网页内容的强大工具。通过学习和理解上述知识点,你可以创建一个功能丰富的Web应用程序,并与网页内容进行深度交互。记得在实际开发中,还要关注性能优化和用户体验提升,...