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 函数中再调用摄像头、通讯录、通知提醒等设备功能。
您可能还喜欢
精美的移动开发PSD素材资源免费下载 10大优秀的移动Web应用程序开发框架 非常有用的Android开发工具和工具包 25个优秀的iPad应用程序网站设计案例 30套精美的Web和手机开发UI素材包
本文链接:Hybrid App 开发初探:使用 WebView 装载网页
编译来源:梦想天空 ◆ 关注前端开发技术 ◆ 分享网页设计资源
总结以上是内存溢出为你收集整理的Hybrid App 开发初探:使用 WebView 装载页面全部内容,希望文章能够帮你解决Hybrid App 开发初探:使用 WebView 装载页面所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)