背景:

商品详情页,点击分享,分享到微信好友,点开链接App拉起小程序。

用户在小程序浏览完成,跳转至原App购买商品。

功能点:

实现APP与小程序互调。

前提:

已对接好友盟ShareSDK(需要集成完整版SDK,精简版拿不到回调,方法被混淆)

实现方法:

  1.App唤起小程序。

ShareAction(this)
.setPlatform(SHARE_MEDIA.WEIXIN)
.withMedia(getUMMin())
.setCallback(shareListener)
.share()
    /**
* 小程序
*/
private fun getUMMin(): UMMin { val umMin = UMMin(link)//分享链接
umMin.title = title
umMin.description = desc
when (type) {
TYPE_NORMAL -> umMin.setThumb(UMImage(this, thumb))
TYPE_CARD -> umMin.setThumb(UMImage(this, R.drawable.ic_share_logo))
}
umMin.path="pages/product-detail/product-detail?ba_id=${UserUtils.getUserInfo()?.userId}&production_id=${productionId}"//拉起小程序页面的可带参路径,不可为空,为空报错 umMin.userName = WX_USERNAME //填写小程序原始Id(非应用Id)
return umMin
}

  2.小程序回调跳转App。

WXEntryActivity

class WXEntryActivity : WXCallbackActivity() {

