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有哪些
随着HTML5技术的不断发展,它已经成为了一种流行的应用程序开发平台。HTML5可以帮助我们创建完整的移动应用,这些应用可以很方便地部署到不同的平台上。下面就来介绍一些基于HTML5开发的流行应用程序。1. DropboxDropbox是一种在线云存储服务
2023-05-26
小程序app与h5的开发优势对比
小程序和H5(即移动网页)都是在移动互联网时代发展起来的技术,它们都能为用户提供丰富的移动应用体验。不过,小程序与H5之间也存在一些差异,下面就来介绍一下二者的开发优势对比。一、开发成本从开发的角度来说,小程序的开发成本相对于H5来说会更高一些。尤其是在需
2023-05-26
手机可以制作h5的app
现在的手机已经和我们的日常生活息息相关,除了基本的通信功能之外,它们还可以用来进行各种各样的操作,比如:听音乐、看电影、玩游戏、购物等等。同时,手机应用程序市场也越来越火爆,各种各样的应用程序让我们越来越依赖手机。其中,H5应用程序是一个越来越关注的领域,
2023-05-26
哪个app可以制作h5模板
在移动互联网蓬勃发展的时代,越来越多的人想要制作自己的H5模板,以展现自己的创造力。但是,很多人并不知道如何开始去制作H5模板,也不知道哪个app可以制作H5模板。下面我们来一探究竟。首先,H5模板,即是指可以在移动端实现HTML5语言特性的页面模板。它支
2023-05-26
基于h5做得app上ios苹果超市
在过去,基于H5(即Web App)开发的应用只能在浏览器中运行,但是如今通过技术的不断迭代,基于H5开发的应用可以通过混合式开发集成到APP中,并上架各大苹果超市。接下来,让我们来看看如何基于H5做得APP上IOS苹果超市。一、什么是H5H5,全称为HT
2023-05-26
h5做出来的app
H5是指基于HTML5和相关技术实现的Web应用,它具有跨平台、可扩展、易于维护、开发成本低等优点。而H5做出来的App通常指的是基于H5技术开发的混合应用。下面将详细介绍H5做出来的App的原理。H5做出来的App可以分为两种:一种是Web App,另一
2023-05-25
h5制作app哪个好
HTML5对于移动应用开发来说有很多优点:跨平台、代码重用、易于更新和维护、丰富的交互等等,所以越来越多的企业和开发者开始选择使用HTML5来开发移动应用,那么,h5制作app有哪些好的工具呢?1. PhoneGapPhonegap是一个非常流行的h5制作
2023-05-25
h5移动端app开发
HTML5 是一种基于 Web 技术的移动端开发框架,它可以用来开发在移动设备上运行的应用程序。与传统的原生应用开发相比,HTML5 技术开发应用具有轻便、跨平台、易于开发、易于维护、易于更新等优点。本文将详细介绍 HTML5 移动端应用开发的原理和技术。
2023-05-25
h5开发appvuecli
HTML5开发App通常使用的是Apache Cordova框架,它在HTML、CSS和JavaScript这些网页技术的基础上,添加一些native层的功能和API,比如调用设备的摄像头、地理位置等等。使用这个框架可以使Web应用程序具备类似原生应用程序
2023-05-25
h5封装app ios上架 hbuilder
HBuilder是一款跨平台的HTML5开发IDE,它应用广泛,可以用于开发Web应用,但是在很多人的印象中,它更多的是用来封装H5为App使用。而今天我们就来介绍一下,如何使用HBuilder来封装App并发布到iOS上架。# 第一步:创建项目首先,我们
2023-05-25
h5打包为原生app
随着移动互联网的快速发展,越来越多的人开始关注如何将自己的网站或应用打包成原生移动应用程序。因为原生应用程序不仅支持离线使用,还能够充分利用设备的资源,提高应用程序的性能。同时,它们也可以从应用商店获得更多的曝光度和可信度。在HTML5出现之前,开发人员只
2023-05-25
app制作h5优缺点
APP制作H5是指将一个网页应用程序以APP的形式呈现,用户可以通过下载APP的方式使用。与传统的APP开发相比较,APP制作H5具备以下优缺点。一、优点1.成本低APP制作H5相比较其他开发方式来说,其开发周期非常短,而且开发成本也很低,因此个人开发者或
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3