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技术,使用Web前端技术开发的一种基于浏览器的移动应用。相较于传统的原生应用,H5应用具有开发周期短、成本低、跨平台兼容等优点。下面是H5软件App制作的原理以及详细介绍。一、H5应用原理H5应用是基于Web前端技术开发的一种
2023-05-26
网站h5小程序app开发模板
网站、H5、小程序和App是当前互联网领域里最热门的开发模板。本文将分别介绍这四种开发模板的原理以及它们的详细介绍。一、网站开发模板网站开发是将网页制作、图像处理、互联网技术等多个领域融合在一起所做的一项工作。 网络是现在人类社会中最为广泛的社会信息处理方
2023-05-26
汕尾h5开发app
汕尾H5开发APP(原理或详细介绍)随着移动互联网时代的到来,手机应用APP已成为人们生活中不可或缺的部分,给人们的日常生活带来了很大的方便性。然而,APP开发的难度较大,需要掌握多种语言和技能。近年来,H5技术得到了广泛的应用,因为它能够用一种相同的语言
2023-05-26
如何手机app制作h5
在移动互联网的时代,手机app成了人们生活中必不可少的一部分。同时,H5技术(即基于HTML5的技术)也在逐渐流行,被广泛应用于手机app制作中。下面,本文将详细介绍如何利用H5技术来制作手机app。1.什么是H5技术H5技术是一种基于HTML5的应用开发
2023-05-26
免费h5制作app排行榜前十名
随着移动互联网的快速发展,越来越多的人们开始使用手机进行日常生活的各项活动。移动应用程序也逐渐成为了人们生活的一部分。很多网站博主和个人都希望能够有一款属于自己的app,并且能够以较低的成本来实现。因此,在市场上出现了很多免费H5制作app的平台。以下是排
2023-05-26
合肥h5开发app
合肥H5开发APP是一种新型的APP开发方式,具有快速开发、跨平台、低成本等优势,在移动互联网时代得到广泛应用。以下是合肥H5开发APP的原理和详细介绍:一、H5是什么?H5是HTML5的简称,是HTML标准的第五个版本,由W3C推出。它不仅是网页开发的标
2023-05-25
h5制作app的框架
H5制作app的框架就是指使用HTML5、CSS3、JavaScript等Web技术来进行移动应用程序开发的一种模式。这种方式的优势在于开发成本和时间更短,跨平台性更好,而且开发者无需精通Java、Objective-C等原生语言,就能够进行开发。下面,我
2023-05-25
h5制作app哪个好
HTML5对于移动应用开发来说有很多优点:跨平台、代码重用、易于更新和维护、丰富的交互等等,所以越来越多的企业和开发者开始选择使用HTML5来开发移动应用,那么,h5制作app有哪些好的工具呢?1. PhoneGapPhonegap是一个非常流行的h5制作
2023-05-25
h5用flutter开发app
作为目前最为流行的移动端开发技术之一,H5 在各个领域都发挥着重要的作用。然而,在某些情况下,H5 技术存在着一些不够完美的地方,比如性能方面的局限,安全性方面的问题等等。而在这些情况下,使用 Flutter 技术开发 H5 APP 就成为了一个不错的选择
2023-05-25
h5开发app用什么
H5开发APP可以让开发者利用Web技术和Native API实现原生APP的功能,方便移动端开发。H5即指HTML5,是HTML标准的第五个版本,支持新的元素、属性、CSS3以及JavaScript API等。H5开发APP主要有两种方式:Webview
2023-05-25
h5 网站 封装app
H5 网站封装 APP 主要分为两个方向,即把 H5 网站封装成混合型 APP,以及将多个 H5 网站整合封装成 APP。本文将为大家详细介绍这两种封装 APP 的原理和实现方式。一、把 H5 网站封装成混合 APP把 H5 网站封装成混合 APP 的主要
2023-05-25
app开发h5使用vue
Vue.js 是一个基于 JavaScript 的框架,它可以用于构建单页应用以及响应式的用户界面。Vue.js 可以和第三方库或者已有的项目进行整合。同时,Vue.js 也提供了相应的插件和工具,来解决开发中的常见问题。在移动应用开发中,可以使用 Vue
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3