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技术,作为一种基于Web标准的全新交互性语言,受到越来越多的开发者和企业的关注,愈发被应用于移动应用开发中。在这篇文章中,我们将详细介绍如何通过H5技术快速开发一款移动应用。#### 1.了解
2023-05-26
手机h5制作软件app
手机H5制作软件App是一种基于手机设备的HTML5网页制作工具,通过这种工具,用户可以在手机上直接进行网页设计和编程,而无需在电脑上进行操作。该工具通常提供了多种各种不同的模板和UI组件,可以让用户更加快捷地创建自己的网页,同时也可以使网页的表现形式更加
2023-05-26
uniapp 开发app 就是套h5吗
UniApp 是一款由DCloud公司推出的开发框架,可以同时基于同一套代码,支持编译到iOS、Android、H5、小程序、快应用等多个平台,实现跨平台开发。UniApp的开发原理:UniApp并不是基于H5技术来开发App,而是利用多个平台原生的Web
2023-05-25
h5做app框架
H5做APP框架是一种轻量级的移动应用开发方式,可以通过H5技术快速地创建一个移动应用,跨平台兼容性强,成本也相对较低。本文将介绍H5做APP框架的原理和详细步骤。1. 原理H5做APP框架是基于WebView来实现的,WebView是一个基于WebKit
2023-05-25
h5自动制作app
随着移动互联网的迅速发展,更多企业开始意识到移动应用的重要性。但是,对于大多数小型企业和个人开发者而言,制作自己的移动应用仍然很困难。幸运的是, HTML5 技术的出现让移动应用开发变得更加容易,并且让不懂编程的人也有机会自己制作移动应用。 在本文中,我将
2023-05-25
h5制作软件有哪些app
H5制作软件是一种可视化的H5页面制作工具,主要面向非专业制作人员,旨在让更多的人能够快速简单地制作出高品质的H5页面。下面是几款常见的H5制作软件。1. WPS专业版WPS专业版是一款专业的H5制作软件,它能够快速制作高品质的H5页面,支持视频、音频、图
2023-05-25
h5网页制作软件app
H5网页制作软件app是一种方便快捷的软件,可以帮助用户在手机上创建、编辑和发布H5网页。正如其名称,它是一款应用程序,专门设计用来制作HTML5网页的工具。它可以让用户轻松地创建各种类型的网页,包括单页网站、企业网站、移动应用、游戏、交互式故事、微型网站
2023-05-25
h5界面制作工具app
H5界面制作工具是一种可视化、无需编程知识即可制作H5页面的工具。这些工具可以帮助用户快速制作互动页面,包括动画、文字、音频和视频元素,让用户可以在网页上展示自己的创意和产品。目前市面上有很多H5界面制作工具,下面将简单介绍其中一个基于移动端的H5界面制作
2023-05-25
h5封装app和原生app区别
H5封装App和原生App都是其中一种App开发方式,但它们在实现方式、性能、可操作性、可扩展性和升级维护等方面有所不同。本文将介绍H5封装App和原生App的差异。## H5封装App的原理H5封装App是一种将网页嵌入移动端应用中的开发方式,不需要借助
2023-05-25
h5打包苹果app上架
H5打包苹果App上架,是最近几年来越来越流行的一种方式,它的优点是开发快速、维护便捷、成本相对较低、跨平台兼容性好等等。下面让我们来详细介绍一下H5打包苹果App上架的原理和步骤。一、原理H5打包苹果App上架的原理主要是借助于一些App打包工具,如Co
2023-05-25
h5打包app后的问题
H5打包APP,是将基于HTML5页面技术的Web应用程序打包成本地应用程序,使其能对本地资源、硬件等进行调用。H5打包APP主要解决了Web应用程序在移动端上的不兼容、响应速度不够快等问题,提供了更加流畅、高效的用户体验。H5打包APP的原理是,通过使用
2023-05-25
app用h5封装
在移动互联网的发展中,很多应用都是基于web技术实现的,这也成为了移动应用开发的一种趋势。而H5封装可以将web应用封装成一个app,方便了用户直接通过应用商店下载使用,并且可以使用一些原生功能,更加方便了用户的使用。本文将对H5封装的原理进行详细介绍。H
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3