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平台,让普通用户可以快速和简单地创建自己的应用
2023-05-26
webpack怎么打包到h5和app
Webpack是一个开源的JavaScript模块打包工具。它的主要目的是将打包文件最小化,达到更快的加载速度。其中H5(Web)和App分别对应着web页面和移动应用,下面将分别介绍如何使用Webpack打包到H5和App中。一、打包到H5Webpack
2023-05-25
h5做的app有哪些
HTML5技术是基于网页的技术,但是在移动端,可以通过打包技术将网页包装成原生应用程序,也就是常说的混合应用程序。那么,H5做的app都有哪些呢?1.微信小程序微信小程序在2017年初推出,使用HTML5语言进行开发。小程序仅需提供小程序目录及基本文件,用
2023-05-25
h5自行打包为app
H5(HTML5)是一种基于网页标准的技术,可以实现跨平台应用程序的编写。H5技术可以在各种设备,包括手机,平板电脑和电脑上使用,因此,它已成为移动应用程序开发的重要组成部分。H5应用程序在浏览器中运行,但是,有时候我们需要将它打包成一个独立的应用程序,以
2023-05-25
h5转app生成
近些年,移动端开发领域呈现出了一种新的趋势——将网站或者Web应用转化为移动应用,以便于在移动端进行访问和使用。为了满足用户的需求,出现了一些H5转APP的在线工具和开发框架,使得H5转换成APP变得更加便捷。H5转APP的原理H5转APP的基本原理是将H
2023-05-25
h5制作软件app排行榜
随着移动设备在人们生活中的普及,越来越多的公司和个人开始注意到移动应用的市场潜力,也出现了越来越多的app制作软件。在这篇文章中,我将介绍一些常见的制作h5应用的软件,并和大家分享相关软件的排名原理以及详细介绍。1. WapplerWappler是一款兼顾
2023-05-25
h5制作app文档介绍内容
HTML5是一种标准化的Web技术,可以实现跨平台的Web应用程序开发,因此它成为了移动应用开发的一个重要工具。利用HTML5,我们可以通过缩小浏览器窗口来测试应用程序的兼容性,然后将它们导出为包含“manifest”的文件。这样,无论是在桌面端还是移动设
2023-05-25
h5网站免费生成app
近年来,移动应用程序的使用率日益增长,许多公司和个人都开始考虑将自己的网站转化为移动应用程序,以吸引更多的用户。但是,为了开发一个本地应用程序,需要专业的开发技能和大量的时间和资金投入。因此,一些网站开始免费提供将H5网站转化为应用程序的服务,让用户可以轻
2023-05-25
h5开发app用什么
H5开发APP可以让开发者利用Web技术和Native API实现原生APP的功能,方便移动端开发。H5即指HTML5,是HTML标准的第五个版本,支持新的元素、属性、CSS3以及JavaScript API等。H5开发APP主要有两种方式:Webview
2023-05-25
h5混合开发app全部课程
H5混合开发是指使用HTML、CSS和JavaScript开发本地移动应用程序的技术,配合使用原生代码,让应用具有原生应用的体验。本文将详细介绍H5混合开发的原理和步骤。H5混合开发的原理:H5混合开发原理基于WebView组件,WebView是Andro
2023-05-25
app原生和h5混合开发的区别在哪
App原生和H5混合开发是目前移动端应用开发中的两种重要方式。原生应用是使用原始编程语言进行开发的应用程序,可以由单一的开发人员或团队开发。而H5开发是指使用Web技术(HTML、CSS和JavaScript)进行开发的应用程序,并可以使用跨平台框架进行部
2023-05-25
app手工打包h5
在移动互联网时代,很多企业和个人都开发了自己的APP,但是,随着HTML5技术的广泛应用,在开发APP的过程中,很多人会选择采用H5技术来进行开发,那么在开发完H5页面后,如何将其打包成一个APP呢?APP的打包技术相对来说比较复杂,但是因为H5技术的优势
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3