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美观性的同时,同时调用安卓原生功能,进而增强应用的可用性。同时,在实现过程中,我们还需要认真审核所传递的参数的充分性、正确性,使得应用程序更加安全可靠。


相关知识:
在app上开发h5是什么意思
在APP上开发H5,是指利用HTML5、CSS和JavaScript等Web技术开发适用于移动端的网页应用程序。H5即HTML5,是一个新版本的超文本标记语言,是Web标准的重要组成部分,是Web应用实现互联的核心技术之一。H5可以在移动APP内嵌入的We
2023-05-26
在手机就可以制作h5小游戏的app
随着智能手机的普及,人们对手机应用程序的需求越来越高。与此同时,H5小游戏也成为了流行的娱乐方式,越来越多的人选择在手机上玩游戏。在这样的背景下,制作H5小游戏的app应运而生。H5小游戏app在设计上通常分为两种:即在线制作平台和离线开发工具。在线制作平
2023-05-26
免费的h5制作手机app
在过去,要开发一款手机应用程序需要掌握各种编程语言和技术。但现在开发一款移动应用已经变得更加容易。通过一些免费的h5制作工具,不需要太多编程知识您就能轻松创建一个app。接下来,将详细介绍一下免费的h5制作手机app的原理和方法。1. 什么是H5?H5是H
2023-05-26
基于h5开发旅游app
随着智能手机和移动网络的普及,旅游app已经成为越来越多旅游爱好者和游客的出行利器。而H5技术的不断发展和完善,使得基于H5开发的旅游app成为一个非常不错的选择,它不仅可以实现原生app的一些基础功能,还可以具有更高的可定制性和兼容性,同时,相比原生ap
2023-05-26
h5页面打包app工具
近年来,随着移动互联网的普及和发展,越来越多的企业、个人都希望能够推出自己的APP,通过这样的方式来提升用户体验、增加用户粘性,进而促进业务的发展。但是,对于一些小型企业或者个人来说,想要开发一个APP的成本很高,所以就需要一些打包工具来帮助将现有的H5页
2023-05-25
h5生成app能有离线推送吗
在移动互联网时代,APP已成为人们使用手机的主要方式。而对于一些没有开发经验的人来说,通过一些网站将H5页面转换成APP却成为了一种常见的方式。不过,转换成APP的H5页面有没有离线推送呢?我们来一步步探究一下。一、什么是离线推送?如果说我们使用APP,在
2023-05-25
h5开发app淘宝客
H5开发app淘宝客,简单来说就是在app中嵌入Web浏览器,通过浏览器来显示一些淘宝客网页,从而实现对淘宝客的功能。下面,我们来详细介绍一下H5开发app淘宝客的原理。H5是移动端web应用的一种常见开发方式,相比于传统的原生应用,H5应用具有开发成本低
2023-05-25
h5和vue做app
在移动端开发中,使用H5和Vue.js来进行App开发已经变得越来越流行。这种开发方式被称为混合开发,即通过Web技术构建App的界面和交互,同时利用原生代码实现App的一些特定功能。1. 前置知识在混合开发中使用到的技术主要有以下几项:- HTML5:用
2023-05-25
h5封装app工具
HTML5是一种用于网站和Web应用程序的标准编程语言。然而,在移动设备上,Web应用程序有时不能满足用户的需求。因此,为了提供更好的用户体验,许多开发者开始使用H5封装App工具。下面将对H5封装App工具的原理和详细介绍进行阐述。一、H5封装App工具
2023-05-25
h5app开发和原生app开发区别
H5 App开发和原生 App开发都是移动应用程序开发的方式,它们在技术层面上有着截然不同的工作方式和优缺点。本文将为您分别介绍H5 App和原生 App的开发原理和具体区别。一、H5 App开发H5 App是一种基于HTML5技术的Web应用,在移动设备
2023-05-25
h5编译后打包app
H5是指基于HTML5+CSS3+JavaScript的Web技术,其中包含了前端基础技术和部分后端技术,已经具备了运用到移动端的能力。由于H5技术在手机端已经填补了一部分原来只有原生开发才能实现的功能,现在越来越多的开发者将H5应用在移动App的开发中。
2023-05-25
app打包h5本地服务坑
随着移动互联网的普及和发展,越来越多的网站和应用都通过h5技术将页面和功能实现在浏览器上,这种方式在跨平台、开发效率和用户体验方面都有不少的优势。但是,很多时候我们需要将h5应用打包成app,这时候就会遇到一些坑,本文主要介绍这些坑以及原理。一、什么是打包
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3