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
近年来,移动互联网的兴起早已成为全球性的趋势,人们更加倾向于通过移动端了解事物及购物消费等,而对于企业和商家也通过移动APP获得更多的利润和市场切入角度。但是,制作APP并不是每个人都能轻松掌握技巧的,有了h5傻瓜式APP制作工具可以解决这个问题,让大多数
2023-05-26
基于h5的移动端app开发框架
移动端APP开发是现今互联网领域中的热门话题,而基于h5的移动端开发框架是其中的一种实现方式。本文将对基于h5的移动端开发框架进行详细介绍。1.什么是基于h5的移动端开发框架?基于h5的移动端开发框架是指开发一种框架,使开发者可以用HTML5、CSS3和J
2023-05-26
婚礼h5制作app
婚礼 H5 制作 APP 是一款能够帮助用户制作并发布个性化婚礼 H5 页面的工具。其原理是基于 H5 技术以及模板化设计,为用户提供了一个快速、简单、方便的婚礼 H5 制作平台。下面将为大家详细介绍婚礼 H5 制作 APP 的原理和功能特点。一、H5 技
2023-05-25
h5游戏开发app
随着移动设备的普及和互联网的发展,越来越多的人开始玩手机游戏。而H5游戏作为一种新型的游戏开发技术,已经成为了许多手机游戏的选择。本文将会介绍H5游戏开发的原理和详细流程,以及如何将其转化为app应用程序。H5游戏是使用HTML5、CSS3和JavaScr
2023-05-25
h5移动端开发app前端模板
H5移动端开发APP前端模板是一套基于H5技术的前端框架,它提供了一些基础组件和功能模块,使得开发者可以更加方便快速的进行APP开发。本文将详细介绍H5移动端开发APP前端模板的原理和组成部分。H5移动端开发APP前端模板的原理:H5移动端开发APP前端模
2023-05-25
h5页面制作软件app免费
HTML5是网页制作技术中的新一代技术,与传统的HTML相比,在页面布局、样式设计方面更加灵活多变,效果更加出色。如何快速制作出优秀的H5页面呢?这就需要使用到H5页面制作软件了。在市场上,有很多H5页面制作软件app,其中一些软件是收费的,但是也有一些免
2023-05-25
h5页面制作有哪些手机app
在现代越来越数字化的世界里,不断出现了各种各样的手机应用程序,方便了人们的日常生活。其中许多应用程序都是和互联网领域相关的,如今,越来越多人通过手机访问互联网,而HTML5技术在移动领域的应用也越来越多。下面将介绍几款常用的h5页面制作手机应用程序。1.
2023-05-25
h5页面制作app吗
H5页面是基于HTML、CSS、JavaScript等web前端技术实现的交互页面,它在移动Web应用开发中得到了广泛的应用。相比于原生的移动应用,H5页面具有跨平台、开发成本低、易于维护等优点,因此在移动应用开发领域也得到了许多的关注。在App开发中,H
2023-05-25
h5前端开发app
随着移动互联网的快速发展和普及,移动端应用程序已成为人们日常生活不可或缺的一部分。目前,h5前端开发app已成为一种趋势,由于其跨平台、低成本、快速开发的优点,得到了越来越多开发者的青睐。下面将从原理和详细介绍两个方面,对h5前端开发app进行阐述。一、原
2023-05-25
h5能开发原生的app吗
答案是肯定的,可以使用HTML5和相关的技术来构建原生的应用程序。这种方法被称为混合应用程序开发,在实践中越来越普遍得到应用。下面详细介绍使用HTML5开发原生应用程序的原理。### HTML5与原生应用程序开发的关系HTML5是超文本标记语言(HTML)
2023-05-25
h5封装的app和真的app区别
HTML5封装的App与原生App的主要区别在于技术实现和用户体验方面。HTML5封装的App使用Web技术来开发,包含HTML、CSS和JavaScript等技术,而原生App是使用特定的开发语言和技术开发的。HTML5封装的App是运行在Web容器中,
2023-05-25
h5本地文件封装app
H5本地文件封装成App的实现原理是将H5网站进行本地化存储,在本地创建一个App壳,将本地化的H5资源文件进行打包封装,集成一些原生功能,以实现在手机应用市场中下载、安装App应用的功能。实现该功能需要以下步骤:1.本地化存储将H5网站的所有文件从服务器
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3