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开发一般使用的技术包括Webview、Hybrid、React Native等,接下来分别进行介绍。1. WebviewWebview是Android和iOS平台上内置的浏览器组件,可以在应用中嵌入网页,实现原生应用与网页的交互。开发基于H
2023-05-26
婚礼h5制作app
婚礼 H5 制作 APP 是一款能够帮助用户制作并发布个性化婚礼 H5 页面的工具。其原理是基于 H5 技术以及模板化设计,为用户提供了一个快速、简单、方便的婚礼 H5 制作平台。下面将为大家详细介绍婚礼 H5 制作 APP 的原理和功能特点。一、H5 技
2023-05-25
封装h5网页app
H5网页是指用HTML、CSS、JavaScript等网页技术编写的网页,与普通的网页不同的是,H5网页具有跨平台性和强大的交互性,可以在移动端实现完整的应用场景。在移动端,若要实现H5网页的应用,则可以将其封装成一个App来使用。封装H5网页App的原理
2023-05-25
h5在手机app制作教程
H5作为一种移动端的web技术,最近几年来越来越被广泛的应用在手机app制作中。相比传统的原生app开发,H5在成本、开发效率、跨平台兼容性等方面都有着巨大的优势。下面就为大家介绍一下H5在手机app制作中的原理和详细的制作流程。一、H5在手机app制作中
2023-05-25
h5页面免费打包app
H5页面是我们在浏览器中通过HTML、CSS和JavaScript来创建的页面,这些页面可以很容易地在不同的设备上访问,包括PC、平板和手机等设备。除了在浏览器中访问这些页面外,我们还可以使用一些工具将这些H5页面打包成一个app,以便用户可以更快捷地访问
2023-05-25
h5生成软件app
H5生成软件App是一款可以将HTML5代码转化为原生APP的软件。通俗来说,就是可以将我们在网页上所编写的代码直接转化为手机应用程序。这个软件的原理其实也很简单,只要将HTML5代码嵌入到Webview控件中,就可以将我们所编写的代码直接呈现在移动端上面
2023-05-25
h5可以开发哪些app
HTML5是一种网络编程语言,它可以开发各种各样的应用程序。其中,基于HTML5的移动应用开发成为了一个非常重要的领域。以下是HTML5应用程序的一些示例:1.响应网站响应网站是一种可以适应所有设备大小和屏幕分辨率的网站。 HTML5和CSS3使得开发响应
2023-05-25
h5开发和app原生开发
随着智能手机和平板等移动设备的普及,h5和app开发成为了当今最受欢迎的两种移动开发方式。H5开发是基于HTML5平台的网页开发,其主要是为了更好地支持移动端的用户体验。而原生app开发则指的是用原生的代码来编写应用程序。H5开发H5开发作为web技术的一
2023-05-25
h5混合开发app公司
H5混合开发指的是将HTML5、CSS3、JavaScript等Web技术应用到Native App的开发中。这种开发方法可以使开发人员利用Web技术开发出全平台通用的App,避免了重复开发、维护成本高等问题。下面进行详细介绍。一、H5混合开发的优势1.跨
2023-05-25
h5打包网页打包app
H5是一种基于HTML5、CSS3、JavaScript等网络技术构建的移动应用开发方式,也称之为Web App。它的特点是兼容性强、开发效率高、可维护性强等优点,能够让开发者快速构建移动应用,同时让用户可以轻松地通过浏览器获取和使用应用。然而,由于一些特
2023-05-25
h5打包的app获取手机设备码
H5打包的app获取手机设备码涉及到一些技术原理,需要了解手机的标识码和H5打包过程。以下是详细的介绍。一、手机设备码1.IMEI码IMEI码(International Mobile Equipment Identity)是手机设备的唯一标识码,由15位
2023-05-25
h5 app 开发流程
H5 App是指使用HTML5进行开发的移动应用程序,可以在移动设备上直接在浏览器中运行。相对于原生App,H5 App具有跨平台、开发成本低、可更新性强等优势。今天,我们将为您介绍H5 App开发的流程,让您了解H5 App的开发原理和详细介绍。1.确定
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3