• android接入微信API相关细节


    细节1

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

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

    细节2

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

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

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

    1. AndroidManifest.xml配置
    <manifest ....>
    	....
    
    
        <queries>
            <package android:name="com.tencent.mm" />
        queries>
    
        .....
    manifest>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    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))
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    细节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" />
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    HTML网页设计结课作业——11张精美网页 html+css+javascript+bootstarp
    2023-1024
    F. Conditional Mix(数论/dp)
    Three.js一学就会系列:01 第一个3D网站
    司徒理财:黄金今日多空走势预测!原油最新操作建议
    惠普星15和联想小新pro16 哪个好
    CSS3 对齐方式
    Kubernetes
    6.3 ASP.NET Core Web API技术选择
    微信小程序uniapp+django+python的酒店民宿预订系统ea9i3
  • 原文地址:https://blog.csdn.net/sinat_28884723/article/details/127729731