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是一种用于构建Web应用程序的技术,它兼容主流浏览器并具有良好的跨平台性能,因此,利用H5技术打包A
2023-05-26
手机制作h5的app
近年来H5技术越来越受到开发者的重视,因为它兼容性强、语义化好、开发周期短、易于推广等诸多优点,越来越多的公司和开发人员开始采用H5技术开发项目,因此需要一款可以方便快捷地制作H5页面的APP。有许多APP可以制作H5页面,其中最知名的应该是Maka。Ma
2023-05-26
使用mui开发h5后是app
MUI是一款轻量级的前端框架,可以帮助开发者快速构建出各种类型的移动端应用程序,包括 Android 和iOS 平台上的应用程序。在使用 MUI 开发 H5 后转变成 App 的过程中,主要依靠了 HBuilderX 开发工具提供的打包编译功能,具体过程如
2023-05-26
免费h5制作app有哪些
HTML5应用开发是一个快速发展的领域,也是移动应用开发趋势的未来。H5应用开发通常以网页为载体,可以在多种平台上运行。而免费H5制作APP则是一些提供在线服务的平台,在这些平台上,用户可以通过简单的拖拽操作,将页面元素组合成APP,并进行一系列的编辑和设
2023-05-26
h5制作游戏app哪款好
随着智能手机的普及,游戏app的市场需求不断增长,而HTML5技术也成为一种制作游戏app的重要技术手段。那么,在众多的h5游戏app制作工具中,哪款比较好呢?接下来,本文将对h5游戏app制作工具进行介绍。1. Egret引擎Egret引擎是一款开源的跨
2023-05-25
h5如何生成app
在移动互联网时代,APP已经成为了人们日常生活中不可或缺的一部分。对于开发者而言,如何快速生成一个APP,成为了一个重要的问题。移动开发技术的不断发展,H5+cordova的应用逐渐成为了生成APP的主流手段。那么,H5如何生成APP呢?本文将从原理和实现
2023-05-25
h5如何打包app打包
HTML5技术的优点就是跨平台和易于开发,成为许多移动软件开发者的首选。如果您想在移动应用中使用HTML5,您可以打包成一个本地应用程序。本文将介绍如何将HTML5应用程序打包成Android和iOS的移动应用程序。1. 打包成Android应用要将HTM
2023-05-25
h5混合开发app价格
随着移动互联网的发展,越来越多的企业和个人开始考虑开发自己的移动App以便更好地服务于用户需求。而在这其中,H5混合开发App方案愈发被广泛采用,因为它既可以跨平台应用,又能够提供极佳的用户体验和开发效率。那么,H5混合开发App到底是什么,它的价格是如何
2023-05-25
h5封装app的工具
随着移动互联网的发展,移动应用成为人们离不开的工具,在这个市场上开发一款好的移动应用成为了许多开发者和企业的目标。但是,对于有些企业或团队,投入大量的人力和资源去开发一款原生的移动应用可能并不划算。这时,使用H5封装APP的工具能够为他们提供一种低成本、高
2023-05-25
h5封装 app
HTML5 是当前 Web 技术的主流,可以通过浏览器的支持获得跨平台,可移植和易于开发和维护的应用程序。近年来,许多公司将其业务模型扩展到移动设备和 Web 技术,然后将 HTML5 封装成为原生应用程序,以从苹果和谷歌的应用商店中获得增加的分销渠道和应
2023-05-25
h5 web app开发
HTML5 Web App是一种基于HTML5、JavaScript和CSS3实现的Web应用程序。HTML5 Web App不需要在应用商店下载,也不需要安装和更新,只需要通过浏览器访问即可。下面将对HTML5 Web App的原理和详细介绍进行阐述。一
2023-05-25
h5 手机制作app
在移动互联网的高度发展下,手机应用成为了人们生活中不可或缺的一部分。作为网站博主,了解如何使用 H5 制作手机应用,将会极大地扩展自己的技能树。本篇文章主要介绍如何使用 H5 制作手机应用以及原理。一、H5 制作手机应用的原理移动应用的开发一般采用原生应用
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3