本文以传递 name 和 pwd 参数为例,介绍向小程序的默认接收页(pages/index/index)传递参数的实现过程。
前提条件
参照 快速开始 文档接入小程序组件。
操作步骤
在客户端添加启动时跳转页面的参数信息。如下所示:
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"};
,多个参数之间用&
隔开。
重要小程序框架会对每对自定义入参的键值对的 value 进行 decode。若您的入参键值对的 value 中有特殊字符
&
,请调用以下方法对入参进行 encode。NSString *pwd = [@"123&*!@#$%^*" stringByAddingPercentEncodingWithAllowedCharacters:[[NSCharacterSet characterSetWithCharactersInString:@"?!@#$^&%*+,:;='\"`<>()[]{}/\\| "] invertedSet]];
如果没有特殊字符,则不需要使用 encode。小程序框架不会对自定义入参的键值对的 key 做任何处理。因此,请不要对 key 设置特殊字符,防止小程序侧无法识别自定义参数。
小程序从 onLaunch/onShow(options) 方法的参数 options 中获取参数。存储
app.js
会获取客户端向小程序传递的参数并保存到全局变量globalData
中,使用时从globalData
直接取值或更新值。例如,请求头中的token
、user_id
等参数,从 Native 传递过来后,保存到globalData
中,使用时直接取值。
通过启动参数跳转到小程序指定页面
当小程序有多个页面时,业务打开小程序就需要展示指定页面。可通过如下代码实现:
NSDictionary * dict = @{
@"page" : @"/pages/demo3/index"
};
[MPNebulaAdapterInterface startTinyAppWithId:@"1234567891234567" params:dict];