zenochan / KtWechat

Android 微信 SDK kotlin 封装

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

KtWechat

对微信sdk 的封装, 主要目的是练习 processor 的开发, 让一些没必要经常重复编写的代码有机会自动化生成

目前代码不是最终版本,已经达到了练习的目的,就此停止在这了, 务必不要用在生产环境中

usage

maven { url "http://maven.mjtown.cn/"}
implementation "name.zeno:wechat:0.0.2"
kapt "name.zeno:wechat-compiler:0.0.1"
@Wechat("wechat app id","pkgName")
class MyApp{}
  • Context.isWxAppInstalled: 微信是否安装

  • Context.registerAppToWx: 注册应用到微信

  • AppCompatActivity.wxPay

  • AppcompatActivity.wxAuth

  • AppcompatActivity.wxShare

  • Fragment.wxPay

  • Fragment.wxAuth

  • Fragment.wxShare

Permissions

  • READ_PHONE_STATE
  • WRITE_EXTERNAL_STORAGE

这两个权限需要运行时申请, 其他的为常规权限

proguard

-keep class com.tencent.mm.opensdk.** { *; }
-keep class com.tencent.wxop.** { *; }
-keep class com.tencent.mm.sdk.** { *; }

项目结构

  • annotation: java module, 放注解类
    • 通过注解获取 APP_ID, PKG_NAME
    • 模块中不需要引入 ktl std 依赖,用不上而且会影响后续的引用
  • sdk-wrapper: 对微信 SDK 功能封装, 依赖 annotation
    • 封装跳转逻辑,数据结构
    • manifest 权限以及 activity 配置, 自动合并,无需再处理
  • compiler: 代码生成的实现模块, 依赖 annotation
    • 继承 AbstractProcessor, 在 process 方法中编写 generate code 逻辑
    • src/main/resources/META-INF/services/ 下 javax.annotation.processing.Processor 声明 processor 类
    • 依赖 android api: compile 'com.google.android:android:4.1.1.4'

THANKS

About

Android 微信 SDK kotlin 封装


Languages

Language:Kotlin 91.6%Language:Java 8.4%