android使用webwiew载入页面使用示例(Hybrid App开发)
Hybrid App 是混合模式应用的简称,兼具 Native App 和 Web App 两种模式应用的优势,开发成本低,拥有 Web 技术跨平台特性。目前大家所知道的基于中间件的移动开发框架都是采用的 Hybrid 开发模式,例如国外的 PhoneGap、Titanium、Sencha,还有国内的 AppCan、Rexsee 等等。Hybrid App 开发模式正在被越来越多的公司和开发者所认同,相信将来会成为主流的移动应用开发模式。
Hybrid App 融合 Web App 的原理就是嵌入一个WebView组件,可以在这个组件中载入页面,相当于内嵌的浏览器,代码如下:
复制代码 代码如下:import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
public class AActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 创建WebView
WebView webView= new WebView(this);
// 切换到内容视图
setContentView(webView);
// 获取WebView配置
WebSettings ws = webView.getSettings();
// 启用JavaScript
ws.setJavaScriptEnabled(true);
// 载入assets目录下的一个页面
webView.loadUrl("file:///android_asset/www/BoBox/index.html");
}
}
还有另一种引入方式是在布局文件中添加 WebView 组件,代码如下:
复制代码 代码如下:<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<WebView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/webview"
/>
</LinearLayout>
复制代码 代码如下:
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
public class BActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
// 查找WebView
WebView webView = (WebView) findViewById(R.id.webview);
// 获取WebView配置
WebSettings ws = webView.getSettings();
// 启用JavaScript
ws.setJavaScriptEnabled(true);
// 在载入assets目录下的一个页面
webView.loadUrl("file:///android_asset/www/index.html");
}
}
WebView 还有一个非常重要的方法――addJavascriptInterface,可以用来实现 Java 程序和 JavaScript 程序的相互调用,代码如下:
复制代码 代码如下:webView.addJavascriptInterface(new Object(){
public void clickOnAndroid(){
mHandler.post(new Runnable(){
public void run(){
webView.loadUrl("javascript:wave()");
}
});
}
}, "demo");
页面代码如下:
复制代码 代码如下:<script>
function wave() {
document.getElementById("id").innerHTML = "Hello World!";
}
</script>
</head>
<body>
<div>
<a href="#" id="demo" onclick="window.demo.clickOnAndroid()">Click Me</a>
</div>
</body>
</html>
这样,当你点击页面上 Click Me 按钮的时候就会调用 Java 代码中的 clickOnAndroid 函数,clickOnAndroid 函数中又调用页面中的 wave 方法。需要注意的是:这个接口在 Android 2.3 版本的模拟器中运行会导致 WebView 崩溃,目前还没有修复。这是一个非常简单的演示 Java 和 JavaScript 相互调用的例子,在实际应用中可以在页面调用的 clickOnAndroid 函数中再调用摄像头、通讯录、通知提醒等设备功能。
您可能感兴趣的文章:
- Android基础之使用Fragment控制切换多个页面
- Android使用Fragment打造万能页面切换框架
- Android编程实现ViewPager多页面滑动切换及动画效果的方法
- 详解Android Activity之间切换传递数据的方法
- Android开发之利用Intent实现数据传递的方法
- Android中Service实时向Activity传递数据实例分析
- Android实现Activities之间进行数据传递的方法
- Android学习笔记--通过Application传递数据代码示例
- 在Android系统中使用gzip进行数据传递实例代码
- Android 不同Activity间数据的传递 Bundle对象的应用
- Android 使用Intent传递数据的实现思路与代码
- Android页面之间进行数据回传的方法分析
- Asp.net 2.0 自定义控件开发专题[详细探讨页面状态(视图状态和控件状态)机制及其使用场景](示例代码下载)
- android开发我的新浪微博客户端-载入页面UI篇(1.1)
- Hybrid App 开发初探:使用 WebView 装载页面
- Asp.net 2.0 自定义控件开发专题[详细探讨页面状态(视图状态和控件状态)机制及其使用场景](示例代码下载)
- 【Android 应用开发】Android中使用ViewPager制作广告栏效果 - 解决ViewPager占满全屏页面适配问题
- Hybrid App 开发初探:使用 WebView 装载页面
- Android开发之RadioGroup的简单使用与监听示例
- 【Android UI设计与开发】9:滑动菜单栏(一)开源项目SlidingMenu的使用和示例
- android开发基础:Intent与Bundle的使用,实现页面跳转及信息传递
- android开发我的新浪微博客户端-载入页面UI篇(1.1)
- Asp.net 2.0 自定义控件开发专题[详细探讨页面状态(视图状态和控件状态)机制及其使用场景](示例代码下载)
- Android 使用动态载入框架DL进行插件化开发
- 【Android 应用开发】Android中使用ViewPager制作广告栏效果 - 解决ViewPager占满全屏页面适配问题
- 页面间隔半秒钟更新时间 Asp.net使用Comet开发http长连接示例分享
- 【Android UI设计与开发】第02期:引导界面(二)使用ViewPager实现欢迎引导页面
- 【Android UI设计与开发】9:滑动菜单栏(一)开源项目SlidingMenu的使用和示例
- android开发教程之使用线程实现视图平滑滚动示例 改
- Android开发--使用JSOUP解析HTML页面
- Android UI设计与开发之使用ViewPager实现欢迎引导页面
- android开发教程之使用线程实现视图平滑滚动示例