APP封装从一门开始
一门提供APP封装底层开发框架,一键在线APP封装,200+原生APP模块,2000+JS映射接口按需自助封装

h5开发的app调用原生安卓

在H5开发中,有时候需要调用安卓原生的功能,比如调用摄像头、调用相册、获取地理位置等等,这时候就需要用到H5与原生安卓的交互。本文将详细介绍h5开发的app如何调用原生安卓的方法。

**一、原理**

在WebView中加载一个网页,等于在安卓应用程序中内嵌一个浏览器,可以在页面中加载html、css、js等前端技术所编写的内容。此时,H5与原生安卓调用原生功能的方法基于安卓提供的js调用原生方法的接口,通过js与安卓原生相互传递参数与调用,进而实现页面中native与web页面的互相调用、互相传参。

**二、详细介绍**

1.在安卓的MainActivity中指定WebView的加载页面

```

webView.loadUrl("http://www.baidu.com/");

```

2.在H5调用安卓方法前需要先将要调用的方法绑定给WebView

```

//定义一个类,继承自 WebViewClient

public class MyWebViewClient extends WebViewClient {

//设置 WebViewClient 并打开 JS 支持

@Override

public void onPageFinished(WebView view, String url) {

super.onPageFinished(view, url);

webView.loadUrl("javascript:window.android_obj.getSource("

+ "document.body.innerHTML);");//定义JS接口

}

}

//注册方法并为其命名(可自定义)

webView.addJavascriptInterface(this, "android_obj");

webView.setWebViewClient(new MyWebViewClient());

//开启 Javascript 支持

webView.getSettings().setJavaScriptEnabled(true);

```

3.在H5页面中调用安卓原生方法

```

//通过 window.android_obj 引用已经绑定的 getPic 方法

window.android_obj.getPic();

```

4.在安卓中编写具体的JS接口实现类

```

//绑定 JS 接口

webView.addJavascriptInterface(new AndroidJSInterface(), "android_obj");

// JS 接口实现类

public class AndroidJSInterface {

//获取当前的网页源码

@JavascriptInterface

public void getSource(String html) {

Log.e("html", html);

}

//打开相机

@JavascriptInterface

public void openCamera(){

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

startActivityForResult(intent, 0);

}

}

```

**三、注意事项**

1.在H5调用安卓原生方法时,需要默认在主线程中执行。

2.使用addJavascriptInterface绑定JS接口实现类时,需要为该类所在的包添加注解 @JavascriptInterface。

3.在Android 4.2(API 17)之后,默认不允许在js中调用原生方法,需要在WebView中开启此功能。开启方式为:在WebView中用getSettings()获取WebSettings对象,并通过setJavaScriptEnabled(true)的方式设置开启JS功能。

4.为保证安全性,在H5页面调用原生方法时,需要认真审核并确认方法所传递的参数的充分性、正确性,避免注入等不安全行为的发生。

**四、总结**

综上所述,通过WebView可以实现H5与原生安卓的交互,使得应用程序在满足前端UI美观性的同时,同时调用安卓原生功能,进而增强应用的可用性。同时,在实现过程中,我们还需要认真审核所传递的参数的充分性、正确性,使得应用程序更加安全可靠。


相关知识:
浙江h5开发app
H5开发app是目前比较流行的一种开发方式,它能够让开发者直接在浏览器中开发手机应用,快速地完成应用的开发和测试,并且可以使用HTML、CSS和JavaScript等前端技术。下面,我们将详细介绍一下浙江H5开发app的原理及其相关内容。1. H5开发ap
2023-05-26
免费做h5的app
在现代社会,移动应用程序的市场需求非常高。无论是大型企业还是小型创业公司,都需要在移动应用领域拥有自己的应用程序。对于创业公司来说,可能没有足够的资金来雇佣一支专业的团队去开发应用程序,这就成为了创业公司的一大难题。因此,现今市场上许多免费的H5应用程序开
2023-05-26
h5源码打包app
H5源码打包为App是近些年来逐渐兴起的一种应用程序开发形式,它的优点是可以快速地将Web应用转化为移动应用,同时还具有跨平台、节约成本、易于维护等众多优点。下面就来介绍一下H5源码打包为App的原理以及详细步骤。## 原理H5源码打包为App的原理是通过
2023-05-25
h5页面免费制作工具app
随着互联网的飞速发展,移动互联网的普及率越来越高,h5页面的需求也随之水涨船高。但是,很多人不会写代码也不想学习编程知识,就会遇到一个难题——如何制作自己的h5页面呢?为此,出现了很多h5页面免费制作工具app,这里介绍几款比较流行的工具。一、易企秀易企秀
2023-05-25
h5页面 封装 app
随着移动互联网的蓬勃发展,越来越多的网站和应用开始关注这一领域。同时,随着 HTML5 技术的丰富和移动设备的普及,H5 页面的开发变得越来越容易。H5 页面不仅可以在手机浏览器上直接访问,还可以通过封装 App 的方式让用户更方便地使用。在本篇文章中,我
2023-05-25
h5手机app开发概念
H5手机App开发,即指采用HTML5技术进行移动端应用开发。与传统的原生应用相比,H5应用具有跨平台、开发效率高、维护成本低等优势,很受开发者和企业的欢迎。下面我将从概念、原理和详细介绍三个方面进行阐述。一、概念H5手机App开发,简称H5应用,是一种基
2023-05-25
h5手机app开发
H5手机App开发指的是通过H5技术开发出适用于移动端的应用程序,与原生App有所区别。下面将从原理和详细介绍两个方面来解析H5手机App开发。一、H5手机App开发的原理:1. 应用内置一个H5用户界面。2. 应用中通过WebView将H5界面展示给用户
2023-05-25
h5商城app开发
H5商城APP是一种基于HTML5 Web技术的混合应用,可以在其中嵌入运行JavaScript和CSS代码的web页面。H5技术具有跨平台、快速迭代、用户体验优化、运营成本低、可定制化强等特点,在移动互联网越来越普及的今天,H5商城APP的开发已经成为移
2023-05-25
h5开发app方案
H5开发App方案是指将基于HTML5、CSS3、JS等技术的Web开发技术应用到移动App开发中的一种方案。在过去,移动App的开发大多采用本地开发方式,需要专业的开发团队或开发者,而且不同平台的开发和维护成本相对较高。而随着移动设备的普及和Web技术的
2023-05-25
h5开发和原生app区别
H5开发和原生APP开发是当今移动应用程序开发领域中最受欢迎的两种开发方式。原生APP是指开发者使用特定平台创建的应用程序,而H5开发是利用HTML5、CSS3和JavaScript等网页标准技术进行开发的。在这里,我们将重点讨论这两种方式的优缺点和开发原
2023-05-25
h5封装app通讯录权限
在开发移动端app时,通讯录权限是必不可少的一项功能,它能帮助用户快速地将联系人添加到自己的通讯录中,但是由于涉及到用户隐私,获取通讯录权限涉及到一定的安全性问题。因此,本文将详细介绍如何在h5中封装app通讯录权限。一、基本原理H5的本质是在浏览器中运行
2023-05-25
h5场景制作app
H5场景制作App,实际上就是一款基于H5技术的应用程序。H5是HTML5的简称,它是一种用于构建网站和网络应用的标准技术。HTML5作为一项新兴的技术,拥有着众多的优点,在各个领域都有着广泛的应用。在场景制作领域,H5技术的应用更是给人带来一种全新的视觉
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3