android接入微信API相关细节

细节1

想要接入微信,如接入分享微信功能、跳转小程序功能等;首先需要到微信开放平台申请AppId,如何申请在开放平台上的流程很清楚,就不赘述了

但有个细节就是应用包名签名,这个应用包名签名记得是以app有正式签名文件条件下获取的,先打包出release apk,再用签名生成工具输入包名即可获得应用签名
在这里插入图片描述

细节2

很多时候为了快速方便的接入,可能微信那么多的文档,比如我这次接入的是拉起微信小程序,但微信开放平台给的文档很简单:
在这里插入图片描述
好吧,为了快速接入,我也不管那么多,前面的接入指南都没看就直接写上代码了,出现了以下报错:

E/MicroMsg.SDK.WXApiImplV10: sendReq failed for wechat app signature check failed

最后通过反复折腾,原来是还没有register微信SDK,并且Manifest.xml文件也没配好

  1. AndroidManifest.xml配置
<manifest ....>
	....

<!--    跟微信相关的必须添加-->
    <queries>
        <package android:name="com.tencent.mm" />
    </queries>

    .....
</manifest>
  1. 注册SDK
    在app入口界面(比如MainActivity)注册SDK
fun regToWx(context: Context) {
    // 通过 WXAPIFactory 工厂,获取 IWXAPI 的实例
    val api = WXAPIFactory.createWXAPI(context, APP_ID)

    // 将应用的 appId 注册到微信
    api.registerApp(APP_ID)

    //建议动态监听微信启动广播进行注册到微信
    context.registerReceiver(object : BroadcastReceiver() {
        override fun onReceive(context: Context, intent: Intent) {
            // 将该 app 注册到微信
            api?.registerApp(APP_ID)
        }
    }, IntentFilter(ConstantsAPI.ACTION_REFRESH_WXAPP))
}

细节3

在包名下创建:WXEntryActivity,继承Activity,实现IWXAPIEventHandler接口
其中的细节
比如app的应用包名为:com.company.test,那么WXEntryActivity则必须建在com.company.test.wxapi的包中,因为有时候遇到了组件化开发/插件化开发时候,会习惯性以模块作为包名,从而导致了包名错误,无法正常使用微信AP
最后再在AndroidManifest.xml中配置:

<activity
    android:name="com.company.test.wxapi.WXEntryActivity"
    android:exported="true"
    android:taskAffinity="com.company.test"
    android:launchMode="singleTop" />
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TenTenXu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值