Hybrid App 开发初探:使用 WebView 装载页面
来源:互联网 发布:淘宝网鲜花图片素材 编辑:程序博客网 时间:2024/04/30 00:55
http://www.cnblogs.com/lhb25/archive/2012/07/16/hybrid-app-developement.html
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 函数中再调用摄像头、通讯录、通知提醒等设备功能。
- Hybrid App 开发初探:使用 WebView 装载页面
- Hybrid app开发获取webview屏幕宽度
- 基于Android Webview的Hybrid App开发的前端优化
- 基于Android Webview的Hybrid App开发的前端优化
- phonegap开发hybrid app
- Hybrid App开发实战
- hybrid app开发实战
- Hybrid App开发
- Hybrid app开发总结
- Hybrid App开发实战
- Hybrid App开发实战
- Hybrid App 混合式开发
- hybrid app开发工具
- Hybrid App开发实战
- Hybrid App开发笔记
- Hybrid APP混合开发
- Hybrid App开发总结
- Hybrid--WebView中使用Ajax
- Philips Economy Audio Codec Data Sheet Note(UDA1341TS)
- 矩形区域边缘
- 《Objective-C基础教程》学习笔记第十一-十三章
- HSV颜色模型
- ZOJ 1813 Biker's Trip Odometer
- Hybrid App 开发初探:使用 WebView 装载页面
- 让Chrome的HTML5 video/audio tag支持更多种音视频格式
- cocos2d-x 菜鸟进阶篇(三) scrollView(下)
- 60个精美的移动开发PSD素材资源免费下载 - 上篇
- 正则表达式匹配规则
- Chrome Extension 开发文档 (360极速浏览器应用开放平台)
- 经常在.net中使用的下载链接地址
- 60个精美的移动开发PSD素材资源免费下载 - 下篇
- 分享25佳 iPad 应用程序的网站设计案例