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作为移动端的主要入口,其推广也变得越来越重要。为了推广APP,我们可以制作一些H5页面来引导用户下载和使用APP,今天就来详细介绍一下制作APP推广H5模板的原理与步骤。一、原理介绍A
2023-05-26
原生开发app与h5
APP是指应用程序,是一种在手机或平板等移动设备上运行的软件。与之相关的原生开发环境是指使用SDK、NDK等开发语言和工具集成开发的应用程序。而H5是指基于浏览器的网页应用,它是使用HTML、CSS和JavaScript等标准Web技术进行开发的。下面我们
2023-05-26
有公司使用h5开发app吗
随着移动互联网的发展,越来越多的企业开始进行APP的开发以迎合用户需求,而H5技术也逐渐开始被应用于APP开发中。H5是一种基于HTML5、CSS3、JS等Web技术的移动开发方式,其主要优点在于可以实现跨平台、快速迭代、低成本等特点。由于不同于原生APP
2023-05-26
手机h5页面制作app视频教程
手机H5页面制作APP是移动互联网领域中的热门话题之一,本文将介绍手机H5页面制作APP的原理和详细的教程。一、H5页面简介H5页面,也叫HTML5页面,是指使用HTML5语言编写的网页。HTML5是HTML的第五个版本,仍然是最新版本,而且是HTML标准
2023-05-26
h5做app哪个好
在当前的移动互联网时代,不可否认,APP已经成为了一种趋势与潮流。快速开发、体验优化、定制化等特点,让越来越多的企业、机构和个人选择了APP作为客户端来展示自身产品或服务。而在APP开发的过程中,如何选择合适的技术方案,也成为了许多开发者和业内人士所关注的
2023-05-25
h5做直播app安卓版
随着移动互联网的发展,直播已成为人们生活中必不可少的一部分。直播平台也层出不穷,其中就包括了H5做直播app的安卓版。H5(HTML5)作为一种新一代的web标准,具有越来越广泛的应用场景。在移动互联网时代,H5技术被广泛应用于手机网页、小程序、微信公众号
2023-05-25
h5制作app和原生区别
H5是一种基于网页技术,使用HTML5、CSS3和JavaScript等技术的开发方式,可以实现跨平台的应用开发,具备一定的可移植性和开发效率。而原生应用则是使用特定平台的原生语言编写的应用程序,它们运行在特定平台的操作系统上,需要针对不同平台开发不同的应
2023-05-25
h5开发app怎么运行快
H5开发app是近几年来越来越流行的一种方式,通过H5技术开发的App可以实现跨平台运行,降低开发成本和时间成本,并且具有良好的可维护性。然而,有些人反映运行速度较慢,怎么办呢?下面将介绍一些优化方法。一、减少HTTP请求提高H5应用程序的性能,最重要的是
2023-05-25
h5打包app白屏
在使用H5技术构建混合应用时,我们经常会遇到打包后应用白屏的问题。这个问题一般表现为打开应用后,屏幕是一片空白,没有任何内容显示。这与原生应用不同,原生应用在启动时会有启动画面,而H5应用则需要加载页面资源,因此当页面资源出现问题时就很容易出现白屏问题。白
2023-05-25
h5打包app红米无法跳出app打开链接
H5 打包 App,即将网页封装成 APP 的形式运行,使用户能够在手机上直接访问该网页,不需要浏览器访问。现在 H5 打包 App 确实越来越受欢迎,而小米的红米手机也非常受欢迎,但是红米手机有时候会出现 H5 打包 App 不能跳出 app 的问题,下
2023-05-25
app开发时是否需要开发h5
在移动应用开发中,H5技术在很多应用中都有着广泛的应用。那么,什么是H5技术呢?H5,即HTML5,是一种广泛应用于网页设计和开发的技术。HTML5不仅可以创建更具交互性的网页,还可以使网页具有更好的标志性、更好的语义性、以及更好的多媒体支持。H5技术通过
2023-05-25
app局部内嵌h5页面开发
随着移动终端的普及,许多应用程序也逐渐采用了Web技术作为其开发工具。通过将H5(HTML5)页面作为应用程序的一部分来开发,可以实现应用程序的动态化或可扩展性,同时也能够降低开发成本。在此过程中,将H5页面嵌入应用程序是一个非常重要的环节,而H5页面的嵌
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3