最近工作中遇到一個需求:App拉起微信小程式。App是用APICloud開發的。查閱APICloud文件發現 端API->開放SDK->wx模組下有launchMiniProgram方法可以實現官方文件
於是在專案中新增wx模組。
官方示例程式碼:
var wx = api.require(`wx`);
wx.launchMiniProgram({
apiKey: ``, // 字串,微信開放平臺獲取的appid, 不傳則從當前widget的config.xml中讀取
miniProgramType: `test`, // 字串,[`test`, `preview`, `release`](開發版,體驗版,正式版)預設test
userName: ``, // 字串,小程式的原始ID
path: ``, // 字串,拉起小程式頁面的可帶引數路徑,不填預設拉起小程式首頁
}, function(ret, err) {
if (ret.status) {
alert(`成功`);
} else {
alert(err.code);
}
});
按照官方文件配置發現只能跳轉到微信,不能拉起小程式。
apicloud App端程式碼:
config.xml檔案小程式有關配置如下:
<feature name="wx">
<param name="urlScheme" value="wx1007b2********68"/>
<param name="apiKey" value="wx1007b2********68"/>
<param name="apiSecret" value="3******67176****39244b********25"/>
</feature>
拉起小程式相關程式碼:
function launchMini () {
var wx = api.require(`wx`)
wx.launchMiniProgram({
// apiKey: ``, // 不知道是因為配置檔案中已經配置過了還是什麼原因,帶上該項引數僅能開啟微信,無法拉起小程式,註釋後成功拉起小程式
miniProgramType: `preview`,
userName: `gh_******`,
path: `pages/index/index?from=app666` // 傳遞引數from 值為 app666
}, function(ret, err) {
if (ret.status) {
alert(`成功`)
} else {
alert(err.code)
}
}
}
小程式端程式碼:
index.js
onLoad: function (options) {
console.log(options)
console.log(options.from) // `app666`
}