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技术,如HTML、CSS和JavaScript,使应用程序可以在不同的设备和浏览器上运行。下面将介绍一些利用HTML5技术开发的应用程序,并分析其实现原理和特点。1. P
2023-05-26
天津专业h5打包app稳定
H5是一种基于HTML、CSS、JavaScript等技术实现的网页应用程序。相比于原生应用程序,H5应用程序没有操作系统和硬件的限制,可以跨平台运行,具有开发效率高、运维成本低等优点。然而,H5应用程序也有其缺点,比如在性能上不如原生应用程序好,加载速度
2023-05-26
免费制作h5游戏的app
制作h5游戏,有许多途径可以实现。其中最为简单的方法之一,就是通过一些免费的app让普通人也能流畅地完成制作。首先,我们需要了解一些相关的概念。h5游戏指的是“基于html5技术的游戏”,主要是通过html5实现的Web前端技术进行游戏制作,然后再借助Ja
2023-05-26
h5制作app的框架
H5制作app的框架就是指使用HTML5、CSS3、JavaScript等Web技术来进行移动应用程序开发的一种模式。这种方式的优势在于开发成本和时间更短,跨平台性更好,而且开发者无需精通Java、Objective-C等原生语言,就能够进行开发。下面,我
2023-05-25
h5与app的开发成本
随着移动互联网的发展和普及,越来越多的企业开始考虑开发自己的移动应用程序(App)来拓展业务。然而,开发一款高质量的App需要付出不小的成本和精力。与此同时,HTML5技术也越来越成熟,使得使用HTML5技术开发移动应用程序成为了一种越来越受欢迎的选择。那
2023-05-25
h5网站打包app打包
将H5网站打包成APP是一种常用的开发方式,它能够将H5网站转变成一个原生的应用程序,并在应用商店中发布。在今天的移动应用市场中,这种方式成为了非常流行的选择,因为它可以快捷地将网页内容变成移动应用。H5网站打包APP的原理是将H5网站的内容嵌入到一个原生
2023-05-25
h5封装app上架苹果商店
在移动应用市场上,苹果商店(App Store)是世界上最大的移动应用市场之一。因此,对于大多数开发者来说,在苹果商店上架应用程序被认为是软件产品成功的重要里程碑之一。而基于web技术的H5应用程序在市场上也越来越普及,这也导致许多开发者想要将H5应用发布
2023-05-25
h5封装app后怎么保持登录状态
在H5封装App的开发过程中,我们会遇到一些问题,其中之一就是如何保持登录状态。对于一个需要登录才能使用的App来说,保持登录状态对于用户体验和功能实现来说都至关重要。在H5封装App中,保持登录状态实际上是在Native与Web之间进行数据交互的过程。具
2023-05-25
h5封装app平台
H5封装APP平台,又叫H5混合开发,是一种新型的移动应用软件开发方式,它是将Web开发的HTML、CSS和JavaScript技术,以及移动APP的本地特性进行混合开发的一种解决方案。这种开发方式减少了手机APP开发的复杂性和时间,同时也增强了业务控制和
2023-05-25
h5打包app顶部
在 Web 开发中,我们可以使用 H5 技术来开发移动端应用。不过,H5 应用要想在各大应用商店中被用户接受,还需要具备一些原生应用的特性。其中,一个重要的方面就是应用的顶部栏。本文将详细介绍如何使用 H5 技术实现应用顶部栏的功能,并打包为 App。##
2023-05-25
h5打包app的教程
HTML5是一种非常流行的Web开发语言,它能够创造出许多丰富的Web应用程序。但是,在移动设备上,特别是在iOS和Android上,HTML5 Web应用程序仍然无法与原生应用程序相比较。这是因为原生应用程序具有更好的性能和用户体验。但是,如果你希望将你
2023-05-25
app做h5是什么
App做H5即指在移动应用内嵌入H5页面,通过Web View展示。这种行为也被称之为Hybrid开发模式。它结合了Native和Web两者的优点,Native可以提供更为流畅的用户体验,Web可以通过简单易用的技术实现快速迭代与灵活扩展。在App做H5模
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3