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等Web技术的富媒体内容展示方式,被广泛应用于移动端和PC端的网页设计和开发中。由于H5界面的互动性、多媒体和良好的跨平台支持,它在移动端和互联网领域得到了非常广泛的应用。为了更好地满足H5制作的需求,市
2023-05-26
制作h5页面的app有哪些
在制作H5页面方面,目前市场上存在多种可供选择的工具和应用程序。下面就列出几个比较常用的H5页面制作app,并介绍其中的制作原理和具体操作方式。1. MakaMaka是一个在线(Web)和移动端(App)H5 制作工具,支持多样、多维度的素材添加,因此用户
2023-05-26
制作h5软件app有哪些
H5软件App是利用Html5技术,使用Web前端技术开发的一种基于浏览器的移动应用。相较于传统的原生应用,H5应用具有开发周期短、成本低、跨平台兼容等优点。下面是H5软件App制作的原理以及详细介绍。一、H5应用原理H5应用是基于Web前端技术开发的一种
2023-05-26
桂林h5开发app
桂林H5开发App是指利用H5技术来开发移动应用程序的过程,主要特点是轻量、快速、跨平台、易维护等。本文将详细介绍桂林H5开发App的原理及实现过程。一、桂林H5开发App的原理H5技术指的是HTML5、CSS3和JavaScript等web前端技术的综合
2023-05-25
混合app开发h5交互
混合app开发是目前比较流行的一种移动应用开发方式。与传统的原生应用开发方式不同,混合开发可以使用跨平台的技术开发出同时适用于多个操作系统的应用程序。同时,混合开发还涉及到一些基于H5技术的交互方式。1. 混合开发的原理混合开发的原理是将网页内容嵌入到原生
2023-05-25
h5做app开发流程
H5(HTML5)是一种能够和本地应用类似地提供原生级别体验和效果的 Web 技术。它可以使得开发人员通过 Web 技术开发出 APP,并在多个平台上进行使用。因此,使用 H5 开发 APP 已经成为目前一个很热门的技术。H5 开发 APP 的优势主要在于
2023-05-25
h5制作app软件有什么
H5是一种基于Web标准的技术,可以轻松创建具有高效性和可移植性的丰富 Web 应用程序(Rich Web Applications,简称 RIA)。由于 H5 编写的程序使用标准 Web 技术,因此它们可以在多种设备和平台上运行,而不必为每个平台单独开发
2023-05-25
h5手机端app开发
HTML5是一种用于网页设计的标准语言,支持许多功能,包括绘画和动画。近年来,HTML5越来越受欢迎,因为它可以用于多个平台,包括智能手机和平板电脑等移动设备。而基于HTML5开发的移动应用就是H5手机端app,下面就为大家详细介绍一下H5手机端app开发
2023-05-25
h5打包ios app
H5是指HTML5,而HTML5本身只是一种标记语言,只有在浏览器中运行,不能直接在手机app中运行。所以,如果你想要将你的H5页面打包成iOS应用程序,你需要使用一种叫作hybrid应用的技术。Hybrid App是一种结合了H5和Native应用功能的
2023-05-25
h5打包app经常提示连接失败
在移动互联网的时代,H5应用开发已经成为许多公司和个人的首选,因为其具有跨平台、易于开发和维护等优势。同时,H5应用也逐渐被广泛运用于各类企业和机构的宣传、促销和服务等方面。然而,制作完美的H5应用需要做到多方面的考虑,最常见的问题则是打包生成APP时候出
2023-05-25
h5 手机app 开发入门
随着智能手机的普及,移动应用已经成为人们生活中不可或缺的一部分。如今,开发一款手机App不再是高峰难度的技术,对于许多开发者而言,掌握 H5 手机App 开发技术已经足够应对大部分需求。本篇文章将为初学者介绍 H5 手机App 开发的原理和详细的介绍。##
2023-05-25
app内嵌h5 webpack打包
在移动互联网时代,越来越多的应用程序需要集成H5页面来为用户提供一些功能或服务。这些H5页面一般会和原生APP混合使用,在一个界面里面可以有原生和H5的组件共存。为了优化用户体验和提高页面的加载速度,我们需要使用webpack工具对H5和原生APP进行打包
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3