簡(jiǎn)介
大家好穷娱!我是Tony,一個(gè)熱愛(ài)技術(shù)绑蔫,希望運(yùn)用技術(shù)改變生活的的追夢(mèng)男孩运沦。閑話不多說(shuō),今天總結(jié)一下小程序與微信公眾號(hào)晾匠、原生app的交互能力茶袒。主要包括一下內(nèi)容:
- 從公眾平臺(tái)跳轉(zhuǎn)至小程序
- 從小程序跳轉(zhuǎn)至原生app
- 原生app跳轉(zhuǎn)至小程序
- 從公眾平臺(tái)跳轉(zhuǎn)至原生App
從公眾平臺(tái)跳轉(zhuǎn)至小程序
在微信官方文檔->公眾號(hào)->自定義菜單->事件推送->點(diǎn)擊菜單跳轉(zhuǎn)小程序的事件推送
推送XML數(shù)據(jù)包示例:
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[view_miniprogram]]></Event>
<EventKey><![CDATA[pages/index/index]]></EventKey>
<MenuId>MENUID</MenuId>
</xml>
參數(shù)說(shuō)明:
- ToUserName 開(kāi)發(fā)者 微信號(hào)
- FromUserName 發(fā)送方帳號(hào)(一個(gè)OpenID)
- CreateTime 消息創(chuàng)建時(shí)間 (整型)
- MsgType 消息類(lèi)型,event
- Event 事件類(lèi)型凉馆,view_miniprogram
- EventKey 事件KEY值,跳轉(zhuǎn)的小程序路徑
- MenuID 菜單ID亡资,如果是個(gè)性化菜單澜共,則可以通過(guò)這個(gè)字段,知道是哪個(gè)規(guī)則的菜單被點(diǎn)擊了
從小程序跳轉(zhuǎn)至原生app
在微信官方文檔->小程序->打開(kāi)app
小程序打開(kāi)原生app的限制比較多锥腻,與其說(shuō)是打開(kāi)原生app嗦董,不如說(shuō)是回跳原生app,具體可見(jiàn)騰訊文檔。
從公眾平臺(tái)跳轉(zhuǎn)至原生App
方法一:引導(dǎo)用戶通過(guò)內(nèi)置的瀏覽器打開(kāi)native App
方法二:騰訊應(yīng)用包瘦黑,前提上架應(yīng)用寶(android)
方法三:deephsare京革,可以從微信直接打開(kāi)app,目前很多知名app都在使用這個(gè)方法幸斥,不過(guò)要付費(fèi)使用
瀏覽器喚起原生App的爬坑教程
原生app打開(kāi)微信小程序
在微信官方文檔->開(kāi)放平臺(tái)->app拉取小程序的功能
演示了原生app如何調(diào)起微信小程序的能力匹摇,代碼如下:
Android端開(kāi)發(fā)前需要引入SDK
代碼如下:
String appId = "wxd930ea5d5a258f4f"; // 填應(yīng)用AppId
IWXAPI api = WXAPIFactory.createWXAPI(context, appId);
WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
req.userName = "gh_d43f693ca31f"; // 填小程序原始id
req.path = path; ////拉起小程序頁(yè)面的可帶參路徑,不填默認(rèn)拉起小程序首頁(yè)甲葬,對(duì)于小游戲廊勃,可以只傳入 query 部分,來(lái)實(shí)現(xiàn)傳參效果经窖,如:傳入 "?foo=bar"坡垫。
req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;// 可選打開(kāi) 開(kāi)發(fā)版,體驗(yàn)版和正式版
api.sendReq(req);
//回調(diào)說(shuō)明
public void onResp(BaseResp resp) {
if (resp.getType() == ConstantsAPI.COMMAND_LAUNCH_WX_MINIPROGRAM) {
WXLaunchMiniProgram.Resp launchMiniProResp = (WXLaunchMiniProgram.Resp) resp;
String extraData =launchMiniProResp.extMsg;
//對(duì)應(yīng)小程序組件 <button open-type="launchApp"> 中的 app-parameter 屬性
}
}
開(kāi)發(fā)前需下載iOS開(kāi)發(fā)工具包SDK
實(shí)例代碼如下:
WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];
launchMiniProgramReq.userName = userName; //拉起的小程序的username
launchMiniProgramReq.path = path; ////拉起小程序頁(yè)面的可帶參路徑画侣,不填默認(rèn)拉起小程序首頁(yè)冰悠,對(duì)于小游戲,可以只傳入 query 部分配乱,來(lái)實(shí)現(xiàn)傳參效果溉卓,如:傳入 "?foo=bar"。
launchMiniProgramReq.miniProgramType = miniProgramType; //拉起小程序的類(lèi)型
return [WXApi sendReq:launchMiniProgramReq];
//回調(diào)說(shuō)明
-(void)onResp:(BaseResp *)resp
{
if ([resp isKindOfClass:[WXLaunchMiniProgramResp class]])
{
NSString *string = resp.extMsg;
// 對(duì)應(yīng)JsApi navigateBackApplication中的extraData字段數(shù)據(jù)
}
}