技术干货 | 轻松两步完成向 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 中獲取。
存儲 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
原文鏈接:https://developer.aliyun.com/article/783939?
版權聲明:本文內容由阿里云實名注冊用戶自發貢獻,版權歸原作者所有,阿里云開發者社區不擁有其著作權,亦不承擔相應法律責任。具體規則請查看《阿里云開發者社區用戶服務協議》和《阿里云開發者社區知識產權保護指引》。如果您發現本社區中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社區將立刻刪除涉嫌侵權內容。 與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的技术干货 | 轻松两步完成向 mPaaS 小程序传递启动参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这个云原生开发的痛点你遇到了吗?
- 下一篇: 对比解读《2020年CNCF中国云原生调