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

 更新时间:2014年03月04日 09:27:14   作者:  
Hybrid App 融合 Web App 的原理就是嵌入一个WebView组件,可以在这个组件中载入页面,相当于内嵌的浏览器,下面是使用示例

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识别预装的第三方App方法实例

    Android识别预装的第三方App方法实例

    这篇文章主要给大家介绍了关于Android如何识别预装的第三方App的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2019-01-01
  • 使用Eclipse配置android开发环境教程

    使用Eclipse配置android开发环境教程

    这篇文章主要介绍了使用Eclipse配置android开发环境教程,本文讲解了下载需要用到的工具、下载完需要的工具之后开始安装、让Ecplise自动安装Android开发插件(ADT- plugin)、配置Andiord SDK路径、测试开发一个Android项目等内容,需要的朋友可以参考下
    2015-04-04
  • Android Flutter图片处理之高斯模糊的实现

    Android Flutter图片处理之高斯模糊的实现

    这篇文章主要为大家详细介绍了如何利用Android Flutter实现高斯模糊效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • android 日志文件LogUtils实例

    android 日志文件LogUtils实例

    这篇文章主要介绍了android 日志文件LogUtils实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Android TimePicker 直接输入的问题解决方案

    Android TimePicker 直接输入的问题解决方案

    这篇文章主要介绍了Android TimePicker 直接输入的问题解决方案的相关资料,需要的朋友可以参考下
    2017-04-04
  • Android基础知识之broadcast广播详解

    Android基础知识之broadcast广播详解

    这篇文章主要为大家详细介绍了Android基础知识之broadcast广播的相关资料,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Android实现定制桌面的方法

    Android实现定制桌面的方法

    这篇文章主要介绍了Android实现定制桌面的方法,较为详细的分析了Android定制桌面的相关注意事项及具体技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • Unity同步/异步调用Android的方法实例

    Unity同步/异步调用Android的方法实例

    unity在Android端开发的时候,免不了要调用Java,下面这篇文章主要给大家介绍了关于Unity同步/异步调用Android的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-08-08
  • android实现通话自动录音服务

    android实现通话自动录音服务

    这篇文章主要为大家详细介绍了android实现通话自动录音服务,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10
  • Android11绕过反射限制的方法

    Android11绕过反射限制的方法

    这篇文章主要介绍了Android11绕过反射限制的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09

最新评论