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
随着移动互联网的发展,人们对APP的需求也越来越高。而HTML5在移动互联网中也越来越受欢迎,因为它可以轻松地将Web应用程序转换成可以在移动设备上运行的应用程序。在这篇文章中,我们将详细介绍如何利用HTML5制作APP。首先,HTML5相比以前的HTML
2023-05-26
制作h5的软件app有哪些
随着智能手机的普及,移动端受到越来越多的关注,原生APP已经成为了各个行业渠道中的必要手段。但是,APP存在着“应用过多”、“安装繁琐”等问题,而H5则成为了可以替代APP的重要工具。H5在开发和发布上有着明显的优势,因此受到了越来越多的关注。H5简单来说
2023-05-26
有哪些h5做的app
H5技术是指用于创建基于Web的应用程序的一组技术,其中包括HTML、CSS和JavaScript。随着移动互联网的普及,越来越多的企业开始采用H5技术来开发App,以便用户可以更方便地在手机上使用这些应用程序。下面介绍几个采用H5技术开发的APP:1.
2023-05-26
原生app与h5开发搭建
随着移动互联网的不断发展,原生App和H5开发逐渐成为了手机应用程序的两种主要开发方式。本篇文章将从原理和详细介绍两方面分别介绍原生App和H5开发的搭建方法。一、原生App搭建原生App是指针对某个特定设备和操作系统使用本地编程语言进行编写,可以直接安装
2023-05-26
移动端app页面制作h5
随着移动设备的普及,越来越多的人开始使用移动端app。为了满足用户需求,众多企业都在积极地开发移动app。在app的设计中,h5页面是很重要的一部分。那么如何制作移动端app的h5页面呢?下面就为大家介绍一下制作移动端app的h5页面的原理和方法。一、什么
2023-05-26
免费h5网页制作app
随着移动互联网的普及,越来越多的人开始使用手机上网、阅读新闻、观看视频等,制作H5网页变得非常流行。为了更好的满足用户的需求,很多人开始寻找免费的H5网页制作App。本文将介绍H5网页制作App的原理以及一些可供选择的免费工具。H5网页制作App的原理H5
2023-05-26
免费做h5的手机app有哪些
目前市面上有很多免费制作H5手机APP的平台,这些平台通常采用较为简单的原理让用户快速制作自己的APP,下面介绍其中的几个:1. AppCanAppCan 是一款非常受欢迎的免费H5手机APP制作平台,它提供了完整的APP开发工具包,用户可以使用AppCa
2023-05-26
h5做的app案例
HTML5技术可以用于开发跨平台的应用程序,即h5应用程序,如今h5应用程序已经广泛应用于各种领域,包括但不限于游戏、电商、金融、社交等。接下来,我将介绍一个使用h5技术开发的app案例,同时解释其原理和开发过程。案例名称:小番茄小番茄是一款基于Pomod
2023-05-25
h5页面软件制作app
HTML5技术是目前非常流行和广泛应用的技术之一,它可以用于网站开发和移动应用程序开发,同时还可以跨平台使用,因此非常受到欢迎。在移动应用程序开发领域,HTML5应用程序也被称为“H5应用程序”,它不需要依靠特定的平台,而只需要通过浏览器来运行。在移动应用
2023-05-25
h5开发app公司
H5开发App是指采用HTML5、CSS3、JavaScript为主要开发语言,通过一种跨平台的技术方式,将H5页面封装成App或者应用,安装到手机端,让用户可以像使用原生App一样使用。相比于传统的原生App开发,H5开发App有以下优点:1.跨平台:无
2023-05-25
h5开发app一个多少钱
HTML5技术已经成为了开发移动应用的重要选择之一,相对Android和iOS的原生应用开发,HTML5应用是基于网络的,开发成本和时间较低,还能跨平台运行,成为了不可忽视的优势。基本原理H5开发app,基本原理是利用HTML、CSS和JavaScript
2023-05-25
app开发h5框架
APP开发H5框架是一种基于现有原生应用程序的Web平台,可以用Web技术(HTML,CSS和JavaScript)开发应用并在APP中运行。在开发APP的时候,开发人员会面临诸如兼容性、适配性、开发效率、开发成本等种种问题。H5框架的出现便是为了解决这些
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3