前言

在部分场景下,需要向小程序的默认接收页(pages/index/index)传递参数。

本文将以传递 name 和 pwd 参数为例,分别介绍此场景在 Android 小程序和 iOS 小程序中的实现过程。

前提条件

已参照 快速开始 文档接入了小程序组件。

Android 小程序

1.在客户端添加启动时跳转页面的参数信息。如下所示:

Bundle param = new Bundle();
String query = "name="+Uri.encode("123")+"&pwd="+Uri.encode("456");
param.putString("query",query); //设置参数
MPNebula.startApp(appId:"2020121620201216",param);

URL 启动传参时,传递参数的字段为 query;获取参数时,通过解析 query 字段获取。

startApp 参数说明:

  • appId:小程序的 ID,可以从 mPaaS 控制台查看。

  • param:Bundle 对象,可以向 Bundle 对象传递请求参数,key="query",value="键值对";多个参数中间用(&)隔开。

  • 注意1:小程序框架会对每对自定义入参的键值对的 value 进行 uri decode。因此,请对入参键值对的 value 进行 uri encode。

  • 注意2:小程序框架不会对自定义入参的键值对的 key 做任何处理。因此,请不要对 key 设置特殊字符,防止小程序侧无法识别自定义参数。

2.小程序获取参数。从 onLaunch/onShow(options) 方法的参数 options 中获取。

存储 app.js 会获取客户端向小程序传递的参数并保存到全局变量 globalData 中,使用时从 globalData 直接取值或更新值。如请求头里的 token、user_id 等参数,从 Native 传递过来后,保存到 globalData 中,使用时直接取值。

iOS 小程序

1.在客户端添加启动时跳转页面的参数信息。如下所示:

 NSString *pwd = [@"123&*!@#$%^*" stringByAddingPercentEncodingWithAllowedCharacters:[[NSCharacterSet characterSetWithCharactersInString:@"?!@#$^&%*+,:;='\"`<>()[]{}/\\| "] invertedSet]];

 NSString *queryvalue = [NSString stringWithFormat:@"name=mpaas&pwd=%@",pwd];
NSDictionary * dic = @{@"query":queryvalue}; [MPNebulaAdapterInterface startTinyAppWithId:@"1234567891234567" params:dic];

