分享到微信功能之与微信通信

本文介绍如何在第三方应用中实现微信分享后的回调功能。主要步骤包括:创建WXEntryActivity类实现IWXAPIEventHandler接口,配置该Activity允许外部调用,通过WXAPIFactory获取IWXAPI接口对象并注册回调。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在实现第三方应用分享到微信时,项目又提出:当用户单击微信分享对话框的分享或者取消按钮之后,APP能有相应的操作和提示。这里就需要用到微信的回调函数进行通信,从而接收微信的请求及返回值,这里用到的回调函数就是IWXAPIEventHandler。具体使用见下面的一张图片,这是来自微信官网的使用截图。


主要来讲就是:

第一:要在你的包名下新建wxapi目录,并在该目录下新建WXEntryActivity类,可以用该类实现IWXAPIEventHandler的回调函数。

第二:在WXEntryActivity类中通过WXAPIFactory工厂来产生实现IWXAPI接口的对象,在类里可注册实现IWXAPI接口的对象。另外还必须需调用handleIntent(getIntent(),实现IWXAPIEventHandler回调的对象),这样回调函数才会起作用。

第三:配置该activity的exported属性为true,也就是允许微信来调用这个activity。

具体可以参考官方demo的实现,可以在WXEntryActivity类中打log,在onCreate和IWXAPIEventHandler回调函数的onReq和onResq函数下打log,这样你就可以大致猜测出微信是怎样的调用机制。当用户单击分享或者取消按钮之后,微信将首先实例化WXEntryActivity类,这里会调用onCreate函数,实例化之后微信会调用回调函数的onResq()/onReq()方法。

当你看到这里,就会有些困惑,微信调用的类一定要是包名.wxapi下的WXEntryActivity类吗?不管怎么说,我试过了使用其他名称等方式,但都是不能正常使用。如果真是这样,对开发者而言就会有很多的不方便。比如你用的是fragment,那你怎么去回调?我这里采用的是透明的activity,并在回调函数中finish()该Activity。写到这我不得不吐槽下微信分享,为嘛事设计成这种鬼样!希望是我的理解是错误的,欢迎大家提出指正,代码将在后面补上。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值