全部产品

向 iOS 小程序传递启动参数

更新时间:2021-03-30 15:07:57

本文以传递 name 和 pwd 参数为例,介绍向小程序的默认接收页(pages/index/index)传递参数的实现过程。

前提条件

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

操作步骤

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

    1. NSString *pwd = [@"123&*!@#$%^*" stringByAddingPercentEncodingWithAllowedCharacters:[[NSCharacterSet characterSetWithCharactersInString:@"?!@#$^&%*+,:;='\"`<>()[]{}/\\| "] invertedSet]];
    2. NSString *queryvalue = [NSString stringWithFormat:@"name=mpaas&pwd=%@",pwd];
    3. NSDictionary * dic = @{@"query":queryvalue};
    4. [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 设置特殊字符,防止小程序侧无法识别自定义参数。
  2. 小程序从 onLaunch/onShow(options) 方法的参数 options 中获取参数。
    1
    存储 app.js 会获取客户端向小程序传递的参数并保存到全局变量 globalData 中,使用时从 globalData 直接取值或更新值。例如,请求头中的 tokenuser_id 等参数,从 Native 传递过来后,保存到 globalData 中,使用时直接取值。
    2