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
随着移动互联网的快速发展,越来越多的企业开始关注移动应用开发。然而,传统的移动应用开发方法可能存在一些问题,比如开发周期长、成本高、兼容性差等。而近年来,HTML5 技术的广泛应用为这一问题提供了一种全新的解决方案。H5,在移动应用开发中指的是利用 HTM
2023-05-26
可以做h5的app
H5(HTML5)是一种基于Web技术的开放标准,可以用来创建现代化的网页应用程序。H5程序的开发和维护成本较低,并且可以在多个平台和设备上运行。因此,在移动应用程序市场中,H5应用程序变得越来越流行。本文将探讨如何使用H5技术构建原生应用程序(App)。
2023-05-26
安卓开发配合h5开发app
随着智能手机和移动互联网的普及,APP已经成为人们生活中必不可少的应用,而移动端APP开发也成为了一个非常热门的话题。而现在,通过h5开发app已经成为一种趋势。随着HTML5技术的发展,越来越多的开发者选择使用HTML5技术开发APP,因为它可以在多种设
2023-05-25
ios做电商app用原生还是h5
iOS做电商APP时,我们面对的一个问题是:应该选择原生开发还是使用H5技术。这取决于许多因素,我们需要仔细考虑这些因素。接下来,我将从技术角度和用户体验角度来分析选择原生还是H5的优缺点。1. 技术角度(1)原生开发如果我们选择原生开发,我们将需要使用i
2023-05-25
h5制作app哪款免费
HTML5技术可以使用一些工具和软件制作APP。在这篇文章中,将会为大家介绍如何利用网页制作APP的原理,以及几款免费的H5制作APP工具和软件。1. 基本原理H5制作APP的基本原理就是使用H5技术制作网页,然后通过一些工具将网页封装成APP。这些工具会
2023-05-25
h5原生开发app
HTML5是一种用于网页制作的标准的第五次重大更新,它是一种具有良好可读性、可扩展性和适应性的新一代语言,可以用于创建各种类型的网页、应用程序和游戏。与其他技术相比,HTML5可以让开发人员更容易地创建跨设备和平台的应用程序,包括桌面、移动设备和智能电视。
2023-05-25
h5页面软件制作app
HTML5技术是目前非常流行和广泛应用的技术之一,它可以用于网站开发和移动应用程序开发,同时还可以跨平台使用,因此非常受到欢迎。在移动应用程序开发领域,HTML5应用程序也被称为“H5应用程序”,它不需要依靠特定的平台,而只需要通过浏览器来运行。在移动应用
2023-05-25
h5商业app开发是什么
H5商业App开发,简称H5 App开发,是一种基于HTML5技术的手机应用开发方式,通过HTML、CSS、JavaScript等Web前端技术开发实现手机应用功能,在手机浏览器中运行无需下载安装,用户只需在手机浏览器中打开网页即可使用。相较于Native
2023-05-25
h5免费在线封装app
随着智能手机和移动互联网的普及,越来越多的企业和个人希望能够推出自己的APP。但是对于开发APP的门槛比较高,需要懂得编程等技术,因此很多人会选择使用在线封装工具来实现简单的APP制作。其中比较常见的就是基于H5技术的免费在线封装APP工具。H5作为一种基
2023-05-25
h5可以打包app吗
HTML5(H5)是一种用于结构化文档和网页设计的标准,具有极高的跨平台和可扩展性。在过去几年中,随着H5技术的不断成熟和应用场景的不断扩展,许多开发者开始研究如何将H5应用于移动应用程序的开发中,其中包括将H5打包为原生应用程序的实现。H5可以通过一些插
2023-05-25
h5封装app 推送消息
H5封装App的推送消息功能可以使用第三方SDK或者自己编写服务器端程序实现。在此介绍一下原理和实现方法。一、原理当应用程序关闭后,如果需要给用户推送消息,需要使用推送服务。例如苹果的APNS,安卓的FCM,均是向对应服务端发送推送请求,服务端再将推送消息
2023-05-25
h5 制作 app
HTML5是Web前端技术中的一项重要技术,它利用HTML5的各种特性来制作实现跨平台的应用程序,从而达到了制作APP的效果。下面介绍h5制作APP的具体原理和步骤。1. 原理利用HTML5框架可以实现在Web浏览器上运行的应用,而移动平台上的浏览器可以通
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3