    override fun onResp(resp: BaseResp?) {
super.onResp(resp)
} override fun onReq(req: BaseReq?) {
super.onReq(req)
req?.run {
if (type == ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX) {
goToDetail(this as? ShowMessageFromWX.Req)
}
}
finish() } private fun goToDetail(req: ShowMessageFromWX.Req?) {
try {
req?.run {
if (message.type == WXMediaMessage.IMediaObject.TYPE_APPDATA) {
YTRouterUrlExecuter.openUrl(message?.messageExt)
}
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}

经验证,小程序卡片打开小程序后返回App,不会回调onResp方法,而是回调onReq方法。

而分享至微信后,分享成功返回会正常走onResp方法。

注意事项:

  1. 对接小程序的userName必须是小程序的原始Id。
  2. 对接小程序的path不能为空,由小程序开发者提供。
  3. 集成ShareSDK必须是完整版。
  4. WXEntryActivity注册必须设置taskAffinity及launchMode,否则不能正常返回。
  <!-- 微信 -->
<activity
android:name=".wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:taskAffinity="${ApplicationId}"
android:launchMode="singleTask"/>

  5.回调参数在onReq中获取。

参考链接:

https://developers.weixin.qq.com/community/develop/doc/00080e5f8986d0b5d18a3153351800?highLine=onResp

 

App与小程序对接的更多相关文章

  1. APP和小程序哪个更合适企业

    很多企业都在纠结做APP好呢,还是做小程序好,那么我们来说说APP和小程序之间的区别,希望通过对比让您了解APP和小程序的功能,让您的企业在制作APP和小程序之间有一个选择. 一. 面向用户群 App ...

  2. 微信支付之扫码、APP、小程序支付接入详解

    做电商平台的小伙伴都知道,支付服务是必不可少的一部分,今天我们开始就说说支付服务的接入及实现.目前在国内,几乎90%中小公司的支付系统都离不开微信支付和支付宝支付.那么大家要思考了,为什么微信支付和支 ...

  3. 甘果移动老甘:移动互联网变迁中的App和小程序

    2018 年 10 月13 日,由又拍云和知晓云联合主办的 Open Talk 丨2018 小程序开发者沙龙系列活动广州站拉开帷幕,甘果移动的 CEO 路文杰(老甘)在沙龙上做了<移动互联网变迁 ...

  4. 微信小程序唤起其他微信小程序 / 移动应用App唤起小程序

    微信小程序唤起其他微信小程序 / 移动应用App唤起小程序 1. 微信小程序唤起微信小程序 小程序唤起其他小程序很简单 先上链接 小程序跳转小程序 Navigator组件 推荐使用 小程序跳转小程序 ...

  5. 基于 Autojs 的 APP、小程序自动化测试 SDK

    原文:https://blog.csdn.net/laobingm/article/details/98317394 autojs sdk基于 Autojs 的 APP.小程序自动化测试 SDK,支持 ...

  6. 基于 Autojs 的 APP、小程序自动化测试 SDK - 2019年8月3日

    原文:https://blog.csdn.net/laobingm/article/details/98317394 autojs sdk基于 Autojs 的 APP.小程序自动化测试 SDK,支持 ...

  7. 微信小程序对接显示阿里云数据库数据

    现实需求 在项目中需求,有时候现场设备发生故障,需要远程的人员知道.除了邮件方式,以微信小程序的方式也很好.今天进行尝试,并制作了一个demo版本. 1.微信小程序申请制作前端 1.1lists文件( ...

  8. fiddler学习总结--手机端(APP/微信小程序)抓包

    步骤一.手机和电脑要在同一个局域网中 步骤二.完成fiddler的基本配置,与web端抓包一样: TOOLS-->options-->connections-->1.设置端口:2.勾 ...

  9. APP 和小程序中通过日期格式获取时间戳的一个bug

    介绍一下背景:业务逻辑就不多说了,就说关键出问题的一步,需要将 2019-10-10 这个格式转换为时间戳.在不同平台不同场景下问题还很怪异 app上:ios 安卓线上的都有问题  ios模拟器没问题 ...

随机推荐

  1. 【7】进大厂必须掌握的面试题-Java面试-Jsp

    1. jsp的生命周期方法是什么? 方法 描述 公共无效的jspInit() 与servlet的init方法相同,仅被调用一次. 公共无效_jspService(ServletRequest requ ...

  2. 【学习笔记】扩展卢卡斯定理 exLucas

    引子 求 \[C_n^m\ \text{mod}\ p \] 不保证 \(p\) 是质数. 正文 对于传统的 Lucas 定理,必须要求 \(p\) 是质数才行.若 \(p\) 不一定是质数,则需要扩 ...

  3. 数据查询语句:DQL(Data Query Language)

    一.基础查询 1.语法:select 查询列表 from 表名; 2.特点:1.通过select查询完的结果,是一个虚拟的表格,不是真实存在   2.查询列表可以是:字段.表达式.常量.函数等   3 ...

  4. spring boot:用redis+lua限制短信验证码的发送频率(spring boot 2.3.2)

    一,为什么要限制短信验证码的发送频率? 1,短信验证码每条短信都有成本制约, 肯定不能被刷接口的乱发 而且接口被刷会影响到用户的体验, 影响服务端的正常访问, 所以既使有图形验证码等的保护, 我们仍然 ...

  5. flutter——android报错建议Suggestion: add 'tools:replace="android:label"'

    问题: 安装了一个新包,android出现了报错,建议add 'tools:replace="android:label"'. 原因: 项目application的label属性冲 ...

  6. .Net Core 3.0 MVC 中使用 SqlSugar ORM框架

    介绍 SqlSugar 是一款简单易用的ORM ,在国内市场占有率也比较高, 在今年10月份官网改版后  提供了完整的服务,让您的项目没有后顾之忧 下载地址 :https://github.com/s ...

  7. <img>元素边距问题

    解决方式: 给 img 元素设置成 "块" display:block; 另一种 vertical-align: bottom;

  8. 常用手册或官网的url

    1.mysql--> https://www.mysql.com/ 2.菜鸟教程--> http://www.runoob.com 3.maven官网--> https://mave ...

  9. Maven1详解

    Maven详解(一)------ Maven概述   目录 1.引言 2.常规项目开发存在的问题 3.什么是 Maven ? 4.Maven 的历史 5.Maven 的目标 6.Maven 的理念 回 ...

  10. Phoenix创建索引源码过程

    date: 2020-09-27 13:50:00 updated: 2020-09-28 16:30:00 Phoenix创建索引源码过程 org.apache.phoenix.index.Inde ...