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是指HTML5,它是一种web标准技术,用于创建网页和应用程序。H5作为一种跨平台、开放标准的技术,广受欢迎,应用范围非常广泛。随着移动设备的普及,以及网页应用的增多,越来越多的人开始关注如何将H5应用于移动应用程序的开发。制作H5的App主要有以下几
2023-05-26
怎么识别app是h5开发的
在当今移动互联网时代,各类应用层出不穷。其中, H5 开发的应用也逐渐占据了市场。H5 开发的应用相较于原生应用有诸多优势,例如开发周期短、版本迭代速度快等,因此得到了一些开发者和企业的青睐。那么,如何识别一个应用是 H5 开发的呢?一、H5 开发的优缺点
2023-05-26
山西h5开发app
H5开发App是一种基于Web技术开发应用程序的方法,它可以通过HTML、CSS、JavaScript等技术实现跨平台开发,将应用程序封装成一个可在Web浏览器中展示的Web应用,同时也可以通过各大移动平台上的浏览器中进行访问和体验。在山西,H5开发App
2023-05-26
记一次h5开发app经验分享
在互联网领域,移动端应用已经成为了现代人们生活中不可或缺的一部分。如今,越来越多的网站博主选择开发自己的移动端应用来满足用户的需求。而总体上来说,H5开发app是一种新的模式,它的特点在于可以跨平台,在不同的移动设备上运行,非常方便和灵活。通过使用H5技术
2023-05-26
打包的h5安卓app
随着移动互联网的快速发展,适应不同平台的应用也成为许多开发者关注的焦点。而随着h5技术的广泛应用,越来越多的人开始使用web网页作为应用程序的媒介。但是,web应用程序在移动端的体验往往能不能和原生应用相比,原因之一便是因为web应用程序大多运行在网页浏览
2023-05-25
h5制作app排行
H5制作App已经成为一个非常流行的趋势,受到了广泛的关注和追捧。本文将介绍H5制作App的原理和详细过程。一、H5制作App的原理H5制作App的核心原理是基于HTML5+CSS+JavaScript等技术,开发出类Web的应用程序,然后使用一些丰富的容
2023-05-25
h5制作app哪款好
随着移动互联网的普及,越来越多的企业开始注重自己的移动应用开发。HTML5作为一种新型的开发技术,具有跨平台性、较小的更新成本和灵活性等优势,受到了越来越多开发者和企业的青睐。那么,哪款H5制作APP的工具比较好呢?接下来,本文将为大家介绍一些较为常用的H
2023-05-25
h5页面制作软件app推荐
随着移动互联网的持续发展,越来越多的企业选择推出自己的移动App,但建设一个App需要投入大量的人力、物力、财力,对于一些小型企业来说并不是很容易实现的。而在此情况下,理想的选择是利用H5页面来完成产品推广,在不需要下载与安装的情况下,通过链接打开即可使用
2023-05-25
h5网页可以做成app么
答案是可以的!下面我来讲解一下 h5 网页怎么做成 app。首先需要明确的是,在现如今移动应用的浪潮之下,每个人的手机里都已经被很多种类繁多的应用占据着,所以在做出一个成功的 app 的时候需要考虑几个因素:- 用户价值- 独特性- 操作简单流畅- 数据安
2023-05-25
h5如何快速开发app
H5快速开发App是一种非常流行的应用程序开发方式,它利用HTML5、CSS3、JavaScript等技术快速地开发应用,实现跨平台开发。下面我们将详细介绍H5快速开发App的原理以及如何快速开发一个H5应用程序。一、原理1.嵌入网页开发者可以使用一个We
2023-05-25
h5封装app云工具
H5封装App云工具是一种通过H5技术来封装移动App的工具,目的是让Web开发者能够在不需要深入学习原生移动App开发技术的情况下,也能够快速地将自己的网站或Web应用封装成App应用,并且能够发布到各大应用商店中。这种H5封装App云工具通常具有以下特
2023-05-25
h5封装app摄像头
随着智能手机的普及,人们对手机摄像头的要求也越来越高。市场上也出现了很多APP,通过应用程序可以拍照或录制视频。如果我们的网站需要用户上传图片或视频,那么我们如何在Web页面上使用手机摄像头呢?传统的做法是借助Flash或者第三方APP来完成这个功能。但H
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3