URL 启动传参时,传递参数的字段为 query;获取参数时,通过解析 query 字段获取。startApp 参数说明:

  • appId:小程序的 ID,从 mPaaS 控制台获取。

  • param:params 小程序参数,自定义传值请使用 @{@"query""key=value&key=value"}; ,多个参数之间用 & 隔开。

  • 注意1:小程序框架会对每对自定义入参的键值对的 value 进行 decode。若您的入参键值对的 value 中有特殊字符 & ,请调用以下方法对入参进行 encode。NSString pwd = [@"123&!@#$%^" stringByAddingPercentEncodingWithAllowedCharacters:[[NSCharacterSet characterSetWithCharactersInString:@"?!@#$^&%+,:;='"`<>()[]{}/\| "] invertedSet]];

    如果没有特殊字符,则不需要使用 encode。

  • 注意2:小程序框架不会对自定义入参的键值对的 key 做任何处理。因此,请不要对 key 设置特殊字符,防止小程序侧无法识别自定义参数。

2.小程序从 onLaunch/onShow(options) 方法的参数 options 中获取参数。

操作方法同安卓一致。

撰文:刘启洋、滕宏才

**E · N · D**


技术干货 | 轻松两步完成向 mPaaS 小程序传递启动参数的更多相关文章

  1. 只需两步获取任何微信小程序源码

    http://baijiahao.baidu.com/s?id=1601969343738344659&wfr=spider&for=pc

  2. 快成物流科技 x mPaaS | 小程序容器加持下的技术架构“提质增效”

      导言 从 2017 年开始,GMTC"移动技术大会"就更名为"大前端技术大会".发展至今,混合开发.原生开发.前端开发等概念正在深度融合,组成"大 ...

  3. mPaaS 小程序架构解析 | 实操演示小程序如何实现多端开发

    对于 mPaaS 小程序开发框架,想必读者们并不陌生.它源自于支付宝小程序框架,继承了易开发性.跨平台性及 Native 性能,不仅帮助开发者实现面向自有 App 投放小程序,还可快速构建打包,覆盖支 ...

  4. 教你轻松构建基于 Serverless 架构的小程序

    前言 自 2017 年第一批小程序上线以来,越来越多的移动端应用以小程序的形式呈现.小程序触手可及.用完即走的优点,大大降低了用户的使用负担,也使小程序得到了广泛的传播.在阿里巴巴,小程序也被广泛地应 ...

  5. [干货教程]仿网易云课堂微信小程序开发实战经验

    本篇文章想跟大家分享下:我们公司“湖北诚万兴科技”最近刚帮客户定制开发.目前已上线的“哎咆课堂”微信小程序的开发经验分享.首先大概介绍下这个小程序所涉及到的主要技术点:微信登录.微信支付.微信小程序F ...

  6. 两小时快速构建微信小程序

    小程序在2017年1月上线之初,被社会极力吹捧,刻意去将其制造为一个“风口”,透支其价值.但是在之后一个月里,石破天惊迅速归为沉寂.媒体又开始过度消费小程序,大谈其鸡肋之处. 个人认为小程序的一个分水 ...

  7. 又写了两个实用的微信小程序

    忙里偷闲,最近又写了两个小程序. 一个是手机壁纸小程序,名字叫[来搜图],特点是界面干净清爽,没有多余的东西.开发这个是因为讨厌市面上那些壁纸app那样那么多的广告,真的太影响体验了.而且小程序更加轻 ...

  8. 精选腾讯技术干货200+篇,云加社区全年沙龙PPT免费下载!

    2019年已经过去,小编为大家整理了这一年以来云加社区发布的 200多篇腾讯干货,点击文章标题即可跳转到原文,请速速收藏哦~ 看腾讯技术: 腾讯成本优化黑科技:整机CPU利用率最高提升至90%: 腾讯 ...

  9. 腾讯技术分享:微信小程序音视频与WebRTC互通的技术思路和实践

    1.概述 本文来自腾讯视频云终端技术总监rexchang(常青)技术分享,内容分别介绍了微信小程序视音视频和WebRTC的技术特征.差异等,并针对两者的技术差异分享和总结了微信小程序视音视频和WebR ...

随机推荐

  1. 爬虫简介、requests 基础用法、urlretrieve()

    1. 爬虫简介 2. requests 基础用法 3. urlretrieve() 1. 爬虫简介 爬虫的定义 网络爬虫(又被称为网页蜘蛛.网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程 ...

  2. 2021S软件工程——个人阅读作业1

    2021S软件工程--个人阅读作业1 项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任建) 这个作业的要求在哪里 2021年软工-热身阅读作业 我在这个课程的目标是 了解并熟悉软件开发 ...

  3. 11- jmeter主要元件

    元件分类 HTTP请求默认值(请求行,请求头,空行,消息体) HTTP信息头管理器: HTTPcookie管理器(1.更真实的模拟用户行为 ,多个请求的关联.第一个请求没有cookie第二个就带了co ...

  4. SpringBoot自定义配置以及IDEA配置提示

    本篇文章将会讲解在springboot项目中如何实现自定义配置以及在IDEA或者Eclipse中实现配置项提示,就像spring的配置提示一样 想要做到这点其实非常简单 1.添加依赖 <depe ...

  5. RING3级下枚举用户进程的基本姿势

    简述 Ring3用户态下查看进程信息的基本方法 代码样例 #include <cstdio> #include <iostream> #include <cstdlib& ...

  6. UVA11729突击战(汇报和执行任务)

    题意:       你是一个长官,有一些士兵要跟你先汇报任务后在去执行任务,每次只能接受一个人的汇报,但是每一时刻可以有多个士兵在执行任务,问所有任务执行完要的最小时间. 思路:        按执行 ...

  7. UVA11384正整数序列(把123..变成0的最小步数)

    题意:      给定一个正整数n,你的任务是最少的操作次数把序列1 2 3 4 5...n中所有的数字都变成0,每次操作可以从序列中选择一个活多个整数,同时减去一个相同的正整数,比如 1 2 3可以 ...

  8. ExtJS4中Ext.onReady、Ext.define、Ext.create

    1.Ext.onReady 说明:onReady内的语句块会在页面上下文加载后再执行. 2.Ext.define 说明:创建类,可以继承其他类,也可以被继承. 例子1: 1 <script ty ...

  9. Andrew Ng机器学习算法入门(四):阶梯下降算法

    梯度降级算法简介 之前如果需要求出最佳的线性回归模型,就需要求出代价函数的最小值.在上一篇文章中,求解的问题比较简单,只有一个简单的参数.梯度降级算法就可以用来求出代价函数最小值. 梯度降级算法的在维 ...

  10. 公网IP和私有IP的区别和用途

    在Internet网络上有上千百万台主机,为了能够将这些主机区分开来,于是就给每台主机都分别配了一个专门的地址,称为IP地址. 通过IP地址就可以访问到每一台主机.IP地址由4部分数字组成,ghost ...