• 技术干货 | 轻松两步完成向 mPaaS 小程序传递启动参数


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

    封面图0429.jpg

    前言

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

    1.jpg

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

    2.png

    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 中获取参数。操作方法同安卓一致。

    撰文:刘启洋、滕宏才

    原文链接

    本文为阿里云原创内容,未经允许不得转载。

  • 相关阅读:
    【已解决】ERR_BLOCKED_BY_XSS_AUDITOR:Chrome 在此网页上检测到了异常代码:解决办法
    【已解决】Microsoft visual c++ 14.0 is required问题解决办法
    爬虫处理网站的bug---小于号未转化为实体符
    pymysql 在数据库中插入空值
    python 正则括号的使用及踩坑
    pymysql 解决 sql 注入问题
    python3 操作MYSQL实例及异常信息处理--用traceback模块
    LeetCode 837. 新21点 | Python
    LeetCode 面试题64. 求1+2+…+n | Python
    LeetCode 101. 对称二叉树 | Python
  • 原文地址:https://www.cnblogs.com/yunqishequ/p/14745294.html
Copyright © 2020-2023  润新知