- 浏览: 1206021 次
- 性别:
- 来自: 荆州
文章分类
- 全部博客 (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 4335这段代码可以实现点击和滚动ListView事件分割处理: ... -
Android-sharedUserId数据权限 android:sharedUserId
2011-04-07 21:38 2002Android给每个APK进程分配一个单独的用户空间,其man ... -
标准TabHost的应用
2011-01-28 23:11 2199public class Activity01 exten ... -
WebView使用总结3(应用函数与JS函数互相调用)
2011-01-25 20:13 4249完成java文件: public class Method ... -
WebView使用总结2(加载HTML内容形式的String)
2011-01-25 19:57 21101接着上篇: 6.通过字符串 ... -
添加桌面快捷方式
2011-01-18 21:12 1387给一个完整的代码片段: /**Launcher的recei ... -
ListView分批动态加载Item
2011-01-02 09:16 3550这个例子主要实现ListView当滚动完毕所有可见Item后, ... -
ListView的滑动效率问题
2010-12-30 21:15 3382如何提高ListView的滚动速度,ListView的 ... -
AnalogClock的使用
2010-10-12 15:41 1929简单的main.xml就可以搞定: <?xml ve ... -
ExpandListView自动更新(以前发到eoe,现在整理下)
2010-09-26 13:52 72171.直接上界面代码: package com.exampl ... -
SurfaceView的最基础代码段
2010-09-17 14:29 12901.Activity中引用: setContentView ... -
Gallery的学习
2010-09-09 14:42 1094代码如下: Gallery g = (Gallery) f ... -
EditText的一些使用注意点
2010-09-06 14:25 69561.如何对EditText进行setText()的时候使其自动 ... -
ListView动态更新item的例子
2010-09-03 20:57 74171.ListViewUpdate.java文件: packa ... -
ListView点选背景设置
2010-09-02 07:20 14011.构造一个ListView: String[] ... -
OptionMenu的套用代码
2010-08-14 22:11 1458package com.example; impor ... -
一个简单的Spinner使用
2010-08-14 22:08 1170package com.example; impor ... -
AlertDialog显示格式化时间
2010-08-02 21:58 1688这个例子进一步学习AlertDialog: private ... -
CheckBox组件的熟悉
2010-07-27 20:52 1429在xml中可以这样定义: <CheckBox and ... -
AlertDialog的菜单以及MapView使用
2010-07-18 21:47 2277这个例子主要可以学习到: 1.使用AlertDialog显示菜 ...
相关推荐
android webview的用法总结
NULL 博文链接:https://gzsxt.iteye.com/blog/2060122
Webview的简单使用介绍和总结;请使用eclipse打开;
webView 使用指南及使用心得总结
NULL 博文链接:https://edison-cool911.iteye.com/blog/896793
主要介绍了Android程序开发之WebView使用总结的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
主要介绍了Android webview使用方法总结的相关资料,需要的朋友可以参考下
今天修改项目中一个有关WebView使用的bug,激起了我总结WebView的动机,今天抽空做个总结。 简介 WebView是一个基于webkit引擎、展现web页面的控件。 Android的Webview在低版本和高版本采用了不同的webkit版本内核,...
1.WebView攻击⾯ 2.WebView配置与使⽤ 3.WebViewURL校验 4.WebView安全防御 5.总结 WebView已成为Android App中最容易出现重大漏洞的薄弱环节。为此,本次峰会上,何恩基于自身漏洞挖掘所积累的丰富案例,对WebView...
Android WebView播放视频开发中总结的一些经验,希望同大家分享,这个是相应的Demo,一些经验和注释都在代码中写到。
Android WebView的使用方法 Android app打开H5页一般要实现如下需求: 1、打开指定url网页; 2、点击链接可以跳转到下一页,并更新标题; 3、按back键或左箭头可以返回上一页; 4、当webview显示的是第一级url时...
主要给大家介绍了关于Android中webview使用的一些坑,通过一下总结的这些内容,对大家学习或者使用webview具有一定的参考学习价值,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
最近写项目,有个功能是webView中的网页返回到上个页面,我在网上找了一下,总结了一下,把demo上传到这,和大家分享学习
在网上找了太多webview播放网页视频的代码,太乱了,总结完了写了一个最最简单的demo 可以拿去参考 注意事项 在avtivity上面有
自己总结的案例和教程,很详细(详细到每行代码都有注释),工程导入就可以运行
浏览器控件是每个开发环境都具备的,这为马甲神功提供了用武之地,windows的有webbrowser,android和ios都有webview;本篇主要介绍android的webview之强大,感兴趣的朋友可以研究下
最近半年在做android开发,借鉴大牛和自己总结的一些经验,分享出来