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技术为基础来开发app,成为了一种越来越流行的方式。那么,用HTML5开发app的费用到底是多少呢?首先需要了解的是,HTML5开发app的本质是
2023-05-26
手机app哪些 是用h5做的
在移动互联网时代,手机APP已经成为人们生活中不可或缺的一部分,而在众多手机APP中,有一些是使用H5技术来开发的,下面我们就来详细介绍一下手机APP中常用的H5开发。H5技术,是指一种基于HTML5,将传统网页技术与移动APP开发相结合的技术,通过H5技
2023-05-26
京东app使用h5开发的吗
京东app使用的不是单纯的H5开发,而是将H5页面嵌入到原生app中的混合式开发。混合式开发主要有两种方式:一种是将H5页面通过webview嵌入到原生app中,类似于一个浏览器窗口,这种方式的优点是开发门槛低,方便快速迭代和更新;缺点是性能较低,同时还会
2023-05-26
哈弗h5开发app
哈弗h5开发app,指的是使用基于web技术的应用开发框架,如Cordova/PhoneGap、Hbuilder等,结合哈弗自有的技术与能力,快速、高效地开发手机应用程序。Hafer H5为开发者提供了一种基于HTML5和CSS3的应用开发框架,可以使用H
2023-05-25
大风秀h5制作app
大风秀是一款强大的H5制作工具,主要用于快速构建精美的移动页面及APP。使用大风秀,可以方便地添加各种页面元素、动画特效、交互效果等。同时,大风秀拥有强大的自适应排版引擎,能够在不同屏幕尺寸的设备上呈现出最佳的效果。下面,将介绍大风秀制作APP的原理和方法
2023-05-25
h5一键生成app
HTML5一键生成app可以说是近年来一个颇受关注的技术工具,它可以帮助开发者将HTML5网页打包成原生APP应用,从而更好地在移动端上使用。以下是关于HTML5一键生成app的原理和详细介绍。一、原理HTML5一键生成app的原理就是将HTML5页面转换
2023-05-25
h5苹果app开发教程
HTML5是一种广泛使用的Web技术标准,可以用于创建跨平台的Web应用程序,也可以将其转换成本机应用程序。苹果公司的iOS系统支持HTML5标准,因此可以使用HTML5构建iOS应用程序。下面将介绍一些HTML5开发iOS应用程序的基础知识和技术。##
2023-05-25
h5跨平台app开发路线比较
在现代互联网时代中,移动应用程序的需求越来越大,尤其是在移动互联网的浪潮下。H5跨平台开发技术已经成为了开发者们追求的目标。本文将介绍H5跨平台App开发路线比较,包含一些主流的H5跨平台App开发框架。H5跨平台App开发路线H5跨平台App开发路线是指
2023-05-25
h5开发app接口
现在,越来越多的APP都使用h5来进行开发,因为h5不仅可以在网页中,也可以在APP中进行使用。而h5开发APP接口,就是指将网页中的h5技术应用到APP开发上,使得APP更加灵活、美观、易于维护。h5开发APP的接口其实就是指前端与后端之间的接口。前端(
2023-05-25
h5混合性app开发
H5混合性App开发是指在原生App的框架中,嵌入Web技术,利用JavaScript、HTML、CSS等Web技术进行应用程序开发,并通过桥接技术与原生API进行交互,从而完成应用的开发。H5混合性App开发具有多种优点,比如跨平台、快速开发、易于维护等
2023-05-25
h5 app开发软件
HTML5是一种标准化的Web语言,用于描述Web文档的结构和呈现方式。随着HTML5的发展,移动应用开发领域出现了一种全新的开发方式,即基于HTML5技术的H5 App开发。本文将详细介绍H5 App开发的原理和基本流程,以及常用的开发工具和平台。一、H
2023-05-25
app开发工具h5
H5 (HTML5) 是一种常用于移动端应用开发的技术,它的出现使得开发者可以使用网页技术,以快速、轻松和高效的方式来构建跨平台应用,同时它又可以借鉴一些原生应用的特性。H5应用开发通常使用的工具有:PhoneGap、AppCan、MUI等。以下是一些关于
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3