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技术的手机应用软件。它能够在用户手机的浏览器中直接运行,可以让用户像使用原生APP一样,通过触摸屏幕来浏览、操作以及获取信息、服务等。H5技术是基于HTML5、CSS和JavaScript等核心技术的一种开发技术。相比原
2023-05-26
制作h5的免费app
想要制作H5的免费APP,可以通过利用现有的在线制作工具以及开源软件库来实现。1. 在线制作工具目前市面上有很多在线制作H5 APP的工具,比如Wappler、Appy Pie、AppMakr等。这些工具可以让用户不需要编写代码,便可以制作出各种类型的AP
2023-05-26
在app上开发h5是什么意思
在APP上开发H5,是指利用HTML5、CSS和JavaScript等Web技术开发适用于移动端的网页应用程序。H5即HTML5,是一个新版本的超文本标记语言,是Web标准的重要组成部分,是Web应用实现互联的核心技术之一。H5可以在移动APP内嵌入的We
2023-05-26
用h5网页制作的app
随着互联网技术的不断发展,越来越多的网站开始采用H5技术进行网页制作,并且利用H5技术产生了一种新的应用方式:用H5网页制作app。现在,越来越多的公司和开发者开始投入H5网页制作app的研发和推广中。那么,如何用H5网页制作app呢?首先,需要思考的就是
2023-05-26
使用mui开发h5后是app
MUI是一款轻量级的前端框架,可以帮助开发者快速构建出各种类型的移动端应用程序,包括 Android 和iOS 平台上的应用程序。在使用 MUI 开发 H5 后转变成 App 的过程中,主要依靠了 HBuilderX 开发工具提供的打包编译功能,具体过程如
2023-05-26
maka h5制作app
H5制作App实际上就是通过H5技术实现原生应用的效果。H5是指使用HTML5、CSS3和JavaScript等Web前端技术来开发应用程序。H5技术已经非常成熟,不仅可以开发网站、移动端页面等,还可以通过一些框架和技术实现App开发。一、H5制作App的
2023-05-25
h5购物app开发教程
HTML5是一种完整的开发语言,它能够让你轻松的开发iOS和Android平台上的应用程序。本文将介绍HTML5作为开发移动购物app的方法。首先需要了解一些相关基础技术。HTML5是Web技术的最新版本,可以通过手机浏览器和Webview(用于嵌入应用程
2023-05-25
h5混合开发平台app
随着移动互联网的快速发展,原生应用和H5应用都在不断地被使用和探索。在这两种应用中,原生应用的性能、用户体验,以及应用生命周期的管理方面有着不可取代的优势。但同时,基于H5技术开发出的应用也具有很多优点,如跨平台、动态更新等等。因此,在实际的应用场景中,我
2023-05-25
h5 app开发视频
HTML5 App开发是近年来非常流行的手机应用程序开发方式。与传统的Native App相比,HTML5 App具有跨平台、维护成本低、开发速度快、运行环境自适应等优势。本文将为您介绍HTML5 App开发的原理及详细介绍。一、HTML5 App开发的基
2023-05-25
h5 app开发框架实战
H5 App是一种运行在移动设备的web应用程序。H5 App的开发与传统的web开发相比,需要考虑更多的兼容性和性能问题。因此,利用框架可以提升开发效率和应用性能,降低开发难度。一、H5 App开发框架的目的H5 App开发框架的目的是为了让开发者快速地
2023-05-25
h5 app 移动开发框架
H5 app 移动开发框架是基于 HTML5 技术实现的一种移动应用开发框架。它可以在手机上直接通过浏览器访问,无需下载安装应用,具有跨平台和可维护性好等优势。这种开发框架的原理就是通过 HTML5 技术实现页面渲染和数据处理,并在浏览器中模拟原生应用的交
2023-05-25
app与h5混合开发
H5开发环境在市场上向来受到欢迎,因为其兼容性好、技术门槛低,对开发者来说是一种非常方便的开发方式。然而,H5开发也有一个致命的问题,即不能实现一些功能,例如本地推送和调用设备硬件。为了解决这些问题,app与h5混合开发应运而生。所谓app与h5混合开发,
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3