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邀请函具有更强的互动性、更灵活的制作和更便捷的分享方式。在微信H5邀请函制作方面,有很多在线网站和APP可供选择,其中免费的微信H5邀请函制作APP包括名片全能王、XX制微信H5邀请函等
2023-05-26
h5做的app如何离线推送消息
离线推送消息是指,在用户离线或未打开应用程序的情况下,应用程序可以通过推送通知的方式向用户推送消息。实现这种离线推送的方式有很多种,最常见的是使用苹果推送服务(APNs)和谷歌云推送服务(FCM)。本篇文章将介绍如何使用APNs和FCM来实现h5做的app
2023-05-25
h5制作手机app有哪些
HTML5作为互联网技术的重要组成部分,近年来也在移动开发领域得到了广泛应用。H5制作手机APP是将HTML5技术应用到移动APP开发中,可以让开发者更快速地完成APP的开发,并在多个平台上实现跨平台移植。一、原理介绍H5制作手机APP的原理就是利用HTM
2023-05-25
h5制作app的框架
H5制作app的框架就是指使用HTML5、CSS3、JavaScript等Web技术来进行移动应用程序开发的一种模式。这种方式的优势在于开发成本和时间更短,跨平台性更好,而且开发者无需精通Java、Objective-C等原生语言,就能够进行开发。下面,我
2023-05-25
h5页面制作的app
随着智能手机和平板电脑的普及,移动设备上的H5页面制作已经成为了一个重要的领域。很多企业都开始意识到了移动端的重要性和潜力,开始尝试将自己的服务、业务或产品移植到移动端上。而H5页面制作正是为这些需求而生的。H5页面(也称为HTML5页面)是使用HTML、
2023-05-25
h5开发app框架对比
HTML5是一种跨平台的编程语言,可以被用于开发Web应用程序和本地应用程序。而随着移动设备市场的蓬勃发展和移动应用程序的需求的增加,HTML5的优点也越来越受到重视。本文将介绍一些流行的HTML5应用程序框架及其特点,以便于开发人员选择合适的框架来开发应
2023-05-25
h5开发app入门
H5开发APP,也称为Web App,是一种基于Web技术,通过跨平台技术实现APP应用的开发形式。H5开发APP的入门需要了解以下的原理和技术。一、H5开发APP的优点1.跨平台性好:H5开发的APP可以在不同的平台上运行,只需要在浏览器中打开即可,无需
2023-05-25
h5混合跨平台app开发框架
随着移动互联网时代的来临,人们对于移动应用的需求越来越大。而对于开发者来说,为不同的移动端开发不同的应用程序非常费力费时,所以一些跨平台开发框架应运而生。目前比较流行的跨平台框架有React Native、Flutter、Ionic等。而在这些框架中,H5
2023-05-25
h5封装app平台
H5封装APP平台,又叫H5混合开发,是一种新型的移动应用软件开发方式,它是将Web开发的HTML、CSS和JavaScript技术,以及移动APP的本地特性进行混合开发的一种解决方案。这种开发方式减少了手机APP开发的复杂性和时间,同时也增强了业务控制和
2023-05-25
h5 app开发
H5 app开发是一种基于HTML5技术的跨平台应用开发模式。H5 app开发主要利用HTML5、CSS、JavaScript等技术,通过浏览器来运行应用程序,可以在不同终端(安卓、iOS、Web等)上实现一次性编写、跨平台运行的效果。下面我们来详细介绍H
2023-05-25
h5 app快速开发框架
H5 App快速开发框架是基于HTML5技术,使用Javascript和CSS3等前端技术搭建的框架,旨在帮助开发者快速搭建和发布基于H5的移动应用。H5 App框架具有高效的时间和开发效率优势,并且可以快速进行开发迭代,易于维护和升级。H5 App框架的
2023-05-25
app h5开发框架
随着互联网技术的不断发展和移动设备的普及,H5技术也随之兴起。H5开发框架是一种常用的手机应用程序开发软件,大大简化了使用H5技术开发手机应用的难度并提高了开发效率。本文将对H5开发框架进行原理和详细介绍。一、H5概述H5技术(HTML5)是新一代的网站开
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3