APP和小程式互相跳轉
阿新 • • 發佈:2019-01-02
隨大流吧。微信小程式出了這麼久,現在才學習下。
app和小程式互相跳轉:
1、App主動發起小程式卡片分享到微信,微信點選開啟小程式,這時的小程式可以開啟App
2、App主動發起開啟小程式,這時的小程式可以開啟App
目前主要就這兩種方式吧,說是互相跳轉好像不太妥當,畢竟App才是主動一方,小程式只能被動返回,類似於分享,App如果不發起分享到微信,微信是不能返回你的App的。說到這裡大家應該都有一個印象了吧。
至於上面兩種方式的實現方法也簡單,只要把微信官網的程式碼複製過來就能用了。
App主動分享小程式卡片(微信官網):小程式測試版不能分享
WXMiniProgramObject miniProgramObj = new WXMiniProgramObject(); miniProgramObj.webpageUrl = "http://www.qq.com"; // 相容低版本的網頁連結 miniProgramObj.miniprogramType = WXMiniProgramObject.MINIPTOGRAM_TYPE_RELEASE;// 正式版:0,測試版:1,體驗版:2 miniProgramObj.userName = "gh_d43f693ca31f"; // 小程式原始id miniProgramObj.path = "/pages/media"; //小程式頁面路徑 WXMediaMessage msg = new WXMediaMessage(miniProgramObj); msg.title = "小程式訊息Title"; // 小程式訊息title msg.description = "小程式訊息Desc"; // 小程式訊息desc msg.thumbData = getThumb(); // 小程式訊息封面圖片,小於128k SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("webpage"); req.message = msg; req.scene = SendMessageToWX.Req.WXSceneSession; // 目前支援會話 api.sendReq(req);
App主動開啟小程式(微信官網):
String appId = "wxd930ea5d5a258f4f"; // 填應用AppId IWXAPI api = WXAPIFactory.createWXAPI(context, appId); WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req(); req.userName = "gh_d43f693ca31f"; // 填小程式原始id req.path = path; //拉起小程式頁面的可帶參路徑,不填預設拉起小程式首頁 req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;// 可選開啟 開發版,體驗版和正式版 api.sendReq(req);
WXEntryActivity中 public void onResp(BaseResp resp) { if (resp.getType() == ConstantsAPI.COMMAND_LAUNCH_WX_MINIPROGRAM) { WXLaunchMiniProgram.Resp launchMiniProResp = (WXLaunchMiniProgram.Resp) resp; String extraData =launchMiniProResp.extMsg; // 對應JsApi navigateBackApplication中的extraData欄位資料 } }
小程式返回App就更簡單了(微信官網):
<button open-type="launchApp" app-parameter="wechat" binderror="launchAppError">開啟APP</button>
另附:微信分享開啟App:使用魔窗SDK實現,實際是網頁開啟App,蘋果倒是可以直接開啟App,安卓只能用網頁開啟分享再開啟App。具體實現可以檢視官網文件。我是在unity遊戲專案上實現的,安卓需要新增一個透明Activity作為初始介面,不然沒有分配link的介面會實現不了吧,IOS是同事配置的。