在同一开放平台账号下的移动应用及小程序无需关联即可完成跳转,非同一开放平台账号下的小程序需与移动应用(APP)成功关联后才支持跳转。

可在“管理中心-移动应用-应用详情-关联小程序信息”,为通过审核的移动应用发起关联小程序操作。

拉起

App打开下程序有两种方式:

1、通过App分享小程序卡片到微信,然后在微信上点击小程序卡片打开小程序,这时小程序也可以打开App

• 第一步:你需要到微信开放平台 将你的app 关联上你的小程序!
• 第二步:你工程中需要导入有 wechatOpenSDK
• 第三步: 分享小程序卡片类型

官方文档:​ ​https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317332&token=&lang=zh_CN​​[1]

2、通过App主动的调用 api 打开小程序,这时候小程序也可以打开App

官方文档:​ ​https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=21526646385rK1Bs&token=&lang=zh_CN​​[2]

回调

当小程序从 APP 分享消息卡片的场景打开(场景值 1036,APP 分享小程序文档 iOS / Android) 或从 APP 打开的场景打开时(场景值 1069),小程序会获得打开 APP 的能力,此时用户点击按钮可以打开分享该小程序卡片/拉起该小程序的 APP。即小程序不能打开任意 APP,只能 跳回 APP。

options.scene是1036,这个场景id表示app分享。

options.scene是1069,这个场景id表示从app打开。

按微信文档中描述,从小程序中跳回App只能通过点击小程序中的按钮方可跳回,如何实现点击按钮跳回App,并携带参数呢,需如下两步

App端:

需要创建WXEntryActivty,实现IWXAPIEventHandler接口,重写onResp方法。注意Acitvity需要在Manifest文件中声明 android:exported="true",这样才可以被外部唤起

