前言

在部分场景下,需要向小程序的默认接收页(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**


最新文章

  1. jQuery参数学习与整理
  2. activiti 中文文档
  3. nodejs安装心得
  4. 【PHP操作sphinx】
  5. java实现音频转换
  6. RD / RMDIR Command
  7. sql server抓取表结构的语句
  8. SET IDENTITY_INSERT详解
  9. Zipkin分布式跟踪系统介绍
  10. sun 证书问题解决
  11. 福州大学oj 1752 A^B mod C ===&gt;数论的基本功。位运用。五星*****
  12. struts2请求两次即action方法执行两次
  13. and_or_not 逻辑运算符的操作注解!
  14. 18.解决合并androidmanfest错误
  15. freebsd静态路由
  16. linux openjdk环境变量配置
  17. div仿textarea可输入
  18. retrival and clustering : week 3 k-means 笔记
  19. 利用“进程注入”实现无文件复活 WebShell
  20. Charles常用设置

热门文章

  1. .Net程序内存泄漏解析
  2. 记某次sql注入绕过ids
  3. 痞子衡嵌入式:实抓Flash信号波形来看i.MXRT的FlexSPI外设下AHB读访问情形(无缓存)
  4. 02- linux目录和文件的基础操作
  5. hdu4965 巧用矩阵乘法结合律
  6. PKI/CA与证书服务
  7. POJ2446 模板盖格子 简单二分匹配
  8. Ravindrababu Ravula老师的数据结构与算法
  9. 《前端运维》一、Linux基础--基础命令(1)
  10. 【JavaScript】Leetcode每日一题-二叉搜索树的范围和