技術乾貨 | 輕鬆兩步完成向 mPaaS 小程序傳遞啓動參數

前言

在部分場景下,須要向小程序的默認接收頁(pages/index/index)傳遞參數。html

本文將以傳遞 name 和 pwd 參數爲例,分別介紹此場景在 Android 小程序和 iOS 小程序中的實現過程。小程序

前提條件

已參照 快速開始 文檔接入了小程序組件。app

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 參數說明:spa

  • appId:小程序的 ID,能夠從 mPaaS 控制檯查看。
  • param:Bundle 對象,能夠向 Bundle 對象傳遞請求參數,key="query",value="鍵值對";多個參數中間用(&)隔開。
  • 注意1:小程序框架會對每對自定義入參的鍵值對的 value 進行 uri decode。所以,請對入參鍵值對的 value 進行 uri encode。
  • 注意2:小程序框架不會對自定義入參的鍵值對的 key 作任何處理。所以,請不要對 key 設置特殊字符,防止小程序側沒法識別自定義參數。

2.小程序獲取參數。從 onLaunch/onShow(options) 方法的參數 options 中獲取。code

1.jpg

存儲 app.js 會獲取客戶端向小程序傳遞的參數並保存到全局變量 globalData 中,使用時從 globalData 直接取值或更新值。如請求頭裏的 token、user_id 等參數,從 Native 傳遞過來後,保存到 globalData 中,使用時直接取值。orm

2.png

iOS 小程序

1.在客戶端添加啓動時跳轉頁面的參數信息。以下所示:htm

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 中獲取參數。token

操做方法同安卓一致。

撰文:劉啓洋、滕宏才

E · N · D


動態-logo.gif

底部banner.png

相關文章
相關標籤/搜索