APP 跳转微信小程序和回调
在同一开放平台账号下的移动应用及小程序无需关联即可完成跳转,非同一开放平台账号下的小程序需与移动应用(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 跳转微信小程序和回调相关推荐
- Android APP跳转微信小程序和APP跳转支付宝小程序传参
Android APP跳转微信小程序和APP跳转支付宝小程序传参 微信开放文档链接 MINIPROGRAM_TYPE_PREVIEW:体验版. MINIPROGRAM_TYPE_TEST:开发版 MI ...
- APP跳转微信小程序,跳转微信公众号
一.判断手机是否安装了微信的工具类: //判断手机是否安装了某些程序的工具类 public class IsInstallUtils {//判断是否安装了微信public static boolean ...
- uni-app app 跳转 微信小程序(安卓/ios)
uni-app app 跳转 微信小程序(安卓/ios) 近日接到需求,需要实现在 app 中直接跳转到微信小程序中,其实非常简单,uni-app 都已经集成好了. 安卓和ios 有点区别,这个需要注 ...
- 一图了解App跳转微信小程序关注公众号,推送消息
一图了解App跳转微信小程序关注公众号,推送消息:
- uniapp App跳转微信小程序并互相传递参数、接收微信小程序传递的参数
本文是uniapp打包成安卓App. 一.注意事项 1.用到了分享功能,在打包App时,需要配置manifest.json:App 模块配置->Share.按照提示填写微信分享的信息,appid ...
- Android App跳转微信小程序
最近,有一个App跳转小程序的需求,参考微信的官方文档,接入还是比较简单的,不过中途遇到了一个坑,所以记录一下. 首先,需要登录微信开放平台 微信开放平台,创建一个移动应用,然后系统会返回一个appi ...
- App跳转微信小程序、微信公众号
跳转微信小程序: 跳转规则 对于已通过认证的开放平台账号,其移动应用可以跳转至任何合法的小程序,且不限制跳转的小程序数量. 对于未通过认证的开放平台账号,其移动应用仅可以跳转至同一开放平台账号下小程序 ...
- 微信开放标签--H5唤醒手机app/跳转微信小程序
木剑 前提 代码 注意 前提 微信版本要求为:7.0.12及以上 系统版本要求为:iOS 10.3及以上.Android 5.0及以上 与微信小程序绑定的微信公众号必须为已认证的服务号 让专门管理微信 ...
- iOS app跳转微信小程序失败 报bad_param
1 首先查看 配置是否正确 1.1对于已通过认证的开放平台账号,其移动应用可以跳转至任何合法的小程序,且不限制跳转的小程序数量. 1.2对于未通过认证的开放平台账号,其移动应用仅可以跳转至同一开放平 ...
最新文章
- 如何解决Linux下侦听端口被占用
- 《JavaScript启示录》——第1章 JavaScript对象 1.1创建对象
- AI 摄像头翻车:把光头裁判误为足球,观众花钱看了个寂寞...
- StandardWrapper ...$$EnhancerByCGLIB$$b9
- Exthereum - 最新开发的以太坊客户端
- 关于windows的version和OS build version
- python 逐行读取csv_在R中如何逐行读取CSV文件并将内容识别为正确的数据类型?...
- 基于Spring的应用程序-迁移到Junit 5
- 关于udelay(); mdelay(); ndelay(); msleep();
- Resnet论文解读与TensorFlow代码分析
- ko.js循环绑定值问题(工作遇见)
- 转:超越一切的熵增定律
- APOLLO基本介绍
- Debussy软件的脚本调用
- linux crontab在线生成,linux下crontab在线配置解析 互联网技术圈 互联网技术圈
- CSS3实现渐变背景动画特效
- python 爬取知网url
- 小酌重构系列[21]——避免双重否定
- 递归-力扣-526. 优美的排列
- vm内核参数之内存脏页dirty_writeback_centisecs和dirty_expire_centisecs