app调起微信小程序
一、准备工作
1.在微信开放平台上申请移动应用
获取到AppID,iOS要配置好Universal Link,Universal Link的配置方法可以参考这片文章https://www.jianshu.com/p/c4f09593e01f
2.App内集成微信SDK
SDK的集成方法可以参考官方文档:
https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/iOS.html
3.确认要拉起的微信小程序的原始ID和页面路径
微信小程序原始ID查看方法:
二、写代码
安卓:
String appId = "wxd930ea5d5a258f4f"; // 填移动应用(App)的 AppId,非小程序的 AppID
IWXAPI api = WXAPIFactory.createWXAPI(context, appId);
WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
req.userName = "gh_d43f693ca31f"; // 填小程序原始id
req.path = path; ////拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。
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; //对应小程序组件 <button open-type="launchApp"> 中的 app-parameter 属性
}
}
iOS:
WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];
launchMiniProgramReq.userName = userName; //拉起的小程序的username
launchMiniProgramReq.path = path; ////拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。
launchMiniProgramReq.miniProgramType = miniProgramType; //拉起小程序的类型
return [WXApi sendReq:launchMiniProgramReq];
回调:
-(void)onResp:(BaseResp *)resp
{
if ([resp isKindOfClass:[WXLaunchMiniProgramResp class]])
{
NSString *string = resp.extMsg;
// 对应小程序组件 <button open-type="launchApp"> 中的 app-parameter 属性
}
}
app调起支付宝小程序
一、准备工作
获取支付宝小程序的AppID和页面路径
获取支付宝小程序AppID方法如下:
只有已发布的小程序才可以正常跳转,如果小程序还没上架,想找一个支付宝小程序测试,获取AppID和页面路径方法如下:
1.在支付宝中任意搜索一个小程序并打开
2.点击小程序右上角的三个点按钮
3.点击小程序底部弹出的面板里的分享按钮
4.点击弹出面板里的复制链接按钮
5.把复制的链接粘贴到电脑上的浏览器里
6. 敲回车链接变化之后马上按ESC键
7.按F12键,控制台输入decodeURIComponent(decodeURIComponent('浏览器的链接')),按回车
8.获取到解码后的链接
获取到的链接中scheme参数的值就是完整的scheme链接,里面包括appID、页面路径和其他参数,通过这个链接就可以跳转到相应的支付宝小程序。
二、写代码
把获取到的scheme链接添加到代码中
安卓:
Intent intent=new Intent(Intent.ACTION_VIEW,Uri.parse("alipays://platformapi/startapp?appId=20170713077xxxxx&page=x/yz&query=xx%3dxx"));
startActivity(intent);
iOS:
let urlString = "alipays://platformapi/startapp?appId=20170713077xxxxx&page=x/yz&query=xx%3dxx"
let url = URL(string: urlString)
if UIApplication.shared.canOpenURL(url!) {
UIApplication.shared.open(url!)
}else{
let appString = "https://www.apple.com/itunes/"
let appUrl = URL(string: appString)
UIApplication.shared.open(appUrl!)
}