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)是一种用于Web开发的编程语言,最近越来越多的开发人员将其用于开发移动应用程序。使用HTML5开发移动应用程序的好处之一是可跨多个操作系统和设备类型进行部署,并且可以节
2023-05-26
免费h5制作app有哪些
HTML5应用开发是一个快速发展的领域,也是移动应用开发趋势的未来。H5应用开发通常以网页为载体,可以在多种平台上运行。而免费H5制作APP则是一些提供在线服务的平台,在这些平台上,用户可以通过简单的拖拽操作,将页面元素组合成APP,并进行一系列的编辑和设
2023-05-26
哈弗h5开发app
哈弗h5开发app,指的是使用基于web技术的应用开发框架,如Cordova/PhoneGap、Hbuilder等,结合哈弗自有的技术与能力,快速、高效地开发手机应用程序。Hafer H5为开发者提供了一种基于HTML5和CSS3的应用开发框架,可以使用H
2023-05-25
hbuilderx h5打包app原理
HBuilderX是一个跨平台的前端开发IDE,支持多种语言和框架,并且提供了强大的打包工具,可以将H5应用打包成为原生App。在HBuilderX中,打包H5应用为App的原理主要包含以下几点:1. WebView和原生容器交互在H5应用中,我们大多数情
2023-05-25
h5制作app软件有什么
H5是一种基于Web标准的技术,可以轻松创建具有高效性和可移植性的丰富 Web 应用程序(Rich Web Applications,简称 RIA)。由于 H5 编写的程序使用标准 Web 技术,因此它们可以在多种设备和平台上运行,而不必为每个平台单独开发
2023-05-25
h5制作app哪款好
随着移动互联网的普及,越来越多的企业开始注重自己的移动应用开发。HTML5作为一种新型的开发技术,具有跨平台性、较小的更新成本和灵活性等优势,受到了越来越多开发者和企业的青睐。那么,哪款H5制作APP的工具比较好呢?接下来,本文将为大家介绍一些较为常用的H
2023-05-25
h5页面封装app多少钱
H5页面是一种轻量级的网页形式,在移动应用开发中也得到广泛的应用。在将H5页面封装成APP方面,有多种不同的方法和工具可供选择,因此费用也有所不同。本文将介绍H5页面封装成APP的原理、常用方法和封装过程中需要考虑的因素,以及相应的费用情况。一、H5页面封
2023-05-25
h5生成app打包上架
随着移动互联网的快速发展,越来越多的企业开始意识到移动应用的重要性。对于一些小企业或个人而言,想要在移动应用市场推出自己的应用,往往需要花费大量的时间与金钱,而H5生成App则成为了一种快速、简单、便宜的解决方案。本篇文章将介绍H5生成App的原理以及详细
2023-05-25
h5封装app费用
H5封装App指的是使用HTML5技术进行App开发,通过封装处理后,可以在移动设备上直接安装和使用。相对于原生App,H5封装App的开发成本更低、开发速度更快、跨平台性能好,同时具有与原生App相似的使用体验,因此被越来越多的企业和开发者采用。下面将从
2023-05-25
h5打包app软件godiva
Godiva是一款基于HTML5技术的移动应用打包软件,它可以将HTML5页面打包为原生的iOS和Android应用程序,使开发者可以在不会原生开发的情况下,快速打包自己的应用,降低成本,提高开发效率。Godiva的打包原理主要是将应用程序中的HTML5文
2023-05-25
h5 app开发模板下载
H5 App是一种通过基于Web技术栈开发的Hybrid App,它让Web App在移动端上具有了更好的性能和用户体验,并且可以享受原生App的部分功能和特性。随着H5 App的不断发展,越来越多的人开始尝试使用H5 App进行开发,许多团队也为此推出了
2023-05-25
app开发h5模板
H5模板是一种用于开发移动应用的Web技术,它能够实现跨平台的开发,可以在多种操作系统和设备上运行。在移动应用领域,H5模板的应用非常广泛,尤其是在APP的快速开发中,使用H5模板可以节约开发成本,提高开发效率。一、H5模板的原理H5模板原理是基于HTML
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3