APP和小程序互相跳转

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作为初始界面。

6

这篇文章还没有评论

发表评论