App与小程序对接
背景:
商品详情页,点击分享,分享到微信好友,点开链接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方法。
注意事项:
- 对接小程序的userName必须是小程序的原始Id。
- 对接小程序的path不能为空,由小程序开发者提供。
- 集成ShareSDK必须是完整版。
- 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中获取。
参考链接:
App与小程序对接的更多相关文章
- APP和小程序哪个更合适企业
很多企业都在纠结做APP好呢,还是做小程序好,那么我们来说说APP和小程序之间的区别,希望通过对比让您了解APP和小程序的功能,让您的企业在制作APP和小程序之间有一个选择. 一. 面向用户群 App ...
- 微信支付之扫码、APP、小程序支付接入详解
做电商平台的小伙伴都知道,支付服务是必不可少的一部分,今天我们开始就说说支付服务的接入及实现.目前在国内,几乎90%中小公司的支付系统都离不开微信支付和支付宝支付.那么大家要思考了,为什么微信支付和支 ...
- 甘果移动老甘:移动互联网变迁中的App和小程序
2018 年 10 月13 日,由又拍云和知晓云联合主办的 Open Talk 丨2018 小程序开发者沙龙系列活动广州站拉开帷幕,甘果移动的 CEO 路文杰(老甘)在沙龙上做了<移动互联网变迁 ...
- 微信小程序唤起其他微信小程序 / 移动应用App唤起小程序
微信小程序唤起其他微信小程序 / 移动应用App唤起小程序 1. 微信小程序唤起微信小程序 小程序唤起其他小程序很简单 先上链接 小程序跳转小程序 Navigator组件 推荐使用 小程序跳转小程序 ...
- 基于 Autojs 的 APP、小程序自动化测试 SDK
原文:https://blog.csdn.net/laobingm/article/details/98317394 autojs sdk基于 Autojs 的 APP.小程序自动化测试 SDK,支持 ...
- 基于 Autojs 的 APP、小程序自动化测试 SDK - 2019年8月3日
原文:https://blog.csdn.net/laobingm/article/details/98317394 autojs sdk基于 Autojs 的 APP.小程序自动化测试 SDK,支持 ...
- 微信小程序对接显示阿里云数据库数据
现实需求 在项目中需求,有时候现场设备发生故障,需要远程的人员知道.除了邮件方式,以微信小程序的方式也很好.今天进行尝试,并制作了一个demo版本. 1.微信小程序申请制作前端 1.1lists文件( ...
- fiddler学习总结--手机端(APP/微信小程序)抓包
步骤一.手机和电脑要在同一个局域网中 步骤二.完成fiddler的基本配置,与web端抓包一样: TOOLS-->options-->connections-->1.设置端口:2.勾 ...
- APP 和小程序中通过日期格式获取时间戳的一个bug
介绍一下背景:业务逻辑就不多说了,就说关键出问题的一步,需要将 2019-10-10 这个格式转换为时间戳.在不同平台不同场景下问题还很怪异 app上:ios 安卓线上的都有问题 ios模拟器没问题 ...
随机推荐
- MeteoInfoLab脚本示例:Trajectory
示例读取HYSPLIT模式输出的气团轨迹数据文件,生成轨迹图层,并显示轨迹各节点的气压图.脚本程序: f = addfile_hytraj('D:/MyProgram/Distribution/jav ...
- day49 Pyhton 数据库Mysql 06
多表查询 连表查询 要进行连接,那一定涉及两个表,两个表中要有关联条件才能进行连接 内连接 只有表一和表二中的连接条件都满足的时候才能显示出来 inner join on /where 条件 sele ...
- JSON,数组根据字段多次分组
我们在前端开发过程中,遇到json对象,有时会需要多次分组.比如说,先按照是业务分组,然后再按照产品线分组,然后通过table或其他方式展示或操作 var obj1=[ { "demp&qu ...
- 网页添加 Live2D 看板娘
我是先参考别人的[点击跳转]博客来做的.不过我发现网上很多人都没有把一些细节写出来,用了别人那里下载的文件后里面的一些跳转链接就跳到他们的页面了.所以我这里写一写如何修改这些跳转链接吧. 1. ...
- Exists 和Not Exists使用
描述:exists表示()内子查询语句返回结果不为空说明where条件成立就会执行主sql语句,如果为空就表示where条件不成立,sql语句就不会执行.not exists和exists相反,子查询 ...
- python接口测试之读取配置文件
1.python使用自带的configparser模块用来读取配置文件,配置文件可以为.conf或.ini结尾 在使用前需要先安装该模块,使用pip安装即可 2.新建一个名为a.conf的配置文件 a ...
- 调试与优化:一次数据中心看板 T+1 改 T+0 优化过程
背景 团队目前在做一个用户数据看板(下面简称看板),基本覆盖用户的所有行为数据,并生成分析数据,用户行为数据来源于多个数据源(餐饮.生活日用.充值消费.交通出行.通讯物流.交通出行.医疗保健.住房物业 ...
- Java9系列第7篇:Java.util.Optional优化与增强
我计划在后续的一段时间内,写一系列关于java 9的文章,虽然java 9 不像Java 8或者Java 11那样的核心java版本,但是还是有很多的特性值得关注.期待您能关注我,我将把java 9 ...
- JS的Document属性和方法(转)
document.title //设置文档标题等价于HTML的title标签document.bgColor //设置页面背景色document.fgColor //设置前景色(文本颜色)docume ...
- Vue踩坑日记-This dependency was not found:element-ui.js
该问题为在Vue启动项目时候报错找不到element-ui模块 解决办法:打开CMD 控制台 CD到项目根目录 我的目录(C:\Users\Administrator\Desktop\cms-heli ...