简介: 以传递 name 和 pwd 参数为例 , 分别介绍此场景在 Android 小程序和 iOS 小程序中的实现过程 。
文章图片
前言 在部分场景下 , 需要向小程序的默认接收页(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="https://www.sohu.com/a/键值对";多个参数中间用(&)隔开 。
- 注意1:小程序框架会对每对自定义入参的键值对的 value 进行 uri decode 。 因此 , 请对入参键值对的 value 进行 uri encode 。
- 注意2:小程序框架不会对自定义入参的键值对的 key 做任何处理 。 因此 , 请不要对 key 设置特殊字符 , 防止小程序侧无法识别自定义参数 。
【param|技术干货 | 轻松两步完成向 mPaaS 小程序传递启动参数】

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

文章图片
iOS 小程序
1.在客户端添加启动时跳转页面的参数信息 。 如下所示:
NSString *pwd = [@"123&*!@#$%^*" stringByAddingPercentEncodingWithAllowedCharacters:[[NSCharacterSet characterSetWithCharactersInString:@"?!@#$^&%*+,:;='\"`<>()[]{}/\\| "] invertedSet]];
NSString *queryvalue = https://www.sohu.com/a/[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]];
- 注意2:小程序框架不会对自定义入参的键值对的 key 做任何处理 。 因此 , 请不要对 key 设置特殊字符 , 防止小程序侧无法识别自定义参数 。
操作方法同安卓一致 。
撰文:刘启洋、滕宏才
本文为阿里云原创内容 , 未经允许不得转载 。
推荐阅读
- 技术|“2”类医械有重大进展:神经介入产品井喷、基因测序弯道超车
- 解决方案|【干货】反渗透设备结垢原因及解决方案
- 选型|数据架构选型必读:2021上半年数据库产品技术解析
- 技术|使用云原生应用和开源技术的创新攻略
- 技术|聚光科技旗下临床质谱仪获批医疗器械注册证
- Apple|苹果高管解读AirPods 3代技术细节 暗示蓝牙带宽可能成为瓶颈
- MateBook|深度解析:华为MateBook X Pro 2022的七大独家创新技术
- AirPods|苹果谈论AirPods 3:最大榨取蓝牙技术,希望获得“更多带宽”
- 人物|印度人接管硅谷的背后:技术军团整体作战
- Intel|Intel谈DDR5内存价格贵、缺货问题:新技术升级在所难免