android使用webwiew载入页面使用示例(Hybrid App开发)_Android

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 函数中再调用摄像头、通讯录、通知提醒等设备功能。

时间: 2024-10-31 17:56:51

android使用webwiew载入页面使用示例(Hybrid App开发)_Android的相关文章

android使用webwiew载入页面使用示例(Hybrid App开发)

Hybrid App 是混合模式应用的简称,兼具 Native App 和 Web App 两种模式应用的优势,开发成本低,拥有 Web 技术跨平台特性.目前大家所知道的基于中间件的移动开发框架都是采用的 Hybrid 开发模式,例如国外的 PhoneGap.Titanium.Sencha,还有国内的 AppCan.Rexsee 等等.Hybrid App 开发模式正在被越来越多的公司和开发者所认同,相信将来会成为主流的移动应用开发模式. Hybrid App 融合 Web App 的原理就是嵌

Hybrid App开发实战

近年来随着移动设备类型的变多,操作系统的变多,用户需求的增加,对于每个项目启动前,大家 都会考虑到的成本,团队成员,技术成熟度,时间,项目需求等一堆的因素.因此,开发App的方案已 经变得越来越多了.曾经有一段HTML5的小浪潮,无数的人参与或者看到过一个讨论:原生开发还是混 合开发,又或者是Web开发?到底最佳实践是怎样的,笔者认为只有实践过的人才会知道.尤其是在这 个充满各种变数的移动互联网时代. Hybrid App现状分析 Web App 毫无疑问Web App就是成本最低,最快速地解决

Android通用框架设计与完整电商APP开发系列文章

作者|傅猿猿 责编|Javen205 有福利 有福利 有福利 鸣谢 感谢@傅猿猿 邀请写此系列文章 Android通用框架设计与完整电商APP开发 课程介绍 [[导学视频](http://szv1.mukewang.com/59562937e520e5f24d8b45f6/H.mp4 )] [课程详细介绍] 以下是部分截图 介绍与自我介绍 作者:网名@傅猿猿 陕西 西安市 全栈工程师 能文能武(评论区留言有机会获取个人微信畅聊人生) 点兵软件CTO 联合创始人 擅长Android Linux P

C#之Android手机App开发_Android

目前Android在全世界市场上大约有75%的占有率,国人Android手机的持有比例更甚,甚至达到90%以上.因此搞计算机的一听说手机应用开发,一个个都像着了魔似的,既然有那么多人对它感兴趣,那咱也跟着玩一玩.但是,本模块不是介绍如何用Java开发,而是全部用C#去实现. 为什么用C#去实现?原因很简单,目前手机市场经过多年的你争我斗,现在就剩下Android.iOS.Windows Phone还能互相斗狠,其他的统统都被打趴下找不着北了.但是,学Android应用开发要用Java.学iOS应

Hybrid App误区分析

Hybrid App,一种开发模式,兼顾Web和Native的一种开发模式.有人说它把Web App扼杀在摇篮里,有人说 它把Native App引向一个新阶段.我说,它是一把双刃剑,千万别闯进它的误区.本文是笔者在实践Hybrid App开发模式过程中总结出的一些经验教训,供读者参考.Hybrid App虽好,可万万不能仓促选择,盲目运用. 智能手机日益普及,移动互联网乱战日趋白热化,开发一个应用早就不是技术圈热议的话题,iOS和Android 上的App已经成了每个互联网产品的标配."唯快不

Android 实现无网络页面切换的示例代码

本文介绍了Android 实现无网络页面切换的示例代码,分享给大家,具体如下: 实现思路 需求是在无网络的时候显示特定的页面,想到要替换页面的地方,大多都是recyclerview或者第三方recyclerview这种需要显示数据的地方,因此决定替换掉页面中所有的recyclerview为无网络页面 实现过程 1 在BaseActivity中,当加载布局成功以后,通过id找到要替换的view,通过indexOfChild()方法,找到要替换的view的位置,再通过remove和add view来

Android 中webview载入网页总是跳到浏览器

问题描述 Android 中webview载入网页总是跳到浏览器 我是想直接在webview中显示,但是有的网页会跳转到浏览器然后打开,怎么解决 解决方案 有没有重写shouldOverrideUrlLoading()这个方法? 解决方案二: 是不是那个页面内部有自动打开网页的 解决方案三: 没有 都是一个webview,载入百度就直接进去了,载入Google就是跑到浏览器打开了 解决方案四: 取决于页面的实现,有些web页面会打开新窗口就会跑到浏览器了. 解决方案五: 有没有重写shouldO

Android测试教程(9):ApplicationTestCase示例

前面介绍了Android测试的一些理论知识,从本篇开始的几篇将结合ApiDemoTest示例来介绍Android测试的实例.在此之前可 以参照Android测试教程(3):测试项目 创建ApiDemos->tests 测试项目,本项目测试用来测试ApiDemos,主要目的是介绍 Android测试框架的使用方法. 当然要测试ApiDemos,事先要创建好项目ApiDemos.下图显示了创建好ApiDemos- >Tests后,ApiDemos->Tests中所含的Java类: Andro

asp.net错误页面处理示例分享

 这篇文章主要介绍了asp.net错误页面处理示例,需要的朋友可以参考下 1.新建Golbal.asax  代码如下: void Application_Error(object sender, EventArgs e)  {     Exception objErr = Server.GetLastError().GetBaseException();     string error = "发生异常页: " + Request.Url.ToString() + "<