天天看點

技術幹貨 | 輕松兩步完成向 mPaaS 小程式傳遞啟動參數

技術幹貨 | 輕松兩步完成向 mPaaS 小程式傳遞啟動參數

前言

在部分場景下,需要向小程式的預設接收頁(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 中擷取。

技術幹貨 | 輕松兩步完成向 mPaaS 小程式傳遞啟動參數

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

技術幹貨 | 輕松兩步完成向 mPaaS 小程式傳遞啟動參數

iOS 小程式

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.小程式從 onLaunch/onShow(options) 方法的參數 options 中擷取參數。

操作方法同安卓一緻。

撰文:劉啟洋、滕宏才

E · N · D

技術幹貨 | 輕松兩步完成向 mPaaS 小程式傳遞啟動參數
技術幹貨 | 輕松兩步完成向 mPaaS 小程式傳遞啟動參數

繼續閱讀