integrateWechatLogin
集成微信登录到Android项目,自动配置相关文件和依赖。
前置依赖
依赖参数
| 参数名 | 类型 | 说明 |
|---|---|---|
deps.existsSync | FileSystem['existsSync'] | 检查文件是否存在 |
deps.readFileSync | FileSystem['readFileSync'] | 读取文件内容 |
deps.writeFileSync | FileSystem['writeFileSync'] | 写入文件内容 |
deps.copyFileSync | FileSystem['copyFileSync'] | 复制文件 |
deps.join | Path['join'] | 路径拼接 |
deps.xmlParser | XMLParserConstructor | XML 解析器构造函数 |
deps.xmlSerializer | XMLSerializerConstructor | XML 序列化器构造函数 |
deps.xpath | XPath | XPath 查询对象 |
环境要求
- @xmldom/xmldom: XML DOM 解析库
- xpath: XPath 查询库
bash
npm install @xmldom/xmldom xpath函数签名
typescript
function integrateWechatLogin(
projectPath: string,
moduleDir: string,
packageName: string,
config: WechatLoginConfig,
deps: IntegrateThirdPartyModuleDeps
): Promise<{ success: boolean; message?: string; error?: string; logs: string[] }>
interface WechatLoginConfig {
appId: string // 微信AppID
appSecret: string // 微信AppSecret
oauthAarPath: string // oauth-weixin-release.aar文件路径
wxEntryActivityPath: string // WXEntryActivity.java文件路径
}参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
projectPath | string | 是 | Android项目路径 |
moduleDir | string | 是 | 模块目录(如 'app' 或 'HBuilder-uniPlugin') |
packageName | string | 是 | 应用包名 |
config.appId | string | 是 | 微信AppID |
config.appSecret | string | 是 | 微信AppSecret |
config.oauthAarPath | string | 是 | oauth-weixin-release.aar文件路径 |
config.wxEntryActivityPath | string | 是 | WXEntryActivity.java文件路径 |
deps | IntegrateThirdPartyModuleDeps | 是 | 依赖注入对象 |
返回值
| 类型 | 说明 |
|---|---|
Promise<{ success: boolean; message?: string; error?: string; logs: string[] }> | Promise,解析为集成结果对象 |
工作原理
- 构建模块配置:根据微信登录配置构建第三方模块配置对象
- 拷贝库文件:将
oauth-weixin-release.aar拷贝到libs目录 - 添加Gradle依赖:在
build.gradle中添加微信SDK依赖 - 拷贝Activity文件:将
WXEntryActivity.java拷贝到wxapi目录,并替换包名 - 修改AndroidManifest.xml:
- 添加
MODIFY_AUDIO_SETTINGS权限 - 添加
WX_APPID和WX_SECRETmeta-data - 注册
WXEntryActivity,配置 intent-filter 和 scheme
- 添加
- 配置dcloud_properties.xml:添加 OAuth 功能配置
- 返回结果:包含成功状态、消息、错误信息和详细日志
自动处理文件拷贝、依赖配置和清单文件修改,确保微信登录功能正确集成。