Android 的WebView开发及应用
来源:互联网 发布:linux 配置https代理 编辑:程序博客网 时间:2024/05/24 16:16
http://www.mars-droid.com/bbs/forum.php?mod=viewthread&tid=2810
为了收缩由于手机客户端的改变而构成的客户端重复更新,还是定夺批准WebView+版面的揭示措施来作为最后的计划。也与一些做手机利用开发的一些朋友咨询过,可能也是批准相仿的思路。
批准WebView的措施有个比拟关键的问题必需处理,即便版面与Andriod客户端举行交互,只有告终交互能力够更好的扼制手机客户端与web服务器间的通信,举行哀求,应答的加密、收缩等等。
还是老措施,在google上百度一下,一切即便那么容易。引用下面一段代码,看一下就打听了
看我们的html文档:
Html代码
<html>
<script language="javascript">
function wave() {
alert("1");
document.getElementByIdx_x("droid").src="android_waving.png";
alert("2");
}
</script>
<body>
<!-- Calls into the javascript inte***ce for the activity -->
<a onClick="window.demo.clickOnAndroid()"><div style="width:80px;
margin:0px auto;
padding:10px;
text-align:center;
border:2px solid #202020;" >
<img id="droid" src="android_normal.png"/><br>
Click me!
</div></a>
</body>
</html>
再看我们的java 代码。
Java代码
public class WebViewDemo extends Activity {
private static final String LOG_TAG = ”WebViewDemo”;
private WebView mWebView;
private Handler mHandler = new Handler();
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
mWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = mWebView.getSettings();
webSettings.setSavePassword(false);
webSettings.setSaveFormData(false);
webSettings.setJavaScriptEnabled(true);
webSettings.setSupportZoom(false);
mWebView.setWebChromeClient(new MyWebChromeClient());
mWebView.addJavascriptInte***ce(new DemoJavaScriptInte***ce(), ”demo”);
mWebView.loadUrl(“file:///android_asset/demo.html”);
}
final class DemoJavaScriptInte***ce {
DemoJavaScriptInte***ce() {
}
public void clickOnAndroid() {
mHandler.post(new Runnable() {
public void run() {
mWebView.loadUrl(“javascript:wave()”);
}
});
}
}
final class MyWebChromeClient extends WebChromeClient {
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
Log.d(LOG_TAG, message);
result.confirm();
return true;
}
}
}
精细分析一下,中心就下面两句代码:
在java中利用WebViewwww.szyef.info的addJavascriptInte***ce措施,发生java实例与javascript对象之间的照射。如下:
mWebView.addJavascriptInte***ce(new DemoJavaScriptInte***ce(), ”demo”);
然后再javascript中穿越window.demo直接举行java对象的拜会。
其实,当我们看到这些措施的时候,只能慨叹google的强悍!蜜丝佛陀
自:softhood.net/cn/2010/06/30/别样视角的存在也解释了为什么作者必需编辑,而行发动必需教练的起因。
SVM入门(三)线性分类器Part 2.
手机游戏动态论坛------高校讲座.
MVC模式(Model-View-Controller)
1.WebView的设置
- 1 private void showViews() { 2 // TODO Auto-generated method stub 3 mGestureDetector = new GestureDetector(this);//实例化手势对象 4 wv_vm.getSettings().setSupportZoom(true);//启用页面的缩放 5 wv_vm.getSettings().setBuiltInZoomControls(true);//启用页面缩放的按钮 6 wv_vm.getSettings().setJavaScriptEnabled(true);//启用javascript支持 7 wv_vm.loadUrl("http://www.cnblogs.com/pxue/");//加载网址 8 9 wv_vm.setOnTouchListener(this);//监听触摸事件10 wv_vm.setClickable(true);11 wv_vm.setLongClickable(true);12 13 14 mGestureDetector.setIsLongpressEnabled(true); 15 16 17 wv_vm.setWebViewClient(new HelloWebViewClient());//实现点击加载页面在本webview内载入18 wv_vm.setFocusable(true);19 wv_vm.requestFocus();20 21 }
在WebView加载新开的页面,是重写了android.webkit.WebViewClient
- 1 private class HelloWebViewClient extends WebViewClient {2 @Override3 public boolean shouldOverrideUrlLoading(WebView view, String url) {4 view.loadUrl(url);5 return true;6 }7 }
2.划屏手势部分
监听触摸时间传给手势对象
- 1 @Override2 public boolean onTouch(View v, MotionEvent event) {3 // TODO Auto-generated method stub4 // Toast.makeText(this, "onTouch", Toast.LENGTH_SHORT).show(); 5 return mGestureDetector.onTouchEvent(event); 6 }
重写了划动事件
- 1 @Override 2 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 3 float velocityY) { 4 // TODO Auto-generated method stub 5 if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE 6 && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { 7 wv_vm.goBack(); 8 } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE 9 && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {10 11 wv_vm.goForward();12 }13 return false;14 }
变量、常量的声明
- 1 private GestureDetector mGestureDetector;2 3 private static final int SWIPE_MIN_DISTANCE = 120;4 private static final int SWIPE_THRESHOLD_VELOCITY = 200;
3.调用系统拍照功能部分
- 1 private void setListensers() { 2 // TODO Auto-generated method stub 3 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 4 startActivityForResult(intent, 1); 5 6 } 7 8 private void findViews() { 9 // TODO Auto-generated method stub10 img_pic=(ImageView)findViewById(R.id.img_pic);11 12 }13 14 protected void onActivityResult(int requestCode, int resultCode, Intent data)15 {16 if (requestCode == 1)17 {18 if (resultCode == Activity.RESULT_OK)19 {20 // 拍照Activity保存图像数据的key是data,返回的数据类型是Bitmap对象21 Bitmap cameraBitmap = (Bitmap) data.getExtras().get("data");22 // 在ImageView组件中显示拍摄的照片23 img_pic.setImageBitmap(cameraBitmap);24 }25 }26 super.onActivityResult(requestCode, resultCode, data);27 }
- webView.setWebViewClient(new WebViewClient() {
- @Override
- public boolean shouldOverrideUrlLoading(WebView view, String url) {
- if (url != null && url.contains("://") && url.toLowerCase().startsWith("market:")) {
- try {
- view.getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
- return true;
- } catch (Exception ex) {
- }
- }
- view.loadUrl(url);
- return true;
- }
- });
- 复制代码
- Android 的WebView开发及应用
- Android开发一个基于WebView的应用
- android开发对Webview的应用
- Android开发之WebView应用
- Android开发之WebView应用
- Android应用开发-------------WebView(一)之WebView与服务器端的Js交互
- android-使用webview来开发混合应用
- 【Android开发】网路编程及Internet应用-使用WebView显示网页
- Android WebView开发问题及优化汇总
- Android WebView开发问题及优化汇总
- Android WebView开发问题及优化汇总
- Android WebView开发问题及优化汇总
- Android WebView开发问题及优化汇总
- Android WebView开发问题及优化汇总
- Android WebView开发问题及优化汇总
- Android WebView开发问题及优化汇总
- Android WebView开发问题及优化汇总
- Android WebView开发问题及优化汇总
- Splitter 控件的使用
- Why Using Sockets instead of Remoting
- 透彻阐述 ExtJS 4 的MVC【有图有真相】
- JSP EL表达式详细介绍
- Xcode 開發環境介紹
- Android 的WebView开发及应用
- 如何使用HTML5实现拍照上传应用
- http://poj.org/problem;jsessionid=57CE7F39567FF9BFA128CDB4A2E8D728?id=2553
- system32/screencut文件夹下自动生成截屏图片
- 二维码生成工具
- Error in building ICS 4.0.1_r1:error reading out/target/common/obj/JAVA_LIBRARIES/core-tests_interme
- tomcat集群,几种session同步解决方案的比较
- 反质数
- 我想我迟早离婚的