APP封装从一门开始
一门提供APP封装底层开发框架,一键在线APP封装,200+原生APP模块,2000+JS映射接口按需自助封装

android开发h5传参数给app

在移动开发中,经常需要从H5页面向Native APP传递参数。而Android开发中,可以通过以下几种方式实现H5传递参数给APP:

## 1. JavaScript桥接

JavaScript桥接是H5与Native APP之间传递参数的最常用方式。它通过WebView提供的addJavascriptInterface()方法注册一个Java对象来实现通信。在H5中通过JS的window.android对象来调用Java对象的方法,Java对象就可以获取到H5传递的参数。

具体实现步骤:

1. 创建一个继承自Object类的Java对象,并在该对象中定义与H5交互的方法,并注解该方法。

```java

public class JsToAndroid {

Context mContext;

public JsToAndroid(Context c) {

mContext = c;

}

@JavascriptInterface

public void showMessage(String message) {

Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();

}

}

```

2. 将该Java对象绑定到WebView上

```java

webView.addJavascriptInterface(new JsToAndroid(this), "android");

```

其中第二个参数是H5页面中访问该Java对象的名称。

3. 在H5页面中调用Java对象的方法

```html

```

这样就可以在H5页面中调用Java对象的方法,实现向APP传递参数。

## 2. URL Scheme

URL Scheme是一种将参数附加在Url中的方式。通过调用该Url可以实现启动APP并传递参数的效果。具体实现步骤如下:

1. 定义APP的Url Scheme。

```xml

```

这里我定义了一个叫做“app://”的Url Scheme。

2. 在H5页面中调用该Url Scheme,并附加参数。

```html

打开APP

```

这里将两个参数id和name以键值对的形式附加在Url后面。

3. 在MainActivity的onCreate()方法中获取H5传递的参数。

```java

Intent intent = getIntent();

Uri uri = intent.getData();

if (uri != null && uri.getScheme().equals("app")) {

String id = uri.getQueryParameter("id");

String name = uri.getQueryParameter("name");

//TODO 做相应处理

}

```

这里通过调用Intent的getData()方法获取传递过来的Url,并从Url中获取id和name大家需要的参数。

## 3. Web应用程序接口(WebApp Interface)

对于一些没有太多APP功能的H5页面,可以考虑将其封装成WebApp应用,直接在浏览器中访问,无需安装APP。

具体步骤如下:

1. 在H5页面中使用JavaScript调用app运行的命令,如下所示:

```html

```

2. 在WebView的JavascriptInterface接口方法中拦截该命令,通过Reflect调用当前运行的app方法。

```java

public void invokeNativeMethod(final String call) {

new Handler(Looper.getMainLooper()).post(new Runnable() {

@Override

public void run() {

try {

Class clazz = MainActivity.this.getClassLoader()

.loadClass("com.android.app.MainActivity");

Object instance = clazz.newInstance();

Method method = clazz.getMethod(call);

method.invoke(instance);

} catch (Exception e) {

Log.e(TAG, "Native method invoke failed.", e);

}

}

});

}

```

通过反射加载app中的类、创建实例和调用其对应方法。

总体来说,以上三种方式都能实现将H5页面中的参数传递给APP。选择何种方式要看具体的需求和场景。JavaScript桥接方式使用较多,而URL Scheme则更适用于从H5页面中打开APP的情况。如果需要在浏览器中运行,则可以考虑WebApp Interface。


相关知识:
怎么浏览h5做的手机app界面
要浏览基于H5技术实现的手机APP界面,我们需要了解一些基本原理和技术,包括H5技术、混合开发技术以及APP打包等。下面就来详细介绍一下这些知识点。**H5技术**H5(HTML5)是一种新一代的Web标准,主要包括HTML、CSS、JavaScript等
2023-05-26
什么app可以做h5的邀请函
H5邀请函相较于传统的纸质邀请函,更具有艺术性、交互性以及环保节能的特点,随着网络架构和技术的不断完善,H5邀请函的制作也逐渐走入了人们的视野。那么,究竟有哪些App可以实现制作H5邀请函呢?1. 路过路过是一款非常流行的设计软件,它不仅可以制作邀请函,还
2023-05-26
开发app与开发h5费用哪个高
开发移动应用和开发 Web 应用无疑都是现代数码领域中最普遍的开发形式。两种形式的应用都有其自身优点和缺点。尤其对于新手开发者而言,选择何种开发形式也需要进行一定的思考,其中海外开发app与开发h5费用更是大家关心的问题。开发移动应用开发移动应用就是利用
2023-05-26
h5移动app开发教程
移动应用程序(mobile app)已经成为了现代人们生活中必不可少的一部分,而其中大部分的应用都是基于IOS或者Android平台开发的。然而,作为国内近些年来快速兴起的一种技术,H5也开发出了很多非常成功的移动应用程序。H5移动应用程序是基于HTML5
2023-05-25
h5用什么app制作
H5,又称HTML5,是最新的HTML标准。它支持丰富的媒体内容,改变了Web开发方式,使得应用程序有更好的表现和功能。在制作H5页面时,我们有很多工具可供选择。下面将为您介绍几个比较受欢迎的APP制作H5的工具和原理。1. Axure RPAxure R
2023-05-25
h5页面打包app下载
在移动互联网时代,APP已成为人们生活的重要组成部分,在各大应用市场已有数不清的APP,那么对于一些小型企业或个人博主想要推广自己的产品和服务,如何快速实现APP的制作和发布呢?这就需要借助H5页面打包APP,下面为大家介绍一下具体的原理和步骤。一、H5页
2023-05-25
h5如何做出app的效果
随着5G技术的到来和移动设备的不断普及,移动应用程序(APP)已经成为人们日常生活中必不可少的工具之一。而对于很多开发者来说,使用H5技术开发APP已经成为一个不错的选择。本文将介绍H5如何实现APP效果的原理和详细步骤,帮助大家更好的理解和运用。一、H5
2023-05-25
h5旅游app开发价格
H5旅游App是基于H5技术进行开发的一种移动端旅游应用程序。相 较于原生App,H5旅游App的开发周期短,同时也易于更新和维护,能够快速搭建 一个品牌旅游App。对于一般的小企业来说,H5旅游App已足以满足市场需 求。以下是关于H5旅游App开发的详
2023-05-25
h5开发短视频app
随着智能手机的普及以及5G网络的全面推广,短视频行业已经逐渐崛起成为一种新型的娱乐方式。而基于HTML5技术的短视频APP,就是其中的一种。HTML5 是最新的 HTML 标准,包括 HTML、CSS 和 JavaScript 三大组成部分,被广泛应用于互
2023-05-25
h5开发app打开gps
H5开发App打开GPS,需要通过HTML5的Geolocation API来实现。Geolocation API是支持地理位置定位的API,通过Geolocation API可以获取当前设备的地理位置信息。在HTML5中,浏览器对地理位置信息进行集成,支
2023-05-25
h5封装app扫一扫调用不起来
H5封装App是一种将H5网页应用封装成原生应用的技术手段,可以让网页应用更流畅、更具交互性,并且可以获得更多的原生功能。在实现H5封装App的过程中,常常会遇到一些问题,比如扫码调用不起来的问题。本文将介绍H5封装App扫码调用不起来的原理和解决方法。1
2023-05-25
h5封装app平台
H5封装APP平台,又叫H5混合开发,是一种新型的移动应用软件开发方式,它是将Web开发的HTML、CSS和JavaScript技术,以及移动APP的本地特性进行混合开发的一种解决方案。这种开发方式减少了手机APP开发的复杂性和时间,同时也增强了业务控制和
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3