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是指通过HTML5技术在移动设备上开发的应用程序。与原生应用程序相比,H5手机app具有较好的跨平台适配性,可以在不同的移动操作系统上运行,同时开发成本也较低。本文将介绍几种制作H5手机app的方法和工具。1. 使用框架我们可以使用一些H5手
2023-05-26
制作h5最常用app
在制作H5页面的时候,我们最常用的是APP,也就是前端框架库或者编译工具。APP可以协助我们实现多种功能,例如快速开发、自动化打包、代码压缩等操作。下面将为您详细介绍常用的H5 APP。1. Vue.jsVue.js是一款轻量级的MVVM框架库,它具有极高
2023-05-26
用h5怎么开发app
H5是指网页开发语言HTML5,它的出现为开发移动APP提供了一种新的解决方案。通过将H5与原生APP的技术结合,我们可以在不编写原生代码的情况下使用H5创建同样优秀的APP体验。这种开发方式主要是基于Webview的原理,即在移动应用中集成一个内置的浏览
2023-05-26
徐州h5开发app
H5开发App是指利用HTML、CSS、JavaScript等技术开发的跨平台应用程序,可以同时在Android和iOS等不同的操作系统上运行。徐州H5开发App主要是基于Web技术和移动互联网技术的结合,通过H5开发技术,可以将网页转换为App,实现快速
2023-05-26
小程序app与h5的开发优势对比
小程序和H5(即移动网页)都是在移动互联网时代发展起来的技术,它们都能为用户提供丰富的移动应用体验。不过,小程序与H5之间也存在一些差异,下面就来介绍一下二者的开发优势对比。一、开发成本从开发的角度来说,小程序的开发成本相对于H5来说会更高一些。尤其是在需
2023-05-26
h5制作app软件是哪些
HTML5是一种网页开发标准,可以实现网页和移动应用的开发,近年来逐渐成为移动应用开发的主流技术。因为它可以解决移动应用开发中的诸多难题,如跨平台、多设备适配、性能优化等。下面详细介绍一些h5制作app软件的方式。1. React NativeReact
2023-05-25
h5游戏app制作
H5游戏是基于HTML5技术开发的一种手机游戏,具有跨平台、无需下载、即点即玩等特点。H5游戏因其普及性、互动性和趣味性而深受广大玩家的喜爱。那么,如何制作一款H5游戏APP呢?一、HTML5基础知识在制作H5游戏APP之前,首先需要掌握HTML5基础知识
2023-05-25
h5页面制作app
近年来,移动互联网行业发展迅速而又广阔,无论是从用户数量还是商业化程度上来看,都是前所未有的。利用H5页面制作APP,可以提高开发速度,降低开发成本,让APP制作变得更加简单。下面,我们将详细介绍H5页面制作APP的原理和方法。一、H5页面介绍H5页面是一
2023-05-25
h5开发的app
H5开发的App,顾名思义,是一种利用H5技术开发的移动应用程序。H5技术是基于HTML5、CSS3和JavaScript等标准技术,结合浏览器渲染引擎,实现了在手机端运行的web应用程序。相比原生应用程序,H5开发的App更加轻量、省资源、易于开发和维护
2023-05-25
app什么情况下用h5开发
移动应用开发已经成为智能手机时代中最重要的应用程序之一,而与此同时,有很多的应用都选择使用H5技术进行开发。在一个完成的移动应用程序中,也许有很多的业务场景可以用H5技术来完成,但是文中将要讲到的是主要的三种场景。一、功能简单的应用对于功能比较简单的应用,
2023-05-25
app开发用原生的还是h5好用
在移动应用的开发过程中,开发者通常都要在使用原生开发和Web/H5开发之间进行权衡。原生开发是指使用特定平台的SDK和开发工具(例如,iOS ,Android和Windows)直接编写和构建应用程序,这意味着应用程序是专为该平台而设计的。而Web/H5开发
2023-05-25
app h5打包
H5打包指的是将基于Web的应用程序(通常被称为H5应用程序或Web应用程序)打包成本地应用程序,以便在移动设备上使用。通常情况下,这个过程涉及到将Web应用程序封装到本地壳程序里,以便在移动设备上运行。H5应用程序是指基于HTML、CSS、JavaScr
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3