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,顾名思义就是将基于H5技术开发的Web应用程序打包成一个本地化的APP应用程序,让用户可以通过APP的方式来访问使用。随着移动互联网的发展,越来越多的企业和开发者开始尝试使用H5打包APP的方式来推广自己的产品和服务,从而获得更大的市场份额
2023-05-26
使用h5混合开发app
H5混合开发App是近年来发展比较快的一种移动应用解决方案。它把原生应用和Web应用进行了融合,能够有效地利用Web技术和原生特性,快速地开发移动应用,同时还能在不同平台上实现代码重用。H5混合开发App基本架构H5混合开发App的基本架构分为Native
2023-05-26
上海h5开发app
随着移动互联网的快速发展,越来越多的企业开始关注移动应用的开发和推广。在此背景下,H5开发技术也得到了越来越广泛的应用。上海H5开发APP已经成为众多企业的首选。本文将从原理和详细介绍两个方面来阐述上海H5开发APP的实现方式。一、原理H5技术是指利用HT
2023-05-26
h5制作app
随着移动互联网时代的到来,APP已经成为了人们生活中必不可少的一部分,而作为开发者或是想从事APP开发岗位的人员,学习掌握制作APP的技术已经变得非常重要。在过去,制作APP通常需要掌握各种编程语言,比如Java、Swift等等,使用编程语言来进行APP的
2023-05-25
h5制作app软件
随着移动互联网的快速发展,移动应用已成为人们生活中不可或缺的一部分。以前,想要开发一款自己的应用,需要精通多门技术,比如Java、Objective-C等编程语言,还需要了解iOS和Android操作系统的API接口。这使得开发成本高、周期长,对一般开发者
2023-05-25
h5开发app视频压缩技术
近年来,随着移动网络的迅速发展,移动应用的使用越来越受欢迎。而对于需要在app中播放视频的应用来说,视频压缩技术是必不可少的一项技术。今天我们来介绍一下h5开发app中的视频压缩技术,从原理和详细介绍两个方面入手。一、原理视频压缩技术的核心就在于数据压缩。
2023-05-25
h5封装app怎么不全屏
在移动应用的开发中,H5封装App是一种常见的应用方式,它可以很好地兼容不同的操作系统和设备。然而,在H5封装App中,全屏显示常常会对用户体验产生一定的影响。因此,让H5应用不全屏显示是一种非常必要的需求。在介绍如何让H5应用不全屏显示之前,我们需要了解
2023-05-25
h5封装app 优缺点
近年来随着移动互联网行业的蓬勃发展,市场上出现了很多将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打包appios
随着移动互联网的发展,移动应用的需求量逐渐增长,而HTML5技术的出现使得用Web技术开发移动应用成为了更加便捷和灵活的选择。在这个过程中,一个最常见的需求就是将HTML5应用打包为能够在移动设备上运行的APP。本文将介绍如何使用Cordova框架将H5应
2023-05-25
h5 app开发培训
H5 App开发,是指基于HTML5技术,开发适用于移动设备的App应用程序。与原生App相比,H5 App具有跨平台、优秀的用户体验和更新迭代方便等优点。本文将介绍H5 App的开发原理和详细步骤,让读者可以初步了解如何开发H5 App。一、H5 App
2023-05-25
h5 app 开发框架推荐
H5 App(即基于网页技术开发的手机应用)的普及,让移动开发变得更容易,因为H5 App只需要一个HTML5页面即可运行,并且支持跨平台发布。在H5 App开发中,开发框架的选择直接影响到项目开发的效率和质量,因此,选择适合自己开发需求的框架非常重要。本
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3