zcw-shared 1.33.0 → 1.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -13
- package/dist/functions/android/integrateFacebookLogin.d.ts +12 -0
- package/dist/functions/android/integrateFacebookLogin.js +91 -0
- package/dist/functions/android/integrateFacebookLogin.js.map +1 -0
- package/dist/functions/android/integrateGoogleLogin.d.ts +10 -0
- package/dist/functions/android/integrateGoogleLogin.js +199 -0
- package/dist/functions/android/integrateGoogleLogin.js.map +1 -0
- package/dist/functions/android/integrateMiuiLogin.d.ts +13 -0
- package/dist/functions/android/integrateMiuiLogin.js +115 -0
- package/dist/functions/android/integrateMiuiLogin.js.map +1 -0
- package/dist/functions/android/integrateQQLogin.d.ts +12 -0
- package/dist/functions/android/integrateQQLogin.js +130 -0
- package/dist/functions/android/integrateQQLogin.js.map +1 -0
- package/dist/functions/android/integrateShareTrace.d.ts +10 -0
- package/dist/functions/android/integrateShareTrace.js +181 -0
- package/dist/functions/android/integrateShareTrace.js.map +1 -0
- package/dist/functions/android/integrateSinaLogin.d.ts +13 -0
- package/dist/functions/android/integrateSinaLogin.js +85 -0
- package/dist/functions/android/integrateSinaLogin.js.map +1 -0
- package/dist/functions/android/integrateThirdPartyModule.d.ts +46 -0
- package/dist/functions/android/integrateThirdPartyModule.js +251 -0
- package/dist/functions/android/integrateThirdPartyModule.js.map +1 -0
- package/dist/functions/android/integrateUniverifyLogin.d.ts +11 -0
- package/dist/functions/android/integrateUniverifyLogin.js +314 -0
- package/dist/functions/android/integrateUniverifyLogin.js.map +1 -0
- package/dist/functions/android/integrateWechatLogin.d.ts +13 -0
- package/dist/functions/android/integrateWechatLogin.js +154 -0
- package/dist/functions/android/integrateWechatLogin.js.map +1 -0
- package/dist/functions/android/integrateWechatShare.d.ts +13 -0
- package/dist/functions/android/integrateWechatShare.js +154 -0
- package/dist/functions/android/integrateWechatShare.js.map +1 -0
- package/dist/functions/android/modifyManifest.d.ts +7 -0
- package/dist/functions/android/modifyManifest.js +24 -0
- package/dist/functions/android/modifyManifest.js.map +1 -1
- package/dist/functions/async/cancellableFetch.d.ts +12 -0
- package/dist/functions/async/cancellableFetch.js +27 -0
- package/dist/functions/async/cancellableFetch.js.map +1 -0
- package/dist/functions/async/cancellableXHR.d.ts +21 -0
- package/dist/functions/async/cancellableXHR.js +96 -0
- package/dist/functions/async/cancellableXHR.js.map +1 -0
- package/dist/functions/functional/constant.d.ts +1 -0
- package/dist/functions/functional/constant.js +4 -0
- package/dist/functions/functional/constant.js.map +1 -0
- package/dist/functions/functional/identity.d.ts +1 -0
- package/dist/functions/functional/identity.js +4 -0
- package/dist/functions/functional/identity.js.map +1 -0
- package/dist/functions/functional/noop.d.ts +1 -0
- package/dist/functions/functional/noop.js +3 -0
- package/dist/functions/functional/noop.js.map +1 -0
- package/dist/functions/image/compressImageToWidth.d.ts +12 -0
- package/dist/functions/image/compressImageToWidth.js +44 -0
- package/dist/functions/image/compressImageToWidth.js.map +1 -0
- package/dist/functions/image/generateFavIcon.d.ts +8 -0
- package/dist/functions/image/generateFavIcon.js +13 -0
- package/dist/functions/image/generateFavIcon.js.map +1 -0
- package/dist/functions/image/renderBankCard.d.ts +52 -0
- package/dist/functions/image/renderBankCard.js +177 -0
- package/dist/functions/image/renderBankCard.js.map +1 -0
- package/dist/functions/image/renderBusinessLicense.d.ts +47 -0
- package/dist/functions/image/renderBusinessLicense.js +187 -0
- package/dist/functions/image/renderBusinessLicense.js.map +1 -0
- package/dist/functions/image/renderDrivingLicense.d.ts +48 -0
- package/dist/functions/image/renderDrivingLicense.js +201 -0
- package/dist/functions/image/renderDrivingLicense.js.map +1 -0
- package/dist/functions/image/renderLicensePlate.d.ts +47 -0
- package/dist/functions/image/renderLicensePlate.js +85 -0
- package/dist/functions/image/renderLicensePlate.js.map +1 -0
- package/dist/functions/software/publishToPgyer.d.ts +16 -0
- package/dist/functions/software/publishToPgyer.js +96 -0
- package/dist/functions/software/publishToPgyer.js.map +1 -0
- package/dist/functions/tencent-cloud/deploy.tcb.js +1 -1
- package/dist/functions/tencent-cloud/deploy.tcb.js.map +1 -1
- package/dist/functions/uniapp/app-plus/buildAndroidApp.js +290 -0
- package/dist/functions/uniapp/app-plus/buildAndroidApp.js.map +1 -1
- package/dist/functions/validation/generateFakeBankCard.d.ts +87 -0
- package/dist/functions/validation/generateFakeBankCard.js +152 -0
- package/dist/functions/validation/generateFakeBankCard.js.map +1 -0
- package/dist/functions/validation/generateFakeBusinessLicense.d.ts +21 -0
- package/dist/functions/validation/generateFakeBusinessLicense.js +160 -0
- package/dist/functions/validation/generateFakeBusinessLicense.js.map +1 -0
- package/dist/functions/validation/generateFakeDrivingLicense.d.ts +31 -0
- package/dist/functions/validation/generateFakeDrivingLicense.js +119 -0
- package/dist/functions/validation/generateFakeDrivingLicense.js.map +1 -0
- package/dist/functions/validation/generateFakeLicensePlate.d.ts +13 -0
- package/dist/functions/validation/generateFakeLicensePlate.js +87 -0
- package/dist/functions/validation/generateFakeLicensePlate.js.map +1 -0
- package/package.json +26 -4
- package/references/blob.d.ts +4 -0
- package/references/fetch.d.ts +22 -0
- package/references/sharp.d.ts +1 -0
- package/references/xhr.d.ts +47 -0
- package/types/pgyer.d.ts +64 -0
- package/types/uniapp-android-build.d.ts +124 -0
package/README.md
CHANGED
|
@@ -383,7 +383,7 @@ export interface AndroidBuildOptions {
|
|
|
383
383
|
// Node.js 环境
|
|
384
384
|
import fs from 'fs'
|
|
385
385
|
import path from 'path'
|
|
386
|
-
import { buildProject } from 'shared/functions/android/buildProject'
|
|
386
|
+
import { buildProject } from 'zcw-shared/functions/android/buildProject'
|
|
387
387
|
|
|
388
388
|
const result = await buildProject(options, {
|
|
389
389
|
existsSync: fs.existsSync,
|
|
@@ -397,7 +397,7 @@ const result = await buildProject(options, {
|
|
|
397
397
|
|
|
398
398
|
// 浏览器 Vue 环境
|
|
399
399
|
import { ref, shallowRef, watch } from 'vue'
|
|
400
|
-
import { useAsyncState } from 'shared/vue-hooks/state/useAsyncState'
|
|
400
|
+
import { useAsyncState } from 'zcw-shared/vue-hooks/state/useAsyncState'
|
|
401
401
|
|
|
402
402
|
// 传入 Vue 运行时函数和浏览器 API(注意:运行时函数通过依赖注入传入,类型通过 import type 导入)
|
|
403
403
|
const { state, isLoading } = useAsyncState(
|
|
@@ -413,7 +413,7 @@ const { state, isLoading } = useAsyncState(
|
|
|
413
413
|
)
|
|
414
414
|
|
|
415
415
|
// 浏览器 DOM 操作
|
|
416
|
-
import { getViewportRect } from 'shared/functions/dom/getViewportRect'
|
|
416
|
+
import { getViewportRect } from 'zcw-shared/functions/dom/getViewportRect'
|
|
417
417
|
|
|
418
418
|
const viewport = getViewportRect({
|
|
419
419
|
innerWidth: window.innerWidth,
|
|
@@ -445,17 +445,17 @@ const viewport = getViewportRect({
|
|
|
445
445
|
|
|
446
446
|
```typescript
|
|
447
447
|
// 导入单个函数
|
|
448
|
-
import { convertColor } from 'shared/functions/color/convertColor'
|
|
449
|
-
import type { RgbColor } from 'shared/types/color'
|
|
448
|
+
import { convertColor } from 'zcw-shared/functions/color/convertColor'
|
|
449
|
+
import type { RgbColor } from 'zcw-shared/types/color'
|
|
450
450
|
|
|
451
451
|
// 导入环境类型
|
|
452
|
-
import type { FileSystem } from 'shared/references/node'
|
|
452
|
+
import type { FileSystem } from 'zcw-shared/references/node'
|
|
453
453
|
|
|
454
454
|
// 导入常量
|
|
455
|
-
import { COLOR_VALIDATION_PATTERNS } from 'shared/constants/colorPatterns'
|
|
455
|
+
import { COLOR_VALIDATION_PATTERNS } from 'zcw-shared/constants/colorPatterns'
|
|
456
456
|
|
|
457
457
|
// 导入Hooks
|
|
458
|
-
import { useStorage } from 'shared/hooks/useStorage'
|
|
458
|
+
import { useStorage } from 'zcw-shared/hooks/useStorage'
|
|
459
459
|
```
|
|
460
460
|
|
|
461
461
|
### Playground 集成
|
|
@@ -475,8 +475,8 @@ import { useStorage } from 'shared/hooks/useStorage'
|
|
|
475
475
|
|
|
476
476
|
```typescript
|
|
477
477
|
// playground/tests/convertColor.test.ts
|
|
478
|
-
import { convertColor } from 'shared/functions/color/convertColor'
|
|
479
|
-
import type { RgbColor } from 'shared/types/color'
|
|
478
|
+
import { convertColor } from 'zcw-shared/functions/color/convertColor'
|
|
479
|
+
import type { RgbColor } from 'zcw-shared/types/color'
|
|
480
480
|
```
|
|
481
481
|
|
|
482
482
|
## Playground 测试指南
|
|
@@ -506,8 +506,8 @@ playground/tests/
|
|
|
506
506
|
#### 1. 基础功能测试
|
|
507
507
|
|
|
508
508
|
```typescript
|
|
509
|
-
import { convertColor } from 'shared/functions/color/convertColor'
|
|
510
|
-
import type { ColorFormat } from 'shared/types/color'
|
|
509
|
+
import { convertColor } from 'zcw-shared/functions/color/convertColor'
|
|
510
|
+
import type { ColorFormat } from 'zcw-shared/types/color'
|
|
511
511
|
|
|
512
512
|
// 基础测试用例
|
|
513
513
|
const testCases = [
|
|
@@ -549,7 +549,7 @@ const edgeCases = [
|
|
|
549
549
|
对于需要特殊环境模拟的函数:
|
|
550
550
|
|
|
551
551
|
```typescript
|
|
552
|
-
import { buildProject } from 'shared/functions/android/buildProject'
|
|
552
|
+
import { buildProject } from 'zcw-shared/functions/android/buildProject'
|
|
553
553
|
|
|
554
554
|
// 创建模拟的依赖函数
|
|
555
555
|
const mockDeps = {
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type IntegrateThirdPartyModuleDeps } from './integrateThirdPartyModule';
|
|
2
|
+
export interface FacebookLoginConfig {
|
|
3
|
+
appId: string;
|
|
4
|
+
clientToken: string;
|
|
5
|
+
oauthAarPath: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function integrateFacebookLogin(projectPath: string, moduleDir: string, packageName: string, config: FacebookLoginConfig, deps: IntegrateThirdPartyModuleDeps): Promise<{
|
|
8
|
+
success: boolean;
|
|
9
|
+
message?: string;
|
|
10
|
+
error?: string;
|
|
11
|
+
logs: string[];
|
|
12
|
+
}>;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { integrateThirdPartyModule } from './integrateThirdPartyModule';
|
|
2
|
+
export async function integrateFacebookLogin(projectPath, moduleDir, packageName, config, deps) {
|
|
3
|
+
const logs = [];
|
|
4
|
+
try {
|
|
5
|
+
logs.push('开始集成Facebook登录模块');
|
|
6
|
+
const libFiles = [
|
|
7
|
+
{
|
|
8
|
+
source: config.oauthAarPath,
|
|
9
|
+
targetName: 'oauth-facebook-release.aar'
|
|
10
|
+
}
|
|
11
|
+
];
|
|
12
|
+
const moduleConfig = {
|
|
13
|
+
name: 'Facebook登录',
|
|
14
|
+
libFiles,
|
|
15
|
+
gradleDependencies: [
|
|
16
|
+
'com.facebook.android:facebook-login:17.0.2'
|
|
17
|
+
],
|
|
18
|
+
dcloudPropertiesConfig: {
|
|
19
|
+
featureName: 'OAuth',
|
|
20
|
+
featureImpl: 'io.dcloud.feature.oauth.OAuthFeatureImpl',
|
|
21
|
+
moduleName: 'OAuth-Facebook',
|
|
22
|
+
moduleImpl: 'io.dcloud.feature.facebook.FacebookOAuthService'
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const result = await integrateThirdPartyModule(projectPath, moduleDir, packageName, moduleConfig, deps);
|
|
26
|
+
logs.push(...result.logs);
|
|
27
|
+
logs.push('配置strings.xml(Facebook资源)');
|
|
28
|
+
const stringsXmlPath = deps.join(projectPath, moduleDir, 'src', 'main', 'res', 'values', 'strings.xml');
|
|
29
|
+
if (!deps.existsSync(stringsXmlPath)) {
|
|
30
|
+
const stringsDir = deps.dirname(stringsXmlPath);
|
|
31
|
+
if (!deps.existsSync(stringsDir)) {
|
|
32
|
+
deps.mkdirSync(stringsDir, { recursive: true });
|
|
33
|
+
}
|
|
34
|
+
const initialXml = `<?xml version="1.0" encoding="utf-8"?>
|
|
35
|
+
<resources>
|
|
36
|
+
</resources>`;
|
|
37
|
+
deps.writeFileSync(stringsXmlPath, initialXml, 'utf8');
|
|
38
|
+
}
|
|
39
|
+
let xmlContent = deps.readFileSync(stringsXmlPath, 'utf8');
|
|
40
|
+
const parser = new deps.xmlParser();
|
|
41
|
+
const xmlDoc = parser.parseFromString(xmlContent, 'text/xml');
|
|
42
|
+
const resourcesElements = xmlDoc.getElementsByTagName('resources');
|
|
43
|
+
if (resourcesElements.length === 0) {
|
|
44
|
+
logs.push('strings.xml格式错误:找不到resources元素');
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
const resourcesElement = resourcesElements[0];
|
|
48
|
+
const existingStrings = xmlDoc.getElementsByTagName('string');
|
|
49
|
+
const stringsToAdd = [
|
|
50
|
+
{ name: 'facebook_app_id', value: config.appId },
|
|
51
|
+
{ name: 'fb_login_protocol_scheme', value: `fb${config.appId}` },
|
|
52
|
+
{ name: 'facebook_client_token', value: config.clientToken }
|
|
53
|
+
];
|
|
54
|
+
for (const { name, value } of stringsToAdd) {
|
|
55
|
+
let exists = false;
|
|
56
|
+
for (let i = 0; i < existingStrings.length; i++) {
|
|
57
|
+
const strElement = existingStrings[i];
|
|
58
|
+
if (strElement.getAttribute('name') === name) {
|
|
59
|
+
strElement.textContent = value;
|
|
60
|
+
exists = true;
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (!exists) {
|
|
65
|
+
const newString = xmlDoc.createElement('string');
|
|
66
|
+
newString.setAttribute('name', name);
|
|
67
|
+
newString.textContent = value;
|
|
68
|
+
resourcesElement.appendChild(newString);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const serializer = new deps.xmlSerializer();
|
|
72
|
+
const newXmlContent = serializer.serializeToString(xmlDoc);
|
|
73
|
+
deps.writeFileSync(stringsXmlPath, newXmlContent, 'utf8');
|
|
74
|
+
logs.push('strings.xml配置完成');
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
success: result.success,
|
|
78
|
+
message: result.message,
|
|
79
|
+
error: result.error,
|
|
80
|
+
logs
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
return {
|
|
85
|
+
success: false,
|
|
86
|
+
error: `集成Facebook登录失败: ${error instanceof Error ? error.message : String(error)}`,
|
|
87
|
+
logs
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=integrateFacebookLogin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integrateFacebookLogin.js","sourceRoot":"","sources":["../../../src/functions/android/integrateFacebookLogin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type IntegrateThirdPartyModuleDeps } from './integrateThirdPartyModule';
|
|
2
|
+
export interface GoogleLoginConfig {
|
|
3
|
+
oauthAarPath: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function integrateGoogleLogin(projectPath: string, moduleDir: string, packageName: string, config: GoogleLoginConfig, deps: IntegrateThirdPartyModuleDeps): Promise<{
|
|
6
|
+
success: boolean;
|
|
7
|
+
message?: string;
|
|
8
|
+
error?: string;
|
|
9
|
+
logs: string[];
|
|
10
|
+
}>;
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { integrateThirdPartyModule } from './integrateThirdPartyModule';
|
|
2
|
+
function addGoogleServicesPlugin(rootBuildGradlePath, deps) {
|
|
3
|
+
try {
|
|
4
|
+
if (!deps.existsSync(rootBuildGradlePath)) {
|
|
5
|
+
return {
|
|
6
|
+
success: false,
|
|
7
|
+
error: `根目录build.gradle文件不存在: ${rootBuildGradlePath}`
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
let gradleContent = deps.readFileSync(rootBuildGradlePath, 'utf8');
|
|
11
|
+
const buildscriptRegex = /buildscript\s*\{/;
|
|
12
|
+
if (buildscriptRegex.test(gradleContent)) {
|
|
13
|
+
const buildscriptMatch = gradleContent.match(buildscriptRegex);
|
|
14
|
+
if (buildscriptMatch) {
|
|
15
|
+
let braceCount = 0;
|
|
16
|
+
let inBuildscriptBlock = false;
|
|
17
|
+
let buildscriptBlockEnd = -1;
|
|
18
|
+
const startPos = buildscriptMatch.index + buildscriptMatch[0].length;
|
|
19
|
+
for (let i = startPos; i < gradleContent.length; i++) {
|
|
20
|
+
if (gradleContent[i] === '{') {
|
|
21
|
+
if (!inBuildscriptBlock)
|
|
22
|
+
inBuildscriptBlock = true;
|
|
23
|
+
braceCount++;
|
|
24
|
+
}
|
|
25
|
+
if (gradleContent[i] === '}') {
|
|
26
|
+
braceCount--;
|
|
27
|
+
if (braceCount === 0 && inBuildscriptBlock) {
|
|
28
|
+
buildscriptBlockEnd = i;
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (buildscriptBlockEnd !== -1) {
|
|
34
|
+
const buildscriptContent = gradleContent.slice(startPos, buildscriptBlockEnd);
|
|
35
|
+
const googleServicesRegex = /com\.google\.gms:google-services:/;
|
|
36
|
+
if (googleServicesRegex.test(buildscriptContent)) {
|
|
37
|
+
return {
|
|
38
|
+
success: true,
|
|
39
|
+
message: 'google-services插件已存在于buildscript/dependencies中'
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (buildscriptRegex.test(gradleContent)) {
|
|
46
|
+
const buildscriptMatch = gradleContent.match(buildscriptRegex);
|
|
47
|
+
if (buildscriptMatch) {
|
|
48
|
+
let braceCount = 0;
|
|
49
|
+
let inBuildscriptBlock = false;
|
|
50
|
+
let buildscriptBlockEnd = -1;
|
|
51
|
+
const startPos = buildscriptMatch.index + buildscriptMatch[0].length;
|
|
52
|
+
for (let i = startPos; i < gradleContent.length; i++) {
|
|
53
|
+
if (gradleContent[i] === '{') {
|
|
54
|
+
if (!inBuildscriptBlock)
|
|
55
|
+
inBuildscriptBlock = true;
|
|
56
|
+
braceCount++;
|
|
57
|
+
}
|
|
58
|
+
if (gradleContent[i] === '}') {
|
|
59
|
+
braceCount--;
|
|
60
|
+
if (braceCount === 0 && inBuildscriptBlock) {
|
|
61
|
+
buildscriptBlockEnd = i;
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (buildscriptBlockEnd !== -1) {
|
|
67
|
+
const buildscriptContent = gradleContent.slice(startPos, buildscriptBlockEnd);
|
|
68
|
+
const dependenciesRegex = /dependencies\s*\{/;
|
|
69
|
+
if (dependenciesRegex.test(buildscriptContent)) {
|
|
70
|
+
const depsMatch = buildscriptContent.match(dependenciesRegex);
|
|
71
|
+
if (depsMatch) {
|
|
72
|
+
let depsBraceCount = 0;
|
|
73
|
+
let inDepsBlock = false;
|
|
74
|
+
let depsBlockEnd = -1;
|
|
75
|
+
const depsStartPos = depsMatch.index + depsMatch[0].length;
|
|
76
|
+
for (let i = depsStartPos; i < buildscriptContent.length; i++) {
|
|
77
|
+
if (buildscriptContent[i] === '{') {
|
|
78
|
+
if (!inDepsBlock)
|
|
79
|
+
inDepsBlock = true;
|
|
80
|
+
depsBraceCount++;
|
|
81
|
+
}
|
|
82
|
+
if (buildscriptContent[i] === '}') {
|
|
83
|
+
depsBraceCount--;
|
|
84
|
+
if (depsBraceCount === 0 && inDepsBlock) {
|
|
85
|
+
depsBlockEnd = startPos + depsStartPos + i;
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (depsBlockEnd !== -1) {
|
|
91
|
+
const googleServicesDep = ` classpath 'com.google.gms:google-services:4.2.0'`;
|
|
92
|
+
gradleContent = gradleContent.slice(0, depsBlockEnd) + '\n' + googleServicesDep + '\n ' + gradleContent.slice(depsBlockEnd);
|
|
93
|
+
deps.writeFileSync(rootBuildGradlePath, gradleContent, 'utf8');
|
|
94
|
+
return {
|
|
95
|
+
success: true,
|
|
96
|
+
message: '已在buildscript/dependencies中添加google-services插件'
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
const insertPos = buildscriptBlockEnd;
|
|
103
|
+
const depsBlock = `
|
|
104
|
+
dependencies {
|
|
105
|
+
classpath 'com.google.gms:google-services:4.2.0'
|
|
106
|
+
}`;
|
|
107
|
+
gradleContent = gradleContent.slice(0, insertPos) + depsBlock + gradleContent.slice(insertPos);
|
|
108
|
+
deps.writeFileSync(rootBuildGradlePath, gradleContent, 'utf8');
|
|
109
|
+
return {
|
|
110
|
+
success: true,
|
|
111
|
+
message: '已在buildscript中创建dependencies并添加google-services插件'
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
const googleServicesBlock = `
|
|
119
|
+
buildscript {
|
|
120
|
+
repositories {
|
|
121
|
+
google()
|
|
122
|
+
}
|
|
123
|
+
dependencies {
|
|
124
|
+
classpath 'com.google.gms:google-services:4.2.0'
|
|
125
|
+
}
|
|
126
|
+
}`;
|
|
127
|
+
gradleContent = googleServicesBlock + '\n' + gradleContent;
|
|
128
|
+
deps.writeFileSync(rootBuildGradlePath, gradleContent, 'utf8');
|
|
129
|
+
return {
|
|
130
|
+
success: true,
|
|
131
|
+
message: '已创建buildscript并添加google-services插件'
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
return {
|
|
135
|
+
success: false,
|
|
136
|
+
error: '无法找到合适的插入位置'
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
return {
|
|
141
|
+
success: false,
|
|
142
|
+
error: `添加google-services插件失败: ${error instanceof Error ? error.message : String(error)}`
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
export async function integrateGoogleLogin(projectPath, moduleDir, packageName, config, deps) {
|
|
147
|
+
const logs = [];
|
|
148
|
+
try {
|
|
149
|
+
logs.push('开始集成Google登录模块');
|
|
150
|
+
const libFiles = [
|
|
151
|
+
{
|
|
152
|
+
source: config.oauthAarPath,
|
|
153
|
+
targetName: 'oauth-google-release.aar'
|
|
154
|
+
}
|
|
155
|
+
];
|
|
156
|
+
const moduleConfig = {
|
|
157
|
+
name: 'Google登录',
|
|
158
|
+
libFiles,
|
|
159
|
+
gradleDependencies: [
|
|
160
|
+
'com.google.android.gms:play-services-auth:19.2.0'
|
|
161
|
+
],
|
|
162
|
+
dcloudPropertiesConfig: {
|
|
163
|
+
featureName: 'OAuth',
|
|
164
|
+
featureImpl: 'io.dcloud.feature.oauth.OAuthFeatureImpl',
|
|
165
|
+
moduleName: 'OAuth-Google',
|
|
166
|
+
moduleImpl: 'io.dcloud.feature.google.GoogleOAuthService'
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
const result = await integrateThirdPartyModule(projectPath, moduleDir, packageName, moduleConfig, deps);
|
|
170
|
+
logs.push(...result.logs);
|
|
171
|
+
logs.push('配置google-services插件');
|
|
172
|
+
const rootBuildGradlePath = deps.join(projectPath, 'build.gradle');
|
|
173
|
+
const pluginResult = addGoogleServicesPlugin(rootBuildGradlePath, {
|
|
174
|
+
existsSync: deps.existsSync,
|
|
175
|
+
readFileSync: deps.readFileSync,
|
|
176
|
+
writeFileSync: deps.writeFileSync
|
|
177
|
+
});
|
|
178
|
+
if (pluginResult.success) {
|
|
179
|
+
logs.push(pluginResult.message || 'google-services插件配置完成');
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
logs.push(`google-services插件配置失败: ${pluginResult.error}`);
|
|
183
|
+
}
|
|
184
|
+
return {
|
|
185
|
+
success: result.success,
|
|
186
|
+
message: result.message,
|
|
187
|
+
error: result.error,
|
|
188
|
+
logs
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
return {
|
|
193
|
+
success: false,
|
|
194
|
+
error: `集成Google登录失败: ${error instanceof Error ? error.message : String(error)}`,
|
|
195
|
+
logs
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=integrateGoogleLogin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integrateGoogleLogin.js","sourceRoot":"","sources":["../../../src/functions/android/integrateGoogleLogin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type IntegrateThirdPartyModuleDeps } from './integrateThirdPartyModule';
|
|
2
|
+
export interface MiuiLoginConfig {
|
|
3
|
+
appId: string;
|
|
4
|
+
appSecret: string;
|
|
5
|
+
redirectUri: string;
|
|
6
|
+
oauthAarPath: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function integrateMiuiLogin(projectPath: string, moduleDir: string, packageName: string, config: MiuiLoginConfig, deps: IntegrateThirdPartyModuleDeps): Promise<{
|
|
9
|
+
success: boolean;
|
|
10
|
+
message?: string;
|
|
11
|
+
error?: string;
|
|
12
|
+
logs: string[];
|
|
13
|
+
}>;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { integrateThirdPartyModule } from './integrateThirdPartyModule';
|
|
2
|
+
export async function integrateMiuiLogin(projectPath, moduleDir, packageName, config, deps) {
|
|
3
|
+
const logs = [];
|
|
4
|
+
try {
|
|
5
|
+
logs.push('开始集成小米登录模块');
|
|
6
|
+
const libFiles = [
|
|
7
|
+
{
|
|
8
|
+
source: config.oauthAarPath,
|
|
9
|
+
targetName: 'oauth-miui-release.aar'
|
|
10
|
+
}
|
|
11
|
+
];
|
|
12
|
+
const moduleConfig = {
|
|
13
|
+
name: '小米登录',
|
|
14
|
+
libFiles,
|
|
15
|
+
manifestModifications: [
|
|
16
|
+
{
|
|
17
|
+
xpath: "//uses-permission[@android:name='android.permission.MODIFY_AUDIO_SETTINGS']",
|
|
18
|
+
action: 'removeElement'
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
xpath: "//uses-permission[@android:name='com.xiaomi.permission.AUTH_SERVICE']",
|
|
22
|
+
action: 'removeElement'
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
xpath: "//manifest",
|
|
26
|
+
action: 'addElement',
|
|
27
|
+
elementName: 'uses-permission',
|
|
28
|
+
attributes: {
|
|
29
|
+
'android:name': 'android.permission.MODIFY_AUDIO_SETTINGS'
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
xpath: "//manifest",
|
|
34
|
+
action: 'addElement',
|
|
35
|
+
elementName: 'uses-permission',
|
|
36
|
+
attributes: {
|
|
37
|
+
'android:name': 'com.xiaomi.permission.AUTH_SERVICE'
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
xpath: "//meta-data[@android:name='MIUI_APPID']",
|
|
42
|
+
action: 'removeElement'
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
xpath: "//meta-data[@android:name='MIUI_APPSECRET']",
|
|
46
|
+
action: 'removeElement'
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
xpath: "//meta-data[@android:name='MIUI_REDIRECT_URI']",
|
|
50
|
+
action: 'removeElement'
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
xpath: "//application",
|
|
54
|
+
action: 'addElement',
|
|
55
|
+
elementName: 'meta-data',
|
|
56
|
+
attributes: {
|
|
57
|
+
'android:name': 'MIUI_APPID',
|
|
58
|
+
'android:value': `_${config.appId}`
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
xpath: "//application",
|
|
63
|
+
action: 'addElement',
|
|
64
|
+
elementName: 'meta-data',
|
|
65
|
+
attributes: {
|
|
66
|
+
'android:name': 'MIUI_APPSECRET',
|
|
67
|
+
'android:value': config.appSecret
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
xpath: "//application",
|
|
72
|
+
action: 'addElement',
|
|
73
|
+
elementName: 'meta-data',
|
|
74
|
+
attributes: {
|
|
75
|
+
'android:name': 'MIUI_REDIRECT_URI',
|
|
76
|
+
'android:value': config.redirectUri
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
xpath: "//activity[@android:name='com.xiaomi.account.openauth.AuthorizeActivity']",
|
|
81
|
+
action: 'removeElement'
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
xpath: "//application",
|
|
85
|
+
action: 'addElement',
|
|
86
|
+
elementName: 'activity',
|
|
87
|
+
attributes: {
|
|
88
|
+
'android:name': 'com.xiaomi.account.openauth.AuthorizeActivity'
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
dcloudPropertiesConfig: {
|
|
93
|
+
featureName: 'OAuth',
|
|
94
|
+
featureImpl: 'io.dcloud.feature.oauth.OAuthFeatureImpl',
|
|
95
|
+
moduleName: 'OAuth-MiUi',
|
|
96
|
+
moduleImpl: 'io.dcloud.feature.oauth.miui.MiUiOAuthService'
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
const result = await integrateThirdPartyModule(projectPath, moduleDir, packageName, moduleConfig, deps);
|
|
100
|
+
return {
|
|
101
|
+
success: result.success,
|
|
102
|
+
message: result.message,
|
|
103
|
+
error: result.error,
|
|
104
|
+
logs: [...logs, ...result.logs]
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
return {
|
|
109
|
+
success: false,
|
|
110
|
+
error: `集成小米登录失败: ${error instanceof Error ? error.message : String(error)}`,
|
|
111
|
+
logs
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=integrateMiuiLogin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integrateMiuiLogin.js","sourceRoot":"","sources":["../../../src/functions/android/integrateMiuiLogin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type IntegrateThirdPartyModuleDeps } from './integrateThirdPartyModule';
|
|
2
|
+
export interface QQLoginConfig {
|
|
3
|
+
appId: string;
|
|
4
|
+
oauthAarPath: string;
|
|
5
|
+
openSdkJarPath: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function integrateQQLogin(projectPath: string, moduleDir: string, packageName: string, config: QQLoginConfig, deps: IntegrateThirdPartyModuleDeps): Promise<{
|
|
8
|
+
success: boolean;
|
|
9
|
+
message?: string;
|
|
10
|
+
error?: string;
|
|
11
|
+
logs: string[];
|
|
12
|
+
}>;
|