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是一种基于HTML、CSS、JavaScript等技术的网页制作技术,而制作H5免费APP的本质是将H5网页封装成APP进行发布。下面将对制作H5免费APP的原理及步骤进行介绍。一、制作H5免费APP的原理制作H5免费APP的原理本质上是将H5网页进行
2023-05-26
移动端app页面制作h5
随着移动设备的普及,越来越多的人开始使用移动端app。为了满足用户需求,众多企业都在积极地开发移动app。在app的设计中,h5页面是很重要的一部分。那么如何制作移动端app的h5页面呢?下面就为大家介绍一下制作移动端app的h5页面的原理和方法。一、什么
2023-05-26
前端开发h5怎么设置成app
H5技术是一种基于浏览器的技术,能在不同的平台上使用,包括PC、手机和平板电脑等。由于H5技术简单易懂,容易开发,因此被广泛应用在移动端应用开发中。但是,H5技术存在一些限制,比如浏览器加载较慢、不支持离线操作等,这些限制对于应用体验产生一定的影响。 因此
2023-05-26
hbuilder将h5打包app
HBuilder是一款基于HTML5开发的构建APP和微信小程序的集成开发环境。它支持多个平台的打包,包括Android、iOS和Windows等,使开发者能够在一个平台上快速、高效地开发多个平台的应用程序。本篇文章将介绍如何使用HBuilder将H5网站
2023-05-25
h5制作app推荐
HTML5(超文本标记语言第5版)是Web开发中的一项技术,其主要作用是结合CSS和JavaScript来开发Web应用或者网站。与传统的桌面应用和移动应用不同,Web应用主要依赖于浏览器内核的运行,而不需要安装在本地终端中。在过去,Web应用的表现非常的
2023-05-25
h5游戏生成app
H5游戏在近年来的发展越来越受到重视,H5游戏以其开发灵活、界面美观、可以跨平台运行等特点受到了广泛的关注。而随着移动设备的普及,使用应用程序来玩游戏也逐渐成为了一种新的游戏方式,并逐渐成为了厂商们追逐的方向。因此,很多厂商都开始考虑将自己的H5游戏快速转
2023-05-25
h5页面封装一个安卓的app
H5页面是一种可以直接在浏览器中运行的网页页面,而在移动端我们通常使用的是APP来进行交互和使用。如果我们能够将H5页面封装成APP,那么就可以在不同平台上运行,提高应用程序的普适性。本文将介绍如何将H5页面封装成安卓APP。一、什么是H5页面封装APPH
2023-05-25
h5如何生成app
在移动互联网时代,APP已经成为了人们日常生活中不可或缺的一部分。对于开发者而言,如何快速生成一个APP,成为了一个重要的问题。移动开发技术的不断发展,H5+cordova的应用逐渐成为了生成APP的主流手段。那么,H5如何生成APP呢?本文将从原理和实现
2023-05-25
h5可以开发那些app
随着移动互联网的快速发展,越来越多的应用开发者开始关注 HTML5 技术。HTML5 是一种标准化的网页设计语言,可用于开发多种类型的应用程序。本文将介绍 HTML5 可以开发的 app 以及其原理。1. 基于 Web 的应用程序HTML5 提供了许多新功
2023-05-25
h5开发app工具下载
目前,移动应用越来越受欢迎,在这个高度竞争的市场中,开发者必须快速高效地开发出具有良好用户体验的应用。H5开发是目前非常流行的一种方式,借助一些开发工具,开发者可以更快速、高效地开发出高质量的H5应用。下面,我们将介绍一些常用的H5开发工具。1. HBui
2023-05-25
h5和vue做app
在移动端开发中,使用H5和Vue.js来进行App开发已经变得越来越流行。这种开发方式被称为混合开发,即通过Web技术构建App的界面和交互,同时利用原生代码实现App的一些特定功能。1. 前置知识在混合开发中使用到的技术主要有以下几项:- HTML5:用
2023-05-25
h5封装app跳转外部浏览器
H5封装App是现在很流行的开发方式,它能够带来很多便捷的功能,如本地推送、分享、支付等等。但是有时候,在App中无法满足用户的需求,需要跳转到外部浏览器来展示网页内容。本文将介绍这种需求的原理和实现方法。首先,我们需要知道,App是一个封闭的环境,它的沙
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3