企業微信兼容
打開 App
此功能需要用戶主(zhu)動觸(chu)(chu)發才能打開 APP,所以不由 API 來調(diao)用,需要用 open-type 的(de)值(zhi)設置(zhi)為 launchApp 的(de) button 組件的(de)點(dian)擊來觸(chu)(chu)發。
當小程序從 APP 打開的(de)(de)場景打開時(場景值 1069),小(xiao)程序(xu)會(hui)獲得(de)返回 APP 的(de)(de)能(neng)力,此時用戶點擊按鈕可以打開拉起該小(xiao)程序(xu)的(de)(de) APP。即小(xiao)程序(xu)不能(neng)打開任(ren)意 APP,只(zhi)能(neng) 跳回 APP。
在一(yi)個小程序的(de)生命周期(qi)內(nei),只有在特定(ding)條件下,才具(ju)有打開 APP 的(de)能力,這個能力的(de)規則如(ru)下:
當小程序(xu)從 1069 場景打(da)開(kai)時,可(ke)以打(da)開(kai) APP。
當(dang)小程序(xu)從非 1069 的打(da)開時(shi),會在小程序(xu)框架內部(bu)會管理的一個狀態,為 true 則可(ke)以打(da)開 APP,為 false 則不可(ke)以打(da)開 APP。這個狀態的維護遵循以下規則:
當小(xiao)程(cheng)序從(cong)非(fei)以(yi)上場景(jing)打開時,不具有打開 APP 的能力,該狀(zhuang)態置為 false。
使用方(fang)法(fa) 小(xiao)程序端
需(xu)要(yao)將 button 組件 open-type 的值設(she)置(zhi)為(wei)(wei) launchApp。如果需(xu)要(yao)在打開 APP 時向(xiang) APP 傳遞(di)參數,可(ke)以設(she)置(zhi) app-parameter 為(wei)(wei)要(yao)傳遞(di)的參數。通過(guo) binderror 可(ke)以監聽打開 APP 的錯誤(wu)事件。
示例代碼
<button open-type="launchApp" app-parameter="wechat" binderror="launchAppError">打開APPbutton>
Page({
launchAppError (e) {
console.log(e.detail.errMsg)
}
})
error 事件參數說(shuo)明
值 說明
invalid scene
調用場(chang)景不(bu)正(zheng)確,即此時(shi)的小(xiao)程序不(bu)具(ju)備打開 APP 的能力(li)。
APP 端
APP 需要接入 OpenSDK。 文檔請參(can)考 iOS / Android
Android 第三方 app 需要處理 ShowMessageFromWX.req 的微(wei)信(xin)回調,iOS 則需要將 appId 添加到第三方 app 工程所屬(shu)的 plist 文件 URL types 字(zi)段。app-parameter 的獲(huo)取方法,參(can)數解析請參(can)考 Android SDKSample 中(zhong) WXEntryActivity 中(zhong)的 onResp 方法以(yi)及(ji) iOS SDKSample 中(zhong) WXApiDelegate 中(zhong)的 onResp 方法。
iOS 示例代碼
-(void)onResp:(BaseResp *)resp
{
if ([resp isKindOfClass:[WXLaunchMiniProgramResp class]])
{
NSString *string = resp.extMsg;
// 對應小程序組件
Android 示例代(dai)碼
WXEntryActivity中
public void onResp(BaseResp resp) {
if (resp.getType() == ConstantsAPI.COMMAND_LAUNCH_WX_MINIPROGRAM) {
WXLaunchMiniProgram.Resp launchMiniProResp = (WXLaunchMiniProgram.Resp) resp;
String extraData =launchMiniProResp.extMsg; //對應小程序組件
}
}
如你的(de) App 是使用(yong)(yong)平臺(tai)推出(chu)的(de)多端(duan)框(kuang)架開發的(de),即(ji)可(ke)只需要調用(yong)(yong)下方的(de) JSAPI 即(ji)可(ke)輕松實現,無(wu)需按照(zhao)上述指引在 Android 或 iOS 工程中(zhong)進行接入。