public void onResp(BaseResp resp) {if (resp.getType() == ConstantsAPI.COMMAND_LAUNCH_WX_MINIPROGRAM) {WXLaunchMiniProgram.Resp launchMiniProResp = (WXLaunchMiniProgram.Resp) resp;String extraData =launchMiniProResp.extMsg; // 对应下面小程序中的app-parameter字段的value}
}

小程序端:

需要将 ​​<button>​​ 组件 open-type 的值设置为 launchApp。如果需要在打开 APP 时向 APP 传递参数,可以设置 app-parameter 为要传递的参数。通过 binderror 可以监听打开 APP 的错误事件。

<view class='suspension'><button class="server_button" open-type="launchApp" app-parameter="wechat" binderror="launchAppError">打开APP</button>
</view>

这样App拿到的内容就是wechat。

<button class='server_button' open-type="launchApp" app-parameter="MemberId={{MemberId}}&MemberStatus={{MemberStatus}}" binderror="launchAppError">返回App
</button>

这样可以传参数给App

扩展

再下一步的需求是多个App跳转一个小程序,再分别返回不同的App;一个App跳转不同的小程序,接受不同的返回内容。

从App拉起小程序页面的路径是可以带参数的,我们就利用这个参数判断是从那个App跳到小程序的。

例如:

名称为a的App跳转路径为:

"pages/index/index?type=appA"

名称为b的App跳转路径为:

"pages/index/index?type=appB"

小程序端接收参数:

onLoad: function (options) {
    console.log(options.type); //app传递过来的参数 可以判断a或者b
},

使用场景

1、APP 跳转微信小程序进行支付

目的:可以避开APP各种审核、避免APP高费率问题、有时小程序端有服务商收益

对接步骤:

1、APP端创建订单,带订单号和用户id参数吊起小程序指定页面2、在小程序指定页面接收参数,用code换取openid, 携带参数请求后台接口发起支付,获取支付参数3、小程序端携带支付参数调起微信支付,进行支付4、支付完成点击“返回APP”按钮,跳转到APP5、APP回调方法中接收到回调请求,验证订单支付状态,走后续逻辑

​​APP跳转小程序​​、​​APP唤起小程序​​

引用链接

​​[1]​​ https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317332&token=&lang=zh_CN: ​ ​https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317332&token=&lang=zh_CN

​​[2]​ https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=21526646385rK1Bs&token=&lang=zh_CN: ​ ​https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=21526646385rK1Bs&token=&lang=zh_CN

APP 跳转微信小程序和回调相关推荐

  1. Android APP跳转微信小程序和APP跳转支付宝小程序传参

    Android APP跳转微信小程序和APP跳转支付宝小程序传参 微信开放文档链接 MINIPROGRAM_TYPE_PREVIEW:体验版. MINIPROGRAM_TYPE_TEST:开发版 MI ...

  2. APP跳转微信小程序,跳转微信公众号

    一.判断手机是否安装了微信的工具类: //判断手机是否安装了某些程序的工具类 public class IsInstallUtils {//判断是否安装了微信public static boolean ...

  3. uni-app app 跳转 微信小程序(安卓/ios)

    uni-app app 跳转 微信小程序(安卓/ios) 近日接到需求,需要实现在 app 中直接跳转到微信小程序中,其实非常简单,uni-app 都已经集成好了. 安卓和ios 有点区别,这个需要注 ...

  4. 一图了解App跳转微信小程序关注公众号,推送消息

    一图了解App跳转微信小程序关注公众号,推送消息:

  5. uniapp App跳转微信小程序并互相传递参数、接收微信小程序传递的参数

    本文是uniapp打包成安卓App. 一.注意事项 1.用到了分享功能,在打包App时,需要配置manifest.json:App 模块配置->Share.按照提示填写微信分享的信息,appid ...

  6. Android App跳转微信小程序

    最近,有一个App跳转小程序的需求,参考微信的官方文档,接入还是比较简单的,不过中途遇到了一个坑,所以记录一下. 首先,需要登录微信开放平台 微信开放平台,创建一个移动应用,然后系统会返回一个appi ...

  7. App跳转微信小程序、微信公众号

    跳转微信小程序: 跳转规则 对于已通过认证的开放平台账号,其移动应用可以跳转至任何合法的小程序,且不限制跳转的小程序数量. 对于未通过认证的开放平台账号,其移动应用仅可以跳转至同一开放平台账号下小程序 ...

  8. 微信开放标签--H5唤醒手机app/跳转微信小程序

    木剑 前提 代码 注意 前提 微信版本要求为:7.0.12及以上 系统版本要求为:iOS 10.3及以上.Android 5.0及以上 与微信小程序绑定的微信公众号必须为已认证的服务号 让专门管理微信 ...

  9. iOS app跳转微信小程序失败 报bad_param

    1  首先查看 配置是否正确 1.1对于已通过认证的开放平台账号,其移动应用可以跳转至任何合法的小程序,且不限制跳转的小程序数量. 1.2对于未通过认证的开放平台账号,其移动应用仅可以跳转至同一开放平 ...

最新文章

  1. 如何解决Linux下侦听端口被占用
  2. 《JavaScript启示录》——第1章 JavaScript对象 1.1创建对象
  3. AI 摄像头翻车:把光头裁判误为足球,观众花钱看了个寂寞...
  4. StandardWrapper ...$$EnhancerByCGLIB$$b9
  5. Exthereum - 最新开发的以太坊客户端
  6. 关于windows的version和OS build version
  7. python 逐行读取csv_在R中如何逐行读取CSV文件并将内容识别为正确的数据类型?...
  8. 基于Spring的应用程序-迁移到Junit 5
  9. 关于udelay(); mdelay(); ndelay(); msleep();
  10. Resnet论文解读与TensorFlow代码分析
  11. ko.js循环绑定值问题(工作遇见)
  12. 转:超越一切的熵增定律
  13. APOLLO基本介绍
  14. Debussy软件的脚本调用
  15. linux crontab在线生成,linux下crontab在线配置解析 互联网技术圈 互联网技术圈
  16. CSS3实现渐变背景动画特效
  17. python 爬取知网url
  18. 小酌重构系列[21]——避免双重否定
  19. 递归-力扣-526. 优美的排列
  20. vm内核参数之内存脏页dirty_writeback_centisecs和dirty_expire_centisecs

热门文章

  1. 惠花生活v7.5.2
  2. Matplotlib从入门到精通05-样式色彩秀芳华
  3. MySQL异构同步_详解MySQL数据库异构数据同步
  4. excel加水印,由于excel没有加水印功能,实际上操作是将图片丢进去
  5. 苹果WWDC将于6月8日夏季发布会苹果WWDC发布会直播地址
  6. C语言中如何测量各种变量的长度
  7. Android 原生锁屏页面音乐控制
  8. 记一次macbook pro A1708更换电池的经历
  9. AI+社区智能管理,赋能智慧城市人情共「智」
  10. C#课程设计(购物平台)