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页面可以使用很多工具和软件,这些工具具有不同的特点和目的,适用于不同的项目要求和个人需求。本文将介绍其中几种比较常见的H5制作工具和软件,并简要讲解它们的原理和特点。1. HBuilderXHBuilderX是一款非常受欢迎的HTML5开发工具,在
2023-05-26
用h5做了个app
随着移动互联网的快速发展,越来越多的企业和用户开始借助移动应用(App)来进行业务或生活活动。但是,移动应用的开发成本较高,对于一些小企业或个人开发者来说,成本并不是很经济实惠。因此,越来越多的人开始将目光投向了H5应用。H5应用是利用HTML5、CSS3
2023-05-26
手机app开发h5
在现今的移动互联网时代,手机应用程序越来越受到人们的欢迎。为了满足不同用户的需求,很多公司或开发者开始采用HTML5技术开发手机应用程序。那么,什么是手机app开发h5呢?本文将会为大家详细介绍手机app开发h5的原理和流程。一、什么是H5H5(HTML5
2023-05-26
三方支付原生app和封装h5的差别
随着移动支付的普及,三方支付APP和封装H5的移动支付方式也越来越常见。在使用过程中,很多人会对两者之间的区别产生疑问,下面将从原理和详细介绍两个方面来解答这个问题。原理三方支付原生APP和封装H5的区别在于技术实现方式。原生APP指的是使用移动操作系统提
2023-05-26
免费h5页面制作app
在现代社会中,移动互联网的普及率越来越高,越来越多的企业与个人都在寻求一种快速制作h5页面的方法,以满足不同需求。在此背景下,一些免费的h5页面制作app应运而生。一、h5页面在制作h5页面之前,我们需要了解h5页面的概念和作用。所谓h5页面,是指以HTM
2023-05-26
免费制作h5游戏app
在当今移动互联网飞速发展的时代,H5游戏已经逐渐成为了一个热门话题。与传统的PC端游戏不同,H5游戏可以直接在浏览器中运行,无需下载安装,更加方便、易于推广。那么,如何利用现有的工具免费制作一款H5游戏APP呢?下面将为大家详细介绍原理和步骤。## 一、原
2023-05-26
框架h5开发app
随着移动互联网的发展,越来越多的企业开始尝试开发自己的移动应用。然而,移动应用的开发成本往往很高,而且技术门槛也很高。为此,一些优秀的开发人员开始推荐使用框架H5开发APP,这种方法能够省去很多开发成本和技术门槛,并且可以快速地开发出一款优秀的APP应用。
2023-05-26
hbuilder h5 app开发
HBuilder是一款集成开发环境(IDE),专为使用HTML5、CSS、JavaScript创建WebAPP和移动端应用的开发者设计。它提供完整的WebAPP制作解决方案,帮助程序员们轻松地开发出高级应用程序。HBuilder基于HTML5、CSS、Ja
2023-05-25
h5制作app软件有啥
H5(HTML5)是最新一代的HTML标准,它支持多种设备和多种浏览器,并且支持本地存储和缓存。随着移动互联网的普及,越来越多的应用程序需要适应不同尺寸的移动设备,H5制作APP软件的优势显而易见。H5制作APP软件其实不是真正的APP,而是一种基于Web
2023-05-25
h5游戏app怎么制作
H5游戏APP是指使用HTML5技术开发的游戏,可以在手机浏览器内或者是使用移动端应用程序运行。相比传统的应用程序开发,使用H5技术可以跨平台、节约开发成本、提升用户体验等多方面优势。下面,我们将从制作原理、详细介绍等方面进行讲解。一、制作原理H5游戏AP
2023-05-25
h5打包app软件
在网络时代,移动互联网的崛起推动了手机应用的普及,越来越多的人开始使用智能手机。为了方便用户,许多网站和应用程序都提供了打包成APP的功能,这意味着用户可以通过下载APP来使用网站或应用程序的服务,而无需每次都输入网址或访问应用程序。打包APP的技术并不神
2023-05-25
h5 网页 打包 app
H5网页的打包成APP实现了将其运行于移动设备上的功能,使网站App的开发成本和开发周期减少,从而更快地推出产品。对于拥有维护团队和技术实力的网站、电子商务或游戏公司,这种方式是一个不错的选择。本文将介绍H5网页打包成APP的原理和实现。一、原理在介绍H5
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3