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(Hyper Text Markup Language 5)是一种基于web的标准化技术,通过HTML、CSS和JavaScript等技术开发出一种基于浏览器的手机网页。相较于native
2023-05-26
如何用h5开发前端app页面
HTML5是一种用于Web编程的标准。下面将为您介绍如何使用HTML5开发前端APP页面。1. 使用HTML5的优点HTML5主要有以下几个优点:(1)兼容性良好:任何一款浏览器都支持HTML5,包括PC端和移动端。(2)结构清晰:HTML5提供了更多的语
2023-05-26
前台用h5后台用php开发app案例
近年来,随着移动互联网的快速发展,越来越多的企业开始将重心放在移动端的应用开发和推广上。而在移动应用的开发过程中,涉及到前端和后台两个方面,如何将它们有机结合起来,构建一个高质量的应用,成为了一个困扰着开发者的问题。在这篇文章中,我将以一个前台用H5后台用
2023-05-26
可以将h5打包为app的
H5是指HTML5,是一种用于网页开发的标准化语言。通过使用HTML5,我们能够制作出多种类型的网页,包括响应式设计、动画、游戏等。如果您想将H5应用程序转换为Android或iOS应用程序,您需要将其包装成一个原生应用程序。下面将介绍如何将H5打包成原生
2023-05-26
禾匠h5封装app
禾匠H5封装App是一种可以把H5页面封装成原生应用的技术,广泛应用于移动应用开发领域。H5技术是一种基于HTML5、CSS3和JavaScript等技术开发的跨平台应用开发技术。通过禾匠H5封装App技术,开发者可以把H5页面封装成原生应用,不需要开发新
2023-05-25
net结合h5开发app
近年来,与传统桌面端应用程序相比,基于HTML5和JavaScript的Web应用程序在移动设备上的普及效果日渐显著,并且得到了广泛的支持。在Web和移动应用程序方面,其应用领域已超越了前端开发。而这种趋势将会持续下去,因为HTML5技术属于开放标准,可以
2023-05-25
h5做app的
HTML5(以下简称H5)是一种基于Web标准的技术,可以实现跨平台、跨设备的应用开发。在移动互联网时代,以H5为基础开发的手机App成为了一种非常流行的开发方式,这种方式被称为H5打包App。H5打包App的原理是将Web应用通过打包工具封装成一个本地应
2023-05-25
h5制作软件有什么app
H5制作软件,顾名思义就是可以使用HTML5语言进行网页设计的软件。HTML5的出现,为我们的网页设计提供了更加丰富的元素和技术,使得网页设计的效果更为灵活和实用。因此,H5制作软件也越来越受到了人们的喜爱。下面是一些常见的H5制作软件的介绍。一、 "Sc
2023-05-25
h5开发的app可以上架应用商店嘛
HTML5是一种基于Web的技术,能够让我们在不同的设备上调用同一个程序,无论是在电脑上、移动端、平板电脑、智能电视等设备上任何一个平台下进行开发,一次编写即可在多个平台下运行。而在移动互联网应用开发中,HTML5技术也占有重要的地位。如何让H5开发的AP
2023-05-25
h5开发app考题和答案
首先,需要了解H5开发APP是指使用HTML5、CSS3、JavaScript等技术,结合移动端开发框架和工具,开发出可运行在移动设备上的网页应用程序,通常称为 Web APP。相比于原生 APP,Web APP有更好的跨平台性和便捷性,但可能受到一些性能
2023-05-25
h5打包app状态栏颜色设置
在使用H5打包App时,状态栏颜色设置是一个很重要的问题。如果状态栏颜色与应用色调不搭配,就会对用户的视觉体验产生不良影响。那么如何设置状态栏颜色呢?在 Android 平台上,应用程序的主题通过 AndroidManifest.xml 文件中的 andr
2023-05-25
app制作h5图片裁剪插件
H5图片裁剪插件是一种基于HTML5技术的图片处理工具,可以方便快捷地实现对图片进行裁剪、缩放、旋转、镜像等多种操作。本文将简单介绍H5图片裁剪插件的原理及实现过程。一、原理H5图片裁剪插件的核心原理是利用了HTML5的canvas元素和File API。
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3