UNPKG

expo-alipay-sdk

Version:

Alipay SDK for Expo and React Native - Payment integration. Official Alipay payment solution with iOS & Android support. 支付宝支付功能集成

54 lines (46 loc) 1.96 kB
// Expo 配置插件 - 支付宝 SDK const { withInfoPlist, withAndroidManifest, withDangerousMod } = require('@expo/config-plugins'); const fs = require('fs'); const path = require('path'); // ProGuard 混淆规则 const PROGUARD_RULES = '# 支付宝 SDK 混淆规则\n-keep class com.alipay.** {\n *;\n}\n\n-dontwarn com.alipay.**\n'; // 插件主函数 const withExpoAlipay = (config, props = {}) => { config = withInfoPlist(config, (config) => { return config; }); config = withAndroidManifest(config, (config) => { const packageName = config.android?.package || config.android?.packageName; if (packageName && config.modResults.manifest) { const manifest = config.modResults.manifest; if (!manifest.application) { manifest.application = [{}]; } const mainApplication = manifest.application[0]; if (!mainApplication.activity) { mainApplication.activity = []; } } return config; }); config = withDangerousMod(config, [ 'android', async (config) => { const platformProjectRoot = config.modRequest.platformProjectRoot; if (platformProjectRoot) { const proguardRulesPath = path.join(platformProjectRoot, 'app', 'proguard-rules.pro'); let proguardContent = ''; if (fs.existsSync(proguardRulesPath)) { proguardContent = fs.readFileSync(proguardRulesPath, 'utf-8'); } if (!proguardContent.includes('com.alipay')) { proguardContent += '\n' + PROGUARD_RULES; fs.writeFileSync(proguardRulesPath, proguardContent, 'utf-8'); } } return config; } ]); return config; }; module.exports = withExpoAlipay;