@huaapp001/m-play 0.0.1

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.
Files changed (58) hide show
  1. package/LICENSE +20 -0
  2. package/MPlay.podspec +20 -0
  3. package/README.md +33 -0
  4. package/android/build.gradle +83 -0
  5. package/android/gradle.properties +5 -0
  6. package/android/src/main/AndroidManifest.xml +2 -0
  7. package/android/src/main/java/com/mplay/MPlayModule.kt +23 -0
  8. package/android/src/main/java/com/mplay/MPlayPackage.kt +33 -0
  9. package/ios/MPlay.h +5 -0
  10. package/ios/MPlay.mm +18 -0
  11. package/lib/module/NativeMPlay.js +5 -0
  12. package/lib/module/NativeMPlay.js.map +1 -0
  13. package/lib/module/config/index.js +29 -0
  14. package/lib/module/config/index.js.map +1 -0
  15. package/lib/module/index.js +6 -0
  16. package/lib/module/index.js.map +1 -0
  17. package/lib/module/package/assets/loading.png +0 -0
  18. package/lib/module/package/atoms/global.js +20 -0
  19. package/lib/module/package/atoms/global.js.map +1 -0
  20. package/lib/module/package/components/webview/index.js +89 -0
  21. package/lib/module/package/components/webview/index.js.map +1 -0
  22. package/lib/module/package/const/storage.js +12 -0
  23. package/lib/module/package/const/storage.js.map +1 -0
  24. package/lib/module/package/hooks/useAppGetUID.js +47 -0
  25. package/lib/module/package/hooks/useAppGetUID.js.map +1 -0
  26. package/lib/module/package/hooks/useGetNetwork.js +19 -0
  27. package/lib/module/package/hooks/useGetNetwork.js.map +1 -0
  28. package/lib/module/package/hooks/useGetUserToken.js +48 -0
  29. package/lib/module/package/hooks/useGetUserToken.js.map +1 -0
  30. package/lib/module/package/hooks/useGoogleAndIosLogin.js +34 -0
  31. package/lib/module/package/hooks/useGoogleAndIosLogin.js.map +1 -0
  32. package/lib/module/package/hooks/useInitAfInfo.js +183 -0
  33. package/lib/module/package/hooks/useInitAfInfo.js.map +1 -0
  34. package/lib/module/package/request/constants.js +14 -0
  35. package/lib/module/package/request/constants.js.map +1 -0
  36. package/lib/module/package/request/index.js +70 -0
  37. package/lib/module/package/request/index.js.map +1 -0
  38. package/lib/module/package/request/type.js +4 -0
  39. package/lib/module/package/request/type.js.map +1 -0
  40. package/lib/module/package/screens/home/index.js +90 -0
  41. package/lib/module/package/screens/home/index.js.map +1 -0
  42. package/lib/module/package/screens/middle/components/CustomProgressBar.js +131 -0
  43. package/lib/module/package/screens/middle/components/CustomProgressBar.js.map +1 -0
  44. package/lib/module/package/screens/middle/index.js +105 -0
  45. package/lib/module/package/screens/middle/index.js.map +1 -0
  46. package/lib/module/package/utils/extractQueryParams.js +13 -0
  47. package/lib/module/package/utils/extractQueryParams.js.map +1 -0
  48. package/lib/module/package/utils/getUrlFromDevice.js +36 -0
  49. package/lib/module/package/utils/getUrlFromDevice.js.map +1 -0
  50. package/lib/module/package/utils/optionalDependencies.js +70 -0
  51. package/lib/module/package/utils/optionalDependencies.js.map +1 -0
  52. package/lib/module/package/utils/rwd.js +20 -0
  53. package/lib/module/package/utils/rwd.js.map +1 -0
  54. package/lib/module/types/global.d.js +4 -0
  55. package/lib/module/types/global.d.js.map +1 -0
  56. package/lib/module/types/optional-modules.d.js +2 -0
  57. package/lib/module/types/optional-modules.d.js.map +1 -0
  58. package/package.json +173 -0
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+
3
+ import AsyncStorage from '@react-native-async-storage/async-storage';
4
+ import Clipboard from '@react-native-clipboard/clipboard';
5
+ import { isFirstInitAfSuccessAtom, schemeDeepLinkParamsAtom } from "../atoms/global.js";
6
+ import { useAtomValue, useSetAtom } from 'jotai';
7
+ import { useEffect } from 'react';
8
+ import { Linking } from 'react-native';
9
+ import appsFlyer from 'react-native-appsflyer';
10
+ import { APP_FIRST_INIT_ADJUST_KEY } from "../const/storage.js";
11
+ import useGetNetwork from "./useGetNetwork.js";
12
+ import { isAllowAttAccessAtom } from "../atoms/global.js";
13
+ import { extractQueryParams } from "../utils/extractQueryParams.js";
14
+ import { getUrlFromDevice } from "../utils/getUrlFromDevice.js";
15
+ import { getConfig } from "../../config/index.js";
16
+ const useInitAfInfo = () => {
17
+ const systemConfig = getConfig();
18
+ const setSchemeDeepLinkParamsAtom = useSetAtom(schemeDeepLinkParamsAtom);
19
+ const [isConnected] = useGetNetwork();
20
+ const isAllowAttAccess = useAtomValue(isAllowAttAccessAtom);
21
+ const setIsFirstInitAfSuccessAtom = useSetAtom(isFirstInitAfSuccessAtom);
22
+
23
+ /** 处理深链信息 */
24
+ const processDeepLink = data => {
25
+ const {
26
+ deeplink,
27
+ isAJ = false,
28
+ isLoadTwo = false
29
+ } = data;
30
+ // TODO 可删除
31
+ console.log('deeplinkdeeplink------->>>>>', deeplink);
32
+ if (!isLoadTwo && isAJ) {
33
+ global.IS_FIRST_LOAD_DEEP_LINK = true;
34
+ global.AF_END_LOAD_TIME = new Date().getTime();
35
+ }
36
+ let params = {};
37
+ if (deeplink.includes(systemConfig.adjustConfig.ONELINK_SHARE_VALUE)) {
38
+ const url = deeplink.split(systemConfig.adjustConfig.ONELINK_SHARE_VALUE)[1];
39
+ params = extractQueryParams(url) ?? {};
40
+ if (params.deep_link_value) {
41
+ processDeepLink({
42
+ deeplink: systemConfig.adjustConfig.ONELINK_NO_HTTP_VALUE + decodeURIComponent(params.deep_link_value),
43
+ isAJ,
44
+ isLoadTwo: true
45
+ });
46
+ return;
47
+ }
48
+ }
49
+ if (deeplink.includes(systemConfig.adjustConfig.ONELINK_NO_HTTP_VALUE)) {
50
+ const url = deeplink.split(systemConfig.adjustConfig.ONELINK_NO_HTTP_VALUE)[1];
51
+ params = extractQueryParams(url) ?? {};
52
+ // 做一个兜底处理 目前安卓模拟器会出现右边的情况 ONELINK_NO_HTTP_VALUE?deep_link_value=ONELINK_NO_HTTP_VALUE
53
+ if (params.deep_link_value) {
54
+ processDeepLink({
55
+ deeplink: systemConfig.adjustConfig.ONELINK_NO_HTTP_VALUE + decodeURIComponent(params.deep_link_value),
56
+ isAJ,
57
+ isLoadTwo: true
58
+ });
59
+ return;
60
+ }
61
+ }
62
+ console.log('params', params);
63
+ setSchemeDeepLinkParamsAtom(params);
64
+ setIsFirstInitAfSuccessAtom(true);
65
+ };
66
+
67
+ /** 剪切板信息 */
68
+ const handlePasteboardInfo = async () => {
69
+ // TODO 可删除
70
+ console.log('deeplinkdeeplink------->>>>>handlePasteboardInfo');
71
+ // 若是之前执行过,该值是true,但是之前若是没给它赋值是不会相等的
72
+ const isNotFirstInit = (await AsyncStorage.getItem(APP_FIRST_INIT_ADJUST_KEY)) === 'true';
73
+ // TODO 可删除
74
+ console.log('deeplinkdeeplink------->>>>>handlePasteboardInfo---isNotFirstInit', await AsyncStorage.getItem(APP_FIRST_INIT_ADJUST_KEY), isNotFirstInit);
75
+ if (isNotFirstInit) {
76
+ return;
77
+ }
78
+ // 剪切板内容
79
+ let pasteboardValue = await Clipboard.getString();
80
+ // TODO 可删除
81
+ console.log('deeplinkdeeplink------->>>>>handlePasteboardInfo---pasteboardValue', pasteboardValue);
82
+ if (pasteboardValue && pasteboardValue.includes(systemConfig.adjustConfig.completePrefixUrl)) {
83
+ global.wakeUpDeepLinkType = 'clipboard';
84
+ }
85
+ if (!pasteboardValue || !pasteboardValue.includes(systemConfig.adjustConfig.completePrefixUrl)) {
86
+ // 走设备是否匹配 请求接口返回信息
87
+ pasteboardValue = await getUrlFromDevice();
88
+ if (pasteboardValue) {
89
+ global.wakeUpDeepLinkType = 'ip';
90
+ }
91
+ }
92
+ if (pasteboardValue) {
93
+ processDeepLink({
94
+ deeplink: pasteboardValue,
95
+ isAJ: !isNotFirstInit
96
+ });
97
+ }
98
+ await AsyncStorage.setItem(APP_FIRST_INIT_ADJUST_KEY, 'true');
99
+ };
100
+ useEffect(() => {
101
+ // TODO 可删除
102
+ console.log('deeplinkdeeplink------->>>>>isAllowAttAccess', isAllowAttAccess);
103
+ if (!isAllowAttAccess) {
104
+ return;
105
+ }
106
+ // TODO 可删除
107
+ console.log('isAllowAttAccessisAllowAttAccess111---->>>.', isAllowAttAccess);
108
+ // 记录下af初始化加载时的时间
109
+ global.AF_START_LOAD_TIME = new Date().getTime();
110
+ appsFlyer.onDeepLink(res => {
111
+ // TODO 可删除
112
+ console.log('deeplinkdeeplink------->>>>>deepLinkStatus', res);
113
+ // 若是对应这个状态直接走兜底逻辑
114
+ if (res?.deepLinkStatus === 'NOT_FOUND') {
115
+ handlePasteboardInfo();
116
+ return;
117
+ }
118
+ const linkValue = decodeURIComponent(res?.data?.deep_link_value);
119
+ // 若是值不存在走兜底逻辑
120
+ if (!linkValue || linkValue === 'undefined') {
121
+ handlePasteboardInfo();
122
+ return;
123
+ }
124
+ global.wakeUpDeepLinkType = 'af';
125
+ processDeepLink({
126
+ deeplink: `${systemConfig.adjustConfig.ONELINK_NO_HTTP_VALUE}?${linkValue}`,
127
+ isAJ: res?.isDeferred
128
+ });
129
+ AsyncStorage.setItem(APP_FIRST_INIT_ADJUST_KEY, 'true');
130
+ });
131
+ // TODO 可删除
132
+ console.log('appsFlyerappsFlyer---->>>', appsFlyer);
133
+ appsFlyer.initSdk({
134
+ devKey: systemConfig.adjustConfig.devKey,
135
+ isDebug: __DEV__,
136
+ appId: systemConfig.adjustConfig.appId,
137
+ onInstallConversionDataListener: true,
138
+ onDeepLinkListener: true,
139
+ //for iOS 14.5
140
+ timeToWaitForATTUserAuthorization: 10
141
+ }, result => {
142
+ console.log(result, 'isAllowAttAccessisAllowAttAccessresult');
143
+ }, error => {
144
+ console.error(error, 'isAllowAttAccessisAllowAttAccesserror');
145
+ });
146
+ // 或者9秒之后设置为true
147
+ setTimeout(() => {
148
+ AsyncStorage.setItem(APP_FIRST_INIT_ADJUST_KEY, 'true');
149
+ }, Number(systemConfig.adjustConfig.ADJUST_MAX_DELAY_TIME) + 1000);
150
+ // 监听 已经启动,但是被h5换起来了会触发这个方法
151
+ Linking.addEventListener('url', ({
152
+ url
153
+ }) => {
154
+ processDeepLink({
155
+ deeplink: url
156
+ });
157
+ });
158
+ Linking.getInitialURL().then(url => {
159
+ // 冷启动的时候,会触发这个
160
+ if (url) {
161
+ processDeepLink({
162
+ deeplink: url
163
+ });
164
+ }
165
+ });
166
+ }, [setSchemeDeepLinkParamsAtom, setIsFirstInitAfSuccessAtom, isAllowAttAccess]);
167
+ useEffect(() => {
168
+ if (!isConnected) {
169
+ return;
170
+ }
171
+ const timeout = setTimeout(async () => {
172
+ if ((await AsyncStorage.getItem(APP_FIRST_INIT_ADJUST_KEY)) !== 'true') {
173
+ await handlePasteboardInfo();
174
+ }
175
+ setIsFirstInitAfSuccessAtom(true);
176
+ }, Number(systemConfig.adjustConfig.ADJUST_MAX_DELAY_TIME));
177
+ return () => {
178
+ clearTimeout(timeout);
179
+ };
180
+ }, [isConnected]);
181
+ };
182
+ export default useInitAfInfo;
183
+ //# sourceMappingURL=useInitAfInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AsyncStorage","Clipboard","isFirstInitAfSuccessAtom","schemeDeepLinkParamsAtom","useAtomValue","useSetAtom","useEffect","Linking","appsFlyer","APP_FIRST_INIT_ADJUST_KEY","useGetNetwork","isAllowAttAccessAtom","extractQueryParams","getUrlFromDevice","getConfig","useInitAfInfo","systemConfig","setSchemeDeepLinkParamsAtom","isConnected","isAllowAttAccess","setIsFirstInitAfSuccessAtom","processDeepLink","data","deeplink","isAJ","isLoadTwo","console","log","global","IS_FIRST_LOAD_DEEP_LINK","AF_END_LOAD_TIME","Date","getTime","params","includes","adjustConfig","ONELINK_SHARE_VALUE","url","split","deep_link_value","ONELINK_NO_HTTP_VALUE","decodeURIComponent","handlePasteboardInfo","isNotFirstInit","getItem","pasteboardValue","getString","completePrefixUrl","wakeUpDeepLinkType","setItem","AF_START_LOAD_TIME","onDeepLink","res","deepLinkStatus","linkValue","isDeferred","initSdk","devKey","isDebug","__DEV__","appId","onInstallConversionDataListener","onDeepLinkListener","timeToWaitForATTUserAuthorization","result","error","setTimeout","Number","ADJUST_MAX_DELAY_TIME","addEventListener","getInitialURL","then","timeout","clearTimeout"],"sourceRoot":"../../../../src","sources":["package/hooks/useInitAfInfo.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ export const REQUEST_METHODS = {
4
+ GET: 'GET',
5
+ POST: 'POST',
6
+ PUT: 'PUT',
7
+ DELETE: 'DELETE'
8
+ };
9
+ export const CONTENT_TYPE = {
10
+ JSON: 'application/json;charset=UTF-8',
11
+ FORM_URLENCODED: 'application/x-www-form-urlencoded;charset=UTF-8',
12
+ FORM_DATA: 'multipart/form-data;charset=UTF-8'
13
+ };
14
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["REQUEST_METHODS","GET","POST","PUT","DELETE","CONTENT_TYPE","JSON","FORM_URLENCODED","FORM_DATA"],"sourceRoot":"../../../../src","sources":["package/request/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,eAAe,GAAG;EAC7BC,GAAG,EAAE,KAAK;EACVC,IAAI,EAAE,MAAM;EACZC,GAAG,EAAE,KAAK;EACVC,MAAM,EAAE;AACV,CAAC;AAED,OAAO,MAAMC,YAAY,GAAG;EAC1BC,IAAI,EAAE,gCAAgC;EACtCC,eAAe,EAAE,iDAAiD;EAClEC,SAAS,EAAE;AACb,CAAC","ignoreList":[]}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ import { Platform } from 'react-native';
4
+ import axios from 'axios';
5
+ import { CONTENT_TYPE } from "./constants.js";
6
+ import { getConfig } from "../../config/index.js";
7
+ const createAxiosInstance = () => {
8
+ const systemConfig = getConfig();
9
+ const instance = axios.create({
10
+ baseURL: systemConfig.header.apiUrl,
11
+ timeout: 10000,
12
+ headers: {
13
+ 'Content-Type': CONTENT_TYPE.JSON
14
+ }
15
+ });
16
+ instance.interceptors.request.use(config => {
17
+ const mergedConfig = {
18
+ ...config
19
+ };
20
+ mergedConfig.headers = mergedConfig.headers || {};
21
+ if (global.userToken) {
22
+ mergedConfig.headers.Authorization = global.userToken;
23
+ }
24
+ mergedConfig.headers.TYPE = Platform.OS;
25
+ mergedConfig.headers.NID = systemConfig.header.appId;
26
+ mergedConfig.headers.PACKAGENAME = systemConfig.header.PACKAGENAME;
27
+ if (!global.userToken && global.userId) {
28
+ mergedConfig.headers.UID = global.userId;
29
+ }
30
+ return mergedConfig;
31
+ });
32
+ instance.interceptors.response.use(response => {
33
+ if (response.data.code === 200) {
34
+ return response.data;
35
+ }
36
+
37
+ // FIXME: Fix me the types
38
+ return response.data;
39
+ }, error => {
40
+ if (error.response) {
41
+ return Promise.reject(error.response.data || {
42
+ message: 'Unknown server error'
43
+ });
44
+ } else if (error.request) {
45
+ return Promise.reject({
46
+ message: 'No response received from server'
47
+ });
48
+ } else {
49
+ return Promise.reject({
50
+ message: error.message || 'Unknown error occurred'
51
+ });
52
+ }
53
+ });
54
+ return instance;
55
+ };
56
+ const axiosInstance = createAxiosInstance();
57
+ export const axiosGet = (url, params, config) => {
58
+ return axiosInstance.get(url, {
59
+ params,
60
+ ...config
61
+ });
62
+ };
63
+ export const axiosPost = (url, data, config) => {
64
+ return axiosInstance.post(url, data, config);
65
+ };
66
+ export const axiosPostFormData = (url, data, config) => {
67
+ return axiosInstance.post(url, data, config);
68
+ };
69
+ export default axiosInstance;
70
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Platform","axios","CONTENT_TYPE","getConfig","createAxiosInstance","systemConfig","instance","create","baseURL","header","apiUrl","timeout","headers","JSON","interceptors","request","use","config","mergedConfig","global","userToken","Authorization","TYPE","OS","NID","appId","PACKAGENAME","userId","UID","response","data","code","error","Promise","reject","message","axiosInstance","axiosGet","url","params","get","axiosPost","post","axiosPostFormData"],"sourceRoot":"../../../../src","sources":["package/request/index.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["package/request/type.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ import React, { useEffect, useMemo, useRef } from 'react';
4
+ import { Platform, View } from 'react-native';
5
+ import { createJsbridge } from '@tianzhitong/js-bridge';
6
+ import WebView from "../../components/webview/index.js";
7
+ import useGetUserToken from "../../hooks/useGetUserToken.js";
8
+ import { useAtom, useAtomValue } from 'jotai';
9
+ import { bPackageWebviewLoadingFinishAtom, MiddleScreenLoadingFinishAtom, schemeDeepLinkParamsAtom } from "../../atoms/global.js";
10
+ import MiddleScreen from "../middle/index.js";
11
+ import useAppGetUID from "../../hooks/useAppGetUID.js";
12
+ import useInitAfInfo from "../../hooks/useInitAfInfo.js";
13
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
14
+ import { getConfig } from "../../../config/index.js";
15
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
+ const Home = () => {
17
+ const safeAreaInsets = useSafeAreaInsets();
18
+ const systemConfig = getConfig();
19
+ const {
20
+ top,
21
+ bottom
22
+ } = safeAreaInsets;
23
+ const webRef = useRef(null);
24
+ const middleScreenLoadingFinish = useAtomValue(MiddleScreenLoadingFinishAtom);
25
+ const [bPackageWebviewLoadingFinish, setBPackageWebviewLoadingFinish] = useAtom(bPackageWebviewLoadingFinishAtom);
26
+ const schemeDeepLinkParams = useAtomValue(schemeDeepLinkParamsAtom);
27
+ const jsbridge = useMemo(() => {
28
+ return createJsbridge({
29
+ getWebViewRef: () => webRef
30
+ });
31
+ }, []);
32
+ useEffect(() => {
33
+ if (!(bPackageWebviewLoadingFinish && middleScreenLoadingFinish)) {
34
+ return;
35
+ }
36
+ if (schemeDeepLinkParams.pageName) {
37
+ jsbridge.postMessage({
38
+ type: 'SEND_H5_PARAMS',
39
+ payload: schemeDeepLinkParams
40
+ });
41
+ }
42
+ }, [schemeDeepLinkParams, bPackageWebviewLoadingFinish, middleScreenLoadingFinish, jsbridge]);
43
+ useGetUserToken(jsbridge);
44
+ return /*#__PURE__*/_jsx(View, {
45
+ style: {
46
+ flex: 1,
47
+ opacity: bPackageWebviewLoadingFinish && middleScreenLoadingFinish ? 1 : 0
48
+ },
49
+ children: /*#__PURE__*/_jsx(WebView, {
50
+ ref: webRef,
51
+ source: {
52
+ uri: `${systemConfig.webviewUrl}?platform=${Platform.OS}&app_version=${'1.1.1'}&user_id=${global.GLOBAL_USER_UID}&top=${top}&bottom=${bottom}`
53
+ },
54
+ onInvokeMessage: () => {},
55
+ onLoadEnd: () => {
56
+ console.log('onLoadEnd');
57
+ setBPackageWebviewLoadingFinish(true);
58
+ }
59
+ })
60
+ });
61
+ };
62
+ const ProviderBPackageIndex = props => {
63
+ const {
64
+ children
65
+ } = props;
66
+ const {
67
+ isLoading,
68
+ isAPackage
69
+ } = useAppGetUID();
70
+ const middleScreenLoadingFinish = useAtomValue(MiddleScreenLoadingFinishAtom);
71
+ const schemeDeepLinkParams = useAtomValue(schemeDeepLinkParamsAtom);
72
+ console.log('schemeDeepLinkParams', schemeDeepLinkParams);
73
+ useInitAfInfo();
74
+ if (!isLoading) {
75
+ return null;
76
+ }
77
+ console.log('isAPackage', isAPackage);
78
+ if (isAPackage) {
79
+ return children;
80
+ }
81
+ console.log('middleScreenLoadingFinish', middleScreenLoadingFinish);
82
+ return /*#__PURE__*/_jsxs(View, {
83
+ style: {
84
+ flex: 1
85
+ },
86
+ children: [!middleScreenLoadingFinish && /*#__PURE__*/_jsx(MiddleScreen, {}), /*#__PURE__*/_jsx(Home, {})]
87
+ });
88
+ };
89
+ export default ProviderBPackageIndex;
90
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useMemo","useRef","Platform","View","createJsbridge","WebView","useGetUserToken","useAtom","useAtomValue","bPackageWebviewLoadingFinishAtom","MiddleScreenLoadingFinishAtom","schemeDeepLinkParamsAtom","MiddleScreen","useAppGetUID","useInitAfInfo","useSafeAreaInsets","getConfig","jsx","_jsx","jsxs","_jsxs","Home","safeAreaInsets","systemConfig","top","bottom","webRef","middleScreenLoadingFinish","bPackageWebviewLoadingFinish","setBPackageWebviewLoadingFinish","schemeDeepLinkParams","jsbridge","getWebViewRef","pageName","postMessage","type","payload","style","flex","opacity","children","ref","source","uri","webviewUrl","OS","global","GLOBAL_USER_UID","onInvokeMessage","onLoadEnd","console","log","ProviderBPackageIndex","props","isLoading","isAPackage"],"sourceRoot":"../../../../../src","sources":["package/screens/home/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+
3
+ import React, { useState, useEffect, useRef, useImperativeHandle, forwardRef } from 'react';
4
+ import { View, Text, StyleSheet, Animated, Easing } from 'react-native';
5
+ import { rwd } from "../../../utils/rwd.js";
6
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ const CustomProgressBar = /*#__PURE__*/forwardRef(({
8
+ duration = 5000,
9
+ height = rwd(10),
10
+ backgroundColor = '#e0e0e0',
11
+ fillColor = '#4CAF50',
12
+ showPercentage = true,
13
+ borderRadius = 10,
14
+ textStyle = {},
15
+ containerStyle = {},
16
+ onComplete = () => {}
17
+ }, ref) => {
18
+ const progress = useState(new Animated.Value(0))[0];
19
+ const [currentProgress, setCurrentProgress] = useState(0);
20
+ const animationRef = useRef(null);
21
+ let listenerId = useRef('');
22
+ const animateTo = (value, callback) => {
23
+ // Stop any ongoing animation
24
+ if (animationRef.current) {
25
+ animationRef.current.stop();
26
+ }
27
+
28
+ // Calculate remaining duration proportionally
29
+ const remainingDuration = duration * ((100 - currentProgress) / 100);
30
+ animationRef.current = Animated.timing(progress, {
31
+ toValue: value,
32
+ duration: remainingDuration,
33
+ easing: Easing.linear,
34
+ useNativeDriver: false
35
+ });
36
+ animationRef.current.start(() => {
37
+ if (value === 100 && callback) {
38
+ callback();
39
+ }
40
+ });
41
+ };
42
+ useEffect(() => {
43
+ // Add listener to animation value
44
+ listenerId.current = progress.addListener(({
45
+ value
46
+ }) => {
47
+ setCurrentProgress(Math.floor(value));
48
+ });
49
+
50
+ // Start initial animation
51
+ animateTo(100, onComplete);
52
+
53
+ // Clean up listener
54
+ return () => {
55
+ progress.removeListener(listenerId.current);
56
+ if (animationRef.current) {
57
+ animationRef.current.stop();
58
+ }
59
+ };
60
+ }, [duration]);
61
+ useImperativeHandle(ref, () => ({
62
+ completeProgress: () => {
63
+ // Stop current animation and jump to 100%
64
+ if (animationRef.current) {
65
+ animationRef.current.stop();
66
+ }
67
+ progress.setValue(100);
68
+ setCurrentProgress(100);
69
+ onComplete();
70
+ },
71
+ setProgress: value => {
72
+ // Set to specific value (0-100)
73
+ const clampedValue = Math.min(100, Math.max(0, value));
74
+ if (animationRef.current) {
75
+ animationRef.current.stop();
76
+ }
77
+ progress.setValue(clampedValue);
78
+ setCurrentProgress(clampedValue);
79
+ if (clampedValue === 100) {
80
+ onComplete();
81
+ }
82
+ },
83
+ startAnimation: () => {
84
+ // Restart animation from current position
85
+ animateTo(100, onComplete);
86
+ }
87
+ }), [progress, currentProgress, onComplete]);
88
+ const widthInterpolation = progress.interpolate({
89
+ inputRange: [0, 100],
90
+ outputRange: ['0%', '100%']
91
+ });
92
+ return /*#__PURE__*/_jsxs(View, {
93
+ style: [styles.container, containerStyle],
94
+ children: [/*#__PURE__*/_jsx(View, {
95
+ style: [styles.progressBar, {
96
+ height,
97
+ backgroundColor,
98
+ borderRadius
99
+ }],
100
+ children: /*#__PURE__*/_jsx(Animated.View, {
101
+ style: [styles.progressFill, {
102
+ width: widthInterpolation,
103
+ backgroundColor: fillColor,
104
+ borderRadius
105
+ }]
106
+ })
107
+ }), showPercentage && /*#__PURE__*/_jsxs(Text, {
108
+ style: [styles.progressText, textStyle],
109
+ children: [currentProgress, "%"]
110
+ })]
111
+ });
112
+ });
113
+ const styles = StyleSheet.create({
114
+ container: {
115
+ width: '100%',
116
+ padding: rwd(20)
117
+ },
118
+ progressBar: {
119
+ overflow: 'hidden'
120
+ },
121
+ progressFill: {
122
+ height: '100%'
123
+ },
124
+ progressText: {
125
+ marginTop: rwd(8),
126
+ textAlign: 'center',
127
+ fontSize: rwd(16)
128
+ }
129
+ });
130
+ export default CustomProgressBar;
131
+ //# sourceMappingURL=CustomProgressBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","useEffect","useRef","useImperativeHandle","forwardRef","View","Text","StyleSheet","Animated","Easing","rwd","jsx","_jsx","jsxs","_jsxs","CustomProgressBar","duration","height","backgroundColor","fillColor","showPercentage","borderRadius","textStyle","containerStyle","onComplete","ref","progress","Value","currentProgress","setCurrentProgress","animationRef","listenerId","animateTo","value","callback","current","stop","remainingDuration","timing","toValue","easing","linear","useNativeDriver","start","addListener","Math","floor","removeListener","completeProgress","setValue","setProgress","clampedValue","min","max","startAnimation","widthInterpolation","interpolate","inputRange","outputRange","style","styles","container","children","progressBar","progressFill","width","progressText","create","padding","overflow","marginTop","textAlign","fontSize"],"sourceRoot":"../../../../../../src","sources":["package/screens/middle/components/CustomProgressBar.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+
3
+ import { useAtomValue, useSetAtom } from 'jotai';
4
+ import { useEffect, useRef, useState } from 'react';
5
+ import { Image, StatusBar, Text, View } from 'react-native';
6
+ import CustomProgressBar from "./components/CustomProgressBar.js";
7
+ import { bPackageWebviewLoadingFinishAtom, isFirstInitAfSuccessAtom, MiddleScreenLoadingFinishAtom } from "../../atoms/global.js";
8
+ import { rwd } from "../../utils/rwd.js";
9
+ import { getConfig } from "../../../config/index.js";
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ const MiddleScreen = () => {
12
+ const systemConfig = getConfig();
13
+ const progressRef = useRef(null);
14
+ /** 深度链接是否成功 */
15
+ const isFirstInitAfSuccess = useAtomValue(isFirstInitAfSuccessAtom);
16
+ /** b包webview是否加载完成 */
17
+ const bPackageWebviewLoadingFinish = useAtomValue(bPackageWebviewLoadingFinishAtom);
18
+ /** 100%动画是否执行完毕 */
19
+ const setIsAnimationSuccess = useSetAtom(MiddleScreenLoadingFinishAtom);
20
+ const [isLoading, setIsLoading] = useState(false);
21
+ useEffect(() => {
22
+ // 深度链接成功,等于成功一半,无需走进度条
23
+ if (isFirstInitAfSuccess) {
24
+ setIsLoading(true);
25
+ }
26
+ }, [isFirstInitAfSuccess]);
27
+ useEffect(() => {
28
+ if (bPackageWebviewLoadingFinish && isLoading) {
29
+ progressRef.current?.completeProgress();
30
+ setIsAnimationSuccess(true);
31
+ }
32
+ }, [isLoading, bPackageWebviewLoadingFinish, setIsAnimationSuccess]);
33
+ return /*#__PURE__*/_jsxs(View, {
34
+ style: {
35
+ width: '100%',
36
+ height: '100%'
37
+ },
38
+ children: [/*#__PURE__*/_jsx(StatusBar, {
39
+ translucent: true,
40
+ barStyle: "light-content",
41
+ backgroundColor: "transparent"
42
+ }), /*#__PURE__*/_jsxs(View, {
43
+ style: {
44
+ flex: 1,
45
+ backgroundColor: '#12141D',
46
+ paddingTop: '50%'
47
+ },
48
+ children: [/*#__PURE__*/_jsxs(View, {
49
+ style: {
50
+ justifyContent: 'center',
51
+ alignItems: 'center'
52
+ },
53
+ children: [/*#__PURE__*/_jsx(Image, {
54
+ source: {
55
+ uri: systemConfig.adjustConfig.bgImage
56
+ },
57
+ style: {
58
+ width: rwd(170),
59
+ height: rwd(170)
60
+ }
61
+ }), /*#__PURE__*/_jsx(Text, {
62
+ style: {
63
+ color: '#fff',
64
+ fontSize: rwd(34),
65
+ fontWeight: 600,
66
+ marginTop: rwd(50)
67
+ },
68
+ children: systemConfig.adjustConfig.appName
69
+ })]
70
+ }), /*#__PURE__*/_jsxs(View, {
71
+ style: {
72
+ position: 'absolute',
73
+ bottom: '20%',
74
+ width: '100%'
75
+ },
76
+ children: [/*#__PURE__*/_jsx(CustomProgressBar, {
77
+ ref: progressRef,
78
+ duration: 8000,
79
+ fillColor: "#3498db" // 蓝色进度条
80
+ ,
81
+ textStyle: {
82
+ color: '#3498db',
83
+ fontWeight: 'bold'
84
+ } // 蓝色文字
85
+ ,
86
+ onComplete: () => {
87
+ setIsLoading(true);
88
+ console.log('进度完成!');
89
+ }
90
+ }), /*#__PURE__*/_jsx(Text, {
91
+ style: {
92
+ color: '#fff',
93
+ fontSize: rwd(24),
94
+ fontWeight: 600,
95
+ marginTop: rwd(30),
96
+ textAlign: 'center'
97
+ },
98
+ children: systemConfig.adjustConfig.loadingText
99
+ })]
100
+ })]
101
+ })]
102
+ });
103
+ };
104
+ export default MiddleScreen;
105
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useAtomValue","useSetAtom","useEffect","useRef","useState","Image","StatusBar","Text","View","CustomProgressBar","bPackageWebviewLoadingFinishAtom","isFirstInitAfSuccessAtom","MiddleScreenLoadingFinishAtom","rwd","getConfig","jsx","_jsx","jsxs","_jsxs","MiddleScreen","systemConfig","progressRef","isFirstInitAfSuccess","bPackageWebviewLoadingFinish","setIsAnimationSuccess","isLoading","setIsLoading","current","completeProgress","style","width","height","children","translucent","barStyle","backgroundColor","flex","paddingTop","justifyContent","alignItems","source","uri","adjustConfig","bgImage","color","fontSize","fontWeight","marginTop","appName","position","bottom","ref","duration","fillColor","textStyle","onComplete","console","log","textAlign","loadingText"],"sourceRoot":"../../../../../src","sources":["package/screens/middle/index.tsx"],"mappings":";;AAAA,SAASA,YAAY,EAAEC,UAAU,QAAQ,OAAO;AAChD,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACnD,SAASC,KAAK,EAAEC,SAAS,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AAC3D,OAAOC,iBAAiB,MAAM,mCAAgC;AAC9D,SACEC,gCAAgC,EAChCC,wBAAwB,EACxBC,6BAA6B,QAExB,uBAAoB;AAC3B,SAASC,GAAG,QAAQ,oBAAiB;AACrC,SAASC,SAAS,QAAQ,0BAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG5C,MAAMC,YAAY,GAAGA,CAAA,KAAM;EACzB,MAAMC,YAAY,GAAGN,SAAS,CAAC,CAAC;EAChC,MAAMO,WAAW,GAAGlB,MAAM,CAAM,IAAI,CAAC;EACrC;EACA,MAAMmB,oBAAoB,GAAGtB,YAAY,CAACW,wBAAwB,CAAC;EACnE;EACA,MAAMY,4BAA4B,GAAGvB,YAAY,CAC/CU,gCACF,CAAC;EACD;EACA,MAAMc,qBAAqB,GAAGvB,UAAU,CAACW,6BAA6B,CAAC;EAEvE,MAAM,CAACa,SAAS,EAAEC,YAAY,CAAC,GAAGtB,QAAQ,CAAC,KAAK,CAAC;EAEjDF,SAAS,CAAC,MAAM;IACd;IACA,IAAIoB,oBAAoB,EAAE;MACxBI,YAAY,CAAC,IAAI,CAAC;IACpB;EACF,CAAC,EAAE,CAACJ,oBAAoB,CAAC,CAAC;EAE1BpB,SAAS,CAAC,MAAM;IACd,IAAIqB,4BAA4B,IAAIE,SAAS,EAAE;MAC7CJ,WAAW,CAACM,OAAO,EAAEC,gBAAgB,CAAC,CAAC;MACvCJ,qBAAqB,CAAC,IAAI,CAAC;IAC7B;EACF,CAAC,EAAE,CAACC,SAAS,EAAEF,4BAA4B,EAAEC,qBAAqB,CAAC,CAAC;EAEpE,oBACEN,KAAA,CAACV,IAAI;IAACqB,KAAK,EAAE;MAAEC,KAAK,EAAE,MAAM;MAAEC,MAAM,EAAE;IAAO,CAAE;IAAAC,QAAA,gBAC7ChB,IAAA,CAACV,SAAS;MACR2B,WAAW,EAAE,IAAK;MAClBC,QAAQ,EAAC,eAAe;MACxBC,eAAe,EAAC;IAAa,CAC9B,CAAC,eACFjB,KAAA,CAACV,IAAI;MAACqB,KAAK,EAAE;QAAEO,IAAI,EAAE,CAAC;QAAED,eAAe,EAAE,SAAS;QAAEE,UAAU,EAAE;MAAM,CAAE;MAAAL,QAAA,gBACtEd,KAAA,CAACV,IAAI;QAACqB,KAAK,EAAE;UAAES,cAAc,EAAE,QAAQ;UAAEC,UAAU,EAAE;QAAS,CAAE;QAAAP,QAAA,gBAC9DhB,IAAA,CAACX,KAAK;UACJmC,MAAM,EAAE;YAAEC,GAAG,EAAErB,YAAY,CAACsB,YAAY,CAACC;UAAQ,CAAE;UACnDd,KAAK,EAAE;YAAEC,KAAK,EAAEjB,GAAG,CAAC,GAAG,CAAC;YAAEkB,MAAM,EAAElB,GAAG,CAAC,GAAG;UAAE;QAAE,CAC9C,CAAC,eACFG,IAAA,CAACT,IAAI;UACHsB,KAAK,EAAE;YACLe,KAAK,EAAE,MAAM;YACbC,QAAQ,EAAEhC,GAAG,CAAC,EAAE,CAAC;YACjBiC,UAAU,EAAE,GAAG;YACfC,SAAS,EAAElC,GAAG,CAAC,EAAE;UACnB,CAAE;UAAAmB,QAAA,EAEDZ,YAAY,CAACsB,YAAY,CAACM;QAAO,CAC9B,CAAC;MAAA,CACH,CAAC,eACP9B,KAAA,CAACV,IAAI;QAACqB,KAAK,EAAE;UAAEoB,QAAQ,EAAE,UAAU;UAAEC,MAAM,EAAE,KAAK;UAAEpB,KAAK,EAAE;QAAO,CAAE;QAAAE,QAAA,gBAClEhB,IAAA,CAACP,iBAAiB;UAChB0C,GAAG,EAAE9B,WAAY;UACjB+B,QAAQ,EAAE,IAAK;UACfC,SAAS,EAAC,SAAS,CAAC;UAAA;UACpBC,SAAS,EAAE;YAAEV,KAAK,EAAE,SAAS;YAAEE,UAAU,EAAE;UAAO,CAAE,CAAC;UAAA;UACrDS,UAAU,EAAEA,CAAA,KAAM;YAChB7B,YAAY,CAAC,IAAI,CAAC;YAClB8B,OAAO,CAACC,GAAG,CAAC,OAAO,CAAC;UACtB;QAAE,CACH,CAAC,eACFzC,IAAA,CAACT,IAAI;UACHsB,KAAK,EAAE;YACLe,KAAK,EAAE,MAAM;YACbC,QAAQ,EAAEhC,GAAG,CAAC,EAAE,CAAC;YACjBiC,UAAU,EAAE,GAAG;YACfC,SAAS,EAAElC,GAAG,CAAC,EAAE,CAAC;YAClB6C,SAAS,EAAE;UACb,CAAE;UAAA1B,QAAA,EAEDZ,YAAY,CAACsB,YAAY,CAACiB;QAAW,CAClC,CAAC;MAAA,CACH,CAAC;IAAA,CACH,CAAC;EAAA,CACH,CAAC;AAEX,CAAC;AACD,eAAexC,YAAY","ignoreList":[]}