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页面制作app,并介绍其中的制作原理和具体操作方式。1. MakaMaka是一个在线(Web)和移动端(App)H5 制作工具,支持多样、多维度的素材添加,因此用户
2023-05-26
扬州h5开发app
扬州H5开发APP是一种将网页应用程序(HTML、CSS和JavaScript等)集成到原生APP中的技术。相比于传统的原生APP开发,H5开发可以节省开发成本和时间,同时也可以在多个平台上运行,如iOS、Android等。下面是扬州H5开发APP的详细介
2023-05-26
哪个app做h5好
App是移动互联网时代最常见的应用程序形态,日益被广泛应用于Android、iOS和Web等平台。而基于H5技术开发的App具有快速迭代、跨平台、易更新、纯HTML5开发等优点,被越来越多的开发者所关注和使用。本文将结合H5技术及应用场景,探讨哪个App做
2023-05-26
哪些知名app用的是h5开发
随着移动互联网的普及,越来越多的应用使用Web技术来进行开发,其中最常见的就是使用H5(HTML5、CSS3、JS)技术进行开发。H5技术有着跨平台、开发效率高的优势,而且对用户友好和易于维护,因此在移动应用中广泛应用。下面我们来介绍几个使用H5开发的知名
2023-05-26
h5做app与原生app的区别
HTML5技术越来越受欢迎,并在移动应用开发领域获得了很大的成功。与传统的原生应用相比,HTML5应用程序的宣传声量已经越来越高。本篇文章将深入探讨HTML5应用程序与原生应用程序之间的区别。首先, HTML5应用程序与原生应用程序之间的最大区别在于其构成
2023-05-25
h5站点生成app
H5站点生成APP是现在比较常见的企业客户端推广方式,这种方式的好处是可以快速生成APP,无需开发APP的技术,只需一些简单的操作就可以生成一个APP应用。下面将为大家介绍实现H5站点生成APP的原理和详细介绍。一、原理H5站点生成APP原理是通过将网站或
2023-05-25
h5页面制作app开发
H5页面制作是一种开发跨平台应用的技术。它可以充分利用HTML5、CSS3、JavaScript等Web技术的优势,编写出可以在多个平台上运行的应用程序。同时,H5页面制作还具有易于维护、快速迭代的特点,因此在移动互联网时代得到广泛应用。H5页面制作的主要
2023-05-25
h5开发app框架对比
HTML5是一种跨平台的编程语言,可以被用于开发Web应用程序和本地应用程序。而随着移动设备市场的蓬勃发展和移动应用程序的需求的增加,HTML5的优点也越来越受到重视。本文将介绍一些流行的HTML5应用程序框架及其特点,以便于开发人员选择合适的框架来开发应
2023-05-25
h5封装app常见问题
随着移动设备的普及,许多企业或创业公司开始考虑如何开发自己的移动应用程序。然而,由于缺乏专业的开发人员和高昂的开发成本,许多人转而选择使用HTML5封装应用程序来开发。HTML5应用程序封装平台已经成为了企业和创业公司开发和推出应用程序的首选方法。本文将详
2023-05-25
h5打包app域名
H5是一种基于Web技术的应用程序开发方式,可以实现应用的跨平台和在线即时更新。随着移动互联网的发展,H5应用变得越来越受欢迎,也出现了很多将H5应用打包成原生App的工具,比如Cordova、PhoneGap等。打包H5应用成原生App有很多优点,比如可
2023-05-25
h5打包app开源
在互联网领域,打包APP是一项非常重要的工作。打包APP可以让你在各个平台上发布自己的程序,让更多的人知道你的产品,提高用户量和曝光度。而h5打包APP则是一种相对比较简单的打包方式,可以用HTML5的基础知识来处理。本文将会详细介绍h5打包APP的原理和
2023-05-25
app开发公众号h5遇到的问题
在app开发中,H5技术已经成为了最常见的开发方式之一。不同于本地app,H5技术可以在浏览器中直接访问,相对来说更方便快捷。然而,在实际开发中,我们也会遇到不少问题。下面就来具体介绍一些h5在app开发中常见的问题。1. 兼容性问题H5技术常见于web端
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3