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是一种基于HTML5技术的移动应用程序,它可以帮助开发者和初学者学习HTML5的原理、语法和应用。本文将从以下几个方面介绍制作H5教程app的原理和详细步骤。一、H5教程app的原理H5教程app是一款基于Web技术开发的移动应用程序,它使用
2023-05-26
使用h5开发app教程
随着移动互联网的快速发展,移动应用程序的需求也越来越大。H5技术作为一种基于Web的轻量级开发技术,由于其跨平台、灵活性和低成本等优势,成为了移动应用程序开发的一种重要选择。下面将详细介绍如何使用H5技术开发移动应用程序。一、H5技术基础H5技术也称作HT
2023-05-26
南宁h5开发app
H5开发App,指的是利用HTML5技术和Web相关技术进行App开发。这种方式实现的App具有跨平台、运维成本低等优势。以下是关于南宁H5开发App的详细介绍。一、H5开发App的优势1.跨平台:利用HTML5技术,实现一次开发多平台运行,可以同时在iO
2023-05-26
免费无广告的h5制作软件app
随着手机和平板电脑的普及,H5页面已经成为了移动端最受欢迎的页面制作形式之一。H5页面拥有良好的兼容性、多样的交互形式、可视化编辑等优点,得到了不少人的青睐。然而,市面上的H5制作软件大多数都存在着价格贵、广告过多、操作复杂等问题,不太适合初学者或个人用户
2023-05-26
黑龙江h5开发app
H5开发APP是一种基于HTML5技术的移动应用开发方式,它可以在手机端运行,无需通过应用商店下载安装,具有跨平台、兼容性好、维护成本低等特点。下面将从原理、技术要点及优缺点等方面进行详细介绍。一、原理H5开发APP的原理是将网页以一定的方式打包并在移动设
2023-05-25
h5做成app
H5是HTML5的缩写,是指最新的HTML标准,它提供了众多的新特性,例如“canvas”绘图、视频、音频、本地存储等等。H5可以在浏览器中直接运行,而且对于跨平台应用的需求也很适合,加之其解决了安卓和ios平台的异构现象,于是很多人开始尝试用H5做成Ap
2023-05-25
h5制作手机app
随着移动设备的繁荣以及互联网技术的普及,手机应用程序已经成为人们生活中不可或缺的一部分。HTML5作为一种最流行的Web技术之一,已经成为开发手机应用的主要选择之一。本文将深入介绍HTML5制作手机app的原理和方法。一、为什么使用H5制作手机APP1.完
2023-05-25
h5游戏app咋开发的
H5游戏是一种基于HTML5、CSS3和JavaScript等技术开发的游戏形式,它具有平台兼容性、易于开发发布、客户端无需下载等优点,因此在近年来越来越受到游戏开发者和玩家的欢迎。接下来,将介绍如何开发H5游戏APP。一、技术选型 在开发H5游戏APP之
2023-05-25
h5生成app开源
HTML5(Hyper Text Markup Language 5)是一种标记语言,常用于构建网页和应用程序。它可以同时运行在多种平台上,包括桌面电脑、智能手机和平板电脑等。近年来,HTML5在开发移动应用程序方面变得越来越受欢迎,一些开源工具和框架也被
2023-05-25
h5将网站打包为app
HTML5技术已经成为了网站开发的主流技术,越来越多的企业选择将自己的网站打包为APP,以提高用户的体验度和增加品牌的曝光量。接下来,本文将介绍如何将网站打包成APP,并且详细讲解打包的原理。首先,打包APP最主要的两个技术是Cordova和PhoneGa
2023-05-25
h5开发app的好处
近年来,随着移动互联网的迅猛发展,越来越多的企业开始关注移动应用的开发。而在移动应用开发的选择上,H5开发成为热门的选择之一。那么,H5开发App的好处是什么?我们来具体了解一下。H5开发是一种基于Web技术的移动应用开发方式。它采用HTML5、CSS3、
2023-05-25
h5tv版app开发
H5TV版App开发出现的主要原因是为了解决传统App开发的复杂性和不易维护的问题。它基于HTML5、CSS3和JavaScript等Web技术开发,具有跨平台,可扩展,易于维护等优点。一、H5TV版App的原理H5TV版App的开发是基于一种叫做Hybr
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3