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是一种轻量级的移动应用开发方式,它基于Web技术和HTML5技术,借助于JavaScript、CSS等前端开发技术,实现了快速开发移动应用的能力。在H5开发App的过程中,我们可以使用多种框架或库来帮助我们快速搭建出可用的移动应用,下面是H5
2023-05-26
手机制作h5的app开发
随着移动互联网的普及和人们对于H5需求的增加,越来越多的开发者开始关注H5应用开发。那么,在手机上制作H5的App开发,实现起来又有哪些方法呢?本文将为大家详细介绍。1. 基于Webview的H5 App开发通常来说,制作H5 App的基本方法是用Webv
2023-05-26
十堰推荐h5打包app企业
随着互联网的快速发展,移动互联网的普及程度越来越高,因此H5打包APP已成为许多企业推广自身的重要手段。 所谓H5打包APP,就是将之前只能在H5页面中浏览的内容通过打包的方式转化成APP,可以实现离线使用和更好的用户体验。 在十堰这座城市,也有一些推荐的
2023-05-26
南宁h5开发app
H5开发App,指的是利用HTML5技术和Web相关技术进行App开发。这种方式实现的App具有跨平台、运维成本低等优势。以下是关于南宁H5开发App的详细介绍。一、H5开发App的优势1.跨平台:利用HTML5技术,实现一次开发多平台运行,可以同时在iO
2023-05-26
封装app苹果h5
随着移动互联网的普及,越来越多的企业开始意识到app对于品牌的重要性。而对于一些小型企业或者个人而言,开发完整的app不仅成本高昂,还需要付出大量的时间和精力去维护。因此,封装app成为了一个非常实用的选择。所谓封装app,简单来说就是将一个网站或者h5页
2023-05-25
uniapp开发app和h5
Uniapp是一款基于Vue.js的开发框架,可以方便快速地构建多端应用,包括iOS、Android、H5、小程序等。在Uniapp中,使用Vue.js编写的代码可以同时被编译成原生APP代码和H5代码,实现一套代码多端运行。下面将介绍Uniapp的两种应
2023-05-25
h5制作教程app
H5制作教程App是为了满足用户使用移动设备,在离线状态下学习HTML5技术,而开发的一款教学应用程序。H5,全称HyperText Markup Language 5,是用于制作网页和网页应用程序的语言之一。H5为人们在网络上共享文档和信息提供了广阔的空
2023-05-25
h5制作app哪个好用
H5制作App是一种新型的App开发方式,也叫做H5原生应用开发,是基于HTML5、CSS3和JavaScript等技术的移动应用程序开发。相对于传统原生App的开发方式,H5制作App有更加快速和低成本、团队协作能力强等优势。有很多H5制作App的工具,
2023-05-25
h5能开发app的缺点
HTML5 是一种基于 Web 的技术,可以使用它开发跨平台应用程序(如移动应用程序)。它已经成为开发跨平台应用程序的重要技术。虽然使用 HTML5 开发应用程序很方便,但它也有一些缺点。首先,HTML5 虽然具有跨平台的优势,但在实现跨平台时,无法充分利
2023-05-25
h5交互页面制作app
随着移动互联网的快速发展,越来越多的企业开始转向移动端应用程序(App)开发,以提供更好的移动用户体验。其中,HTML5是当前移动端应用开发中最受欢迎的技术之一,因为它可以让开发者使用Web技术来构建跨平台应用程序,从而节省开发成本和时间。本文将介绍如何使
2023-05-25
h5 本地打包app
HTML5 技术作为一种跨平台的 Web 技术,能够非常方便地开发出跨平台移动应用,同时在效率和成本上也比传统的原生应用更有优势。很多应用的开发者希望将其应用封装成 APP 进行本地打包,提高用户体验和功能性。本文就来介绍一下 HTML5 本地打包 APP
2023-05-25
app开发用原生的还是h5好
在app开发中,原生和H5开发都有各自的优势和劣势。原生开发是指使用关联操作系统提供的原生工具和API进行开发,而H5开发则是通过网页前端技术实现App开发。那么在选择开发方法时,我们需要考虑的因素是哪些,两种方式的优劣如何呢?原生开发优势:1.性能高:原
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3