@norcy/react-native-toolkit 0.1.96 → 0.1.98
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/.DS_Store +0 -0
- package/.vscode/settings.json +9 -0
- package/ios/.DS_Store +0 -0
- package/ios/ReactNativeToolkit.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
- package/lib/commonjs/ConfigDataModel.js +1 -1
- package/lib/commonjs/ConfigDataModel.js.map +1 -1
- package/lib/commonjs/Tool.js +4 -1
- package/lib/commonjs/Tool.js.map +1 -1
- package/lib/commonjs/VipAndroidManager.js +8 -5
- package/lib/commonjs/VipAndroidManager.js.map +1 -1
- package/lib/commonjs/VipManager.js +9 -3
- package/lib/commonjs/VipManager.js.map +1 -1
- package/lib/module/ConfigDataModel.js +1 -1
- package/lib/module/ConfigDataModel.js.map +1 -1
- package/lib/module/Tool.js +4 -1
- package/lib/module/Tool.js.map +1 -1
- package/lib/module/VipAndroidManager.js +8 -5
- package/lib/module/VipAndroidManager.js.map +1 -1
- package/lib/module/VipManager.js +9 -3
- package/lib/module/VipManager.js.map +1 -1
- package/lib/typescript/Tool.d.ts +1 -1
- package/lib/typescript/VipAndroidManager.d.ts +4 -2
- package/lib/typescript/VipManager.d.ts +1 -1
- package/package.json +1 -1
- package/src/.DS_Store +0 -0
- package/src/ConfigDataModel.ts +1 -1
- package/src/Tool.ts +1 -1
- package/src/VipAndroidManager.ts +9 -5
- package/src/VipManager.ts +11 -3
- package/yarn-error.log +11644 -0
package/lib/module/Tool.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["CameraRoll","useState","Linking","NativeModules","PermissionsAndroid","Platform","Vibration","Toast","BuildInPrefs","PrefData","ReportUtil","ToolkitConfig","initToolkitConfig","config","_isPlainObject","target","toString","Object","getPrototypeOf","prototype","_jsonify","toJSON","Array","isArray","map","androidVibratePermissionStatus","VibrateEnable","Tool","sleep","delay","Promise","resolve","setTimeout","formatDate","date","fmt","o","getMonth","getDate","getHours","getMinutes","getSeconds","Math","floor","getMilliseconds","test","replace","RegExp","$1","getFullYear","substr","length","k","jsonify","keys","reduce","result","key","isChinese","value","isRemoteURL","str","startsWith","get_url_extension","url","_url$split$","split","pop","trim","generateObjectId","timestamp","Date","getTime","random","toLowerCase","humanFileSize","bytes","si","arguments","undefined","dp","thresh","abs","units","u","r","round","toFixed","useForceUpdate","setValue","showToast","toast","showWithGravity","SHORT","CENTER","goAppStoreReview","report","OS","canOpenURL","then","supported","openURL","iOSReviewUrl","CheckPackageInstallation","isPackageInstalled","isInstalled","goToMarket","AndroidPackageName","AndroidStoreScheme","goUpgrade","iOSStoreScheme","AppWebsiteAlias","notifyMe","text","__DEV__","fetch","PushDeerUrl","encodeURIComponent","hasAndroidWritePermission","permission","PERMISSIONS","WRITE_EXTERNAL_STORAGE","hasPermission","check","NCYAPI","checkManagePermission","status","request","requestManagePermission","savePicture","albumName","console","log","errorCode","errMsg","save","type","album","AppName","error","JSON","stringify","extension","ReactNativeBlobUtil","require","default","res","fileCache","appendExt","path","e1","setVibrateEnable","enable","Vibrate","getVibrateEnable","vibrate","getValue","_NativeModules$NCYVib","NCYVibration"],"sources":["Tool.ts"],"sourcesContent":["import CameraRoll from '@react-native-community/cameraroll';\nimport { useState } from 'react';\nimport {\n Linking,\n NativeModules,\n PermissionsAndroid,\n Platform,\n Vibration,\n} from 'react-native';\nimport Toast from 'react-native-simple-toast';\nimport { BuildInPrefs, PrefData } from './PrefData';\nimport { ReportUtil } from './ReportUtil';\n\nexport interface ToolkitConfigType {\n iOSStoreUrl: string;\n AndroidStoreUrl: string;\n iOSStoreScheme: string;\n AndroidStoreScheme: string;\n iOSReviewUrl: string;\n AndroidPackageName: string;\n\n AppName: string;\n AppWebsite: string;\n AppWebsiteAlias: string;\n AppScheme: string;\n\n PolicyUrl: string;\n TermsUrl: string;\n\n PushDeerUrl: string;\n\n RC_API_KEY: string;\n RC_ENTITLEMENT_ID: string;\n WeChatPayServer: string;\n WeiXinId: string;\n WeiXinSecret: string;\n\n SentryDSN: string;\n}\n\nexport let ToolkitConfig: ToolkitConfigType;\n\nexport const initToolkitConfig = (config: ToolkitConfigType) => {\n ToolkitConfig = config;\n};\n\nconst _isPlainObject = (target: any) => {\n return (\n target &&\n target.toString() === '[object Object]' &&\n Object.getPrototypeOf(target) === Object.prototype\n );\n};\n\nconst _jsonify = (target: any): any => {\n if (target && typeof target.toJSON === 'function') return target.toJSON();\n // map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一次提供的函数后的返回值\n if (Array.isArray(target)) return target.map(_jsonify);\n return target;\n};\n\nlet androidVibratePermissionStatus = -1;\n\nlet VibrateEnable: boolean | undefined;\n\nexport const Tool = {\n sleep: (delay: number) =>\n new Promise((resolve) => setTimeout(resolve, delay)),\n\n formatDate(date: Date, fmt?: string): string {\n fmt = fmt ? fmt : 'yyyy-MM-dd';\n var o: { [key: string]: number } = {\n 'M+': date.getMonth() + 1, //月份\n 'd+': date.getDate(), //日\n 'h+': date.getHours(), //小时\n 'm+': date.getMinutes(), //分\n 's+': date.getSeconds(), //秒\n 'q+': Math.floor((date.getMonth() + 3) / 3), //季度\n 'S': date.getMilliseconds(), //毫秒\n };\n\n // 获取年份\n if (/(y+)/i.test(fmt)) {\n fmt = fmt.replace(\n RegExp.$1,\n (date.getFullYear() + '').substr(4 - RegExp.$1.length)\n );\n }\n\n for (var k in o) {\n if (new RegExp('(' + k + ')', 'i').test(fmt)) {\n fmt = fmt.replace(\n RegExp.$1,\n (RegExp.$1.length === 1\n ? o[k]\n : ('00' + o[k]).substr(('' + o[k]).length)\n ).toString()\n );\n }\n }\n return fmt;\n },\n\n jsonify: (target: any) =>\n _isPlainObject(target)\n ? Object.keys(target).reduce(\n (result, key) => ({\n ...result,\n [key]: _jsonify(target[key]),\n }),\n {}\n )\n : _jsonify(target),\n\n isChinese: (value: string) => {\n return /[\\u4E00-\\u9FA5]+/g.test(value);\n },\n\n isRemoteURL: (str: string) => {\n return str.startsWith('http');\n },\n\n get_url_extension: (url: string) => {\n return url.split(/[#?]/)[0]?.split('.')?.pop()?.trim();\n },\n\n generateObjectId: () => {\n var timestamp = ((new Date().getTime() / 1000) | 0).toString(16); // eslint-disable-line no-bitwise\n return (\n timestamp +\n 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, function () {\n return ((Math.random() * 16) | 0).toString(16).toLowerCase(); // eslint-disable-line no-bitwise\n })\n );\n },\n\n /**\n * Format bytes as human-readable text.\n *\n * @param bytes Number of bytes.\n * @param si True to use metric (SI) units, aka powers of 1000. False to use\n * binary (IEC), aka powers of 1024.\n * @param dp Number of decimal places to display.\n *\n * @return Formatted string.\n */\n humanFileSize: (bytes: number, si = false, dp = 1) => {\n const thresh = si ? 1000 : 1024;\n\n if (Math.abs(bytes) < thresh) {\n return bytes + ' B';\n }\n\n const units = ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n let u = -1;\n const r = 10 ** dp;\n\n do {\n bytes /= thresh;\n ++u;\n } while (\n Math.round(Math.abs(bytes) * r) / r >= thresh &&\n u < units.length - 1\n );\n\n return bytes.toFixed(dp) + ' ' + units[u];\n },\n\n useForceUpdate: () => {\n const [, setValue] = useState(0);\n return () => setValue((value) => value + 1);\n },\n\n showToast: (toast: string) => {\n Toast.showWithGravity(toast, Toast.SHORT, Toast.CENTER);\n },\n\n goAppStoreReview: () => {\n ReportUtil.report('StoreReview');\n if (Platform.OS === 'ios') {\n Linking.canOpenURL('itms-apps://').then((supported) => {\n if (supported) {\n Linking.openURL(ToolkitConfig.iOSReviewUrl);\n }\n });\n } else {\n if (NativeModules.CheckPackageInstallation) {\n NativeModules.CheckPackageInstallation.isPackageInstalled(\n 'com.coolapk.market',\n (isInstalled: boolean) => {\n if (isInstalled) {\n if (NativeModules.CheckPackageInstallation.goToMarket) {\n NativeModules.CheckPackageInstallation.goToMarket(\n ToolkitConfig.AndroidPackageName,\n 'com.coolapk.market',\n 'com.coolapk.market.activity.AppViewActivity'\n );\n } else {\n Tool.showToast('请用酷安市场打开');\n Linking.openURL(ToolkitConfig.AndroidStoreScheme);\n }\n } else {\n Tool.showToast('需要先安装酷安市场');\n }\n }\n );\n }\n }\n },\n\n goUpgrade: () => {\n if (Platform.OS === 'ios') {\n Linking.canOpenURL('itms-apps://').then((supported) => {\n if (supported) {\n Linking.openURL(ToolkitConfig.iOSStoreScheme);\n }\n });\n } else {\n // 使用短链别名,不然 Android 的 AppLink 会直接吃掉官网,导致 App 内无法使用浏览器打开官网\n Linking.openURL(ToolkitConfig.AppWebsiteAlias);\n }\n },\n\n notifyMe: async (text: string) => {\n if (!__DEV__) {\n await fetch(ToolkitConfig.PushDeerUrl + encodeURIComponent(text));\n }\n },\n\n hasAndroidWritePermission: async () => {\n const permission = PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE;\n\n const hasPermission = await PermissionsAndroid.check(permission);\n if (hasPermission) {\n return true;\n }\n\n // 对 MANAGE_EXTERNAL_STORAGE 再检查一次\n if (NativeModules.NCYAPI.checkManagePermission) {\n if (await NativeModules.NCYAPI.checkManagePermission()) {\n return true;\n }\n }\n\n const status = await PermissionsAndroid.request(permission);\n if (status === 'granted') {\n return true;\n }\n\n if (NativeModules.NCYAPI.requestManagePermission) {\n if (await NativeModules.NCYAPI.requestManagePermission()) {\n return true;\n }\n }\n\n return false;\n },\n\n savePicture: async (url: string, albumName?: string) => {\n console.log('savePicture', url);\n\n if (!url) {\n return { errorCode: -5, errMsg: 'url is empty' };\n }\n\n // 检查权限\n if (\n Platform.OS === 'android' &&\n !(await Tool.hasAndroidWritePermission())\n ) {\n return { errorCode: -1 };\n }\n\n // iOS 或本地图片直接保存\n if (Platform.OS === 'ios' || !Tool.isRemoteURL(url)) {\n try {\n await CameraRoll.save(url, {\n type: 'photo',\n album: albumName ?? ToolkitConfig.AppName,\n });\n return { errorCode: 0 };\n } catch (error: any) {\n console.error(error);\n return { errorCode: -2, errMsg: JSON.stringify(error) };\n }\n }\n\n // 安卓远程图片需要下载\n const extension = Tool.get_url_extension(url);\n try {\n if (!NativeModules.ReactNativeBlobUtil) {\n Tool.goUpgrade();\n return;\n }\n let ReactNativeBlobUtil = require('react-native-blob-util').default;\n const res = await ReactNativeBlobUtil!\n .config({\n fileCache: true,\n appendExt: extension,\n })\n .fetch('GET', url, {});\n // the temp file path\n console.log('The file saved to ', res.path());\n try {\n await CameraRoll.save('file://' + res.path(), {\n type: 'photo',\n album: albumName,\n });\n return { errorCode: 0 };\n } catch (e1) {\n console.error(e1 + '\\n' + res.path());\n return { errorCode: -3, errMsg: JSON.stringify(e1) };\n }\n } catch (error) {\n console.error(error);\n return { errorCode: -4, errMsg: JSON.stringify(error) };\n }\n },\n\n setVibrateEnable: (enable: boolean) => {\n PrefData.setValue(BuildInPrefs.Vibrate, enable);\n VibrateEnable = enable;\n },\n\n getVibrateEnable: () => {\n return VibrateEnable === undefined ? true : VibrateEnable;\n },\n\n vibrate: async () => {\n try {\n if (VibrateEnable === undefined) {\n VibrateEnable = PrefData.getValue(BuildInPrefs.Vibrate);\n }\n if (!VibrateEnable) {\n return;\n }\n if (Platform.OS === 'ios') {\n NativeModules.NCYVibration?.vibrate();\n } else {\n if (androidVibratePermissionStatus === -1) {\n androidVibratePermissionStatus = (await PermissionsAndroid.check(\n // @ts-ignore\n 'android.permission.VIBRATE'\n ))\n ? 1\n : 0;\n }\n if (androidVibratePermissionStatus === 1) {\n Vibration.vibrate(5);\n }\n }\n } catch (error) {}\n },\n};\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["CameraRoll","useState","Linking","NativeModules","PermissionsAndroid","Platform","Vibration","Toast","BuildInPrefs","PrefData","ReportUtil","ToolkitConfig","initToolkitConfig","config","_isPlainObject","target","toString","Object","getPrototypeOf","prototype","_jsonify","toJSON","Array","isArray","map","androidVibratePermissionStatus","VibrateEnable","Tool","sleep","delay","Promise","resolve","setTimeout","formatDate","date","fmt","o","getMonth","getDate","getHours","getMinutes","getSeconds","Math","floor","getMilliseconds","test","replace","RegExp","$1","getFullYear","substr","length","k","jsonify","keys","reduce","result","key","isChinese","value","isRemoteURL","str","startsWith","get_url_extension","url","_url$split$","split","pop","trim","generateObjectId","timestamp","Date","getTime","random","toLowerCase","humanFileSize","bytes","si","arguments","undefined","dp","thresh","abs","units","u","r","round","toFixed","useForceUpdate","setValue","showToast","toast","showWithGravity","SHORT","CENTER","goAppStoreReview","report","OS","canOpenURL","then","supported","openURL","iOSReviewUrl","CheckPackageInstallation","isPackageInstalled","isInstalled","goToMarket","AndroidPackageName","AndroidStoreScheme","goUpgrade","iOSStoreScheme","AppWebsiteAlias","notifyMe","text","__DEV__","fetch","PushDeerUrl","encodeURIComponent","hasAndroidWritePermission","permission","PERMISSIONS","WRITE_EXTERNAL_STORAGE","hasPermission","check","NCYAPI","checkManagePermission","status","request","requestManagePermission","savePicture","albumName","console","log","errorCode","errMsg","save","type","album","AppName","error","JSON","stringify","extension","ReactNativeBlobUtil","require","default","res","fileCache","appendExt","path","e1","setVibrateEnable","enable","Vibrate","getVibrateEnable","vibrate","getValue","_NativeModules$NCYVib","NCYVibration"],"sources":["Tool.ts"],"sourcesContent":["import CameraRoll from '@react-native-community/cameraroll';\nimport { useState } from 'react';\nimport {\n Linking,\n NativeModules,\n PermissionsAndroid,\n Platform,\n Vibration,\n} from 'react-native';\nimport Toast from 'react-native-simple-toast';\nimport { BuildInPrefs, PrefData } from './PrefData';\nimport { ReportUtil } from './ReportUtil';\n\nexport interface ToolkitConfigType {\n iOSStoreUrl: string;\n AndroidStoreUrl: string;\n iOSStoreScheme: string;\n AndroidStoreScheme: string;\n iOSReviewUrl: string;\n AndroidPackageName: string;\n\n AppName: string;\n AppWebsite: string;\n AppWebsiteAlias: string;\n AppScheme: string;\n\n PolicyUrl: string;\n TermsUrl: string;\n\n PushDeerUrl: string;\n\n RC_API_KEY: string;\n RC_ENTITLEMENT_ID: string;\n WeChatPayServer: string;\n WeiXinId: string;\n WeiXinSecret: string;\n\n SentryDSN: string;\n}\n\nexport let ToolkitConfig: ToolkitConfigType;\n\nexport const initToolkitConfig = (config: ToolkitConfigType) => {\n ToolkitConfig = config;\n};\n\nconst _isPlainObject = (target: any) => {\n return (\n target &&\n target.toString() === '[object Object]' &&\n Object.getPrototypeOf(target) === Object.prototype\n );\n};\n\nconst _jsonify = (target: any): any => {\n if (target && typeof target.toJSON === 'function') return target.toJSON();\n // map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一次提供的函数后的返回值\n if (Array.isArray(target)) return target.map(_jsonify);\n return target;\n};\n\nlet androidVibratePermissionStatus = -1;\n\nlet VibrateEnable: boolean | undefined;\n\nexport const Tool = {\n sleep: (delay: number) =>\n new Promise((resolve) => setTimeout(resolve, delay)),\n\n formatDate(date: Date, fmt?: string): string {\n fmt = fmt ? fmt : 'yyyy-MM-dd';\n var o: { [key: string]: number } = {\n 'M+': date.getMonth() + 1, //月份\n 'd+': date.getDate(), //日\n 'h+': date.getHours(), //小时\n 'm+': date.getMinutes(), //分\n 's+': date.getSeconds(), //秒\n 'q+': Math.floor((date.getMonth() + 3) / 3), //季度\n 'S': date.getMilliseconds(), //毫秒\n };\n\n // 获取年份\n if (/(y+)/i.test(fmt)) {\n fmt = fmt.replace(\n RegExp.$1,\n (date.getFullYear() + '').substr(4 - RegExp.$1.length)\n );\n }\n\n for (var k in o) {\n if (new RegExp('(' + k + ')', 'i').test(fmt)) {\n fmt = fmt.replace(\n RegExp.$1,\n (RegExp.$1.length === 1\n ? o[k]\n : ('00' + o[k]).substr(('' + o[k]).length)\n ).toString()\n );\n }\n }\n return fmt;\n },\n\n jsonify: (target: any) =>\n _isPlainObject(target)\n ? Object.keys(target).reduce(\n (result, key) => ({\n ...result,\n [key]: _jsonify(target[key]),\n }),\n {}\n )\n : _jsonify(target),\n\n isChinese: (value: string) => {\n return /[\\u4E00-\\u9FA5]+/g.test(value);\n },\n\n isRemoteURL: (str: string) => {\n return str.startsWith('http');\n },\n\n get_url_extension: (url: string) => {\n return url.split(/[#?]/)[0]?.split('.')?.pop()?.trim();\n },\n\n generateObjectId: () => {\n var timestamp = ((new Date().getTime() / 1000) | 0).toString(16); // eslint-disable-line no-bitwise\n return (\n timestamp +\n 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, function () {\n return ((Math.random() * 16) | 0).toString(16).toLowerCase(); // eslint-disable-line no-bitwise\n })\n );\n },\n\n /**\n * Format bytes as human-readable text.\n *\n * @param bytes Number of bytes.\n * @param si True to use metric (SI) units, aka powers of 1000. False to use\n * binary (IEC), aka powers of 1024.\n * @param dp Number of decimal places to display.\n *\n * @return Formatted string.\n */\n humanFileSize: (bytes: number, si = false, dp = 1) => {\n const thresh = si ? 1000 : 1024;\n\n if (Math.abs(bytes) < thresh) {\n return bytes + ' B';\n }\n\n const units = ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n let u = -1;\n const r = 10 ** dp;\n\n do {\n bytes /= thresh;\n ++u;\n } while (\n Math.round(Math.abs(bytes) * r) / r >= thresh &&\n u < units.length - 1\n );\n\n return bytes.toFixed(dp) + ' ' + units[u];\n },\n\n useForceUpdate: () => {\n const [, setValue] = useState(0);\n return () => setValue((value) => value + 1);\n },\n\n showToast: (toast: string) => {\n Toast.showWithGravity(toast, Toast.SHORT, Toast.CENTER);\n },\n\n goAppStoreReview: () => {\n ReportUtil.report('StoreReview');\n if (Platform.OS === 'ios') {\n Linking.canOpenURL('itms-apps://').then((supported) => {\n if (supported) {\n Linking.openURL(ToolkitConfig.iOSReviewUrl);\n }\n });\n } else {\n if (NativeModules.CheckPackageInstallation) {\n NativeModules.CheckPackageInstallation.isPackageInstalled(\n 'com.coolapk.market',\n (isInstalled: boolean) => {\n if (isInstalled) {\n if (NativeModules.CheckPackageInstallation.goToMarket) {\n NativeModules.CheckPackageInstallation.goToMarket(\n ToolkitConfig.AndroidPackageName,\n 'com.coolapk.market',\n 'com.coolapk.market.activity.AppViewActivity'\n );\n } else {\n Tool.showToast('请用酷安市场打开');\n Linking.openURL(ToolkitConfig.AndroidStoreScheme);\n }\n } else {\n Tool.showToast('需要先安装酷安市场');\n }\n }\n );\n }\n }\n },\n\n goUpgrade: () => {\n if (Platform.OS === 'ios') {\n Linking.canOpenURL('itms-apps://').then((supported) => {\n if (supported) {\n Linking.openURL(ToolkitConfig.iOSStoreScheme);\n }\n });\n } else {\n // 使用短链别名,不然 Android 的 AppLink 会直接吃掉官网,导致 App 内无法使用浏览器打开官网\n Linking.openURL(ToolkitConfig.AppWebsiteAlias);\n }\n },\n\n notifyMe: async (text: string) => {\n if (!__DEV__) {\n await fetch(ToolkitConfig.PushDeerUrl + encodeURIComponent(text));\n }\n },\n\n hasAndroidWritePermission: async () => {\n const permission = PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE;\n\n const hasPermission = await PermissionsAndroid.check(permission);\n if (hasPermission) {\n return true;\n }\n\n // 对 MANAGE_EXTERNAL_STORAGE 再检查一次\n if (NativeModules.NCYAPI.checkManagePermission) {\n if (await NativeModules.NCYAPI.checkManagePermission()) {\n return true;\n }\n }\n\n const status = await PermissionsAndroid.request(permission);\n if (status === 'granted') {\n return true;\n }\n\n if (NativeModules.NCYAPI.requestManagePermission) {\n if (await NativeModules.NCYAPI.requestManagePermission()) {\n return true;\n }\n }\n\n return false;\n },\n\n savePicture: async (url: string, albumName?: string) => {\n console.log('savePicture', url);\n\n if (!url) {\n return { errorCode: -5, errMsg: 'url is empty' };\n }\n\n // 检查权限\n if (\n Platform.OS === 'android' &&\n !(await Tool.hasAndroidWritePermission())\n ) {\n return { errorCode: -1 };\n }\n\n // iOS 或本地图片直接保存\n if (Platform.OS === 'ios' || !Tool.isRemoteURL(url)) {\n try {\n await CameraRoll.save(url, {\n type: 'photo',\n album: albumName ?? ToolkitConfig.AppName,\n });\n return { errorCode: 0 };\n } catch (error: any) {\n console.error(error);\n return { errorCode: -2, errMsg: JSON.stringify(error) };\n }\n }\n\n // 安卓远程图片需要下载\n const extension = Tool.get_url_extension(url);\n try {\n if (!NativeModules.ReactNativeBlobUtil) {\n Tool.goUpgrade();\n return { errorCode: -5, errMsg: 'low version' };\n }\n let ReactNativeBlobUtil = require('react-native-blob-util').default;\n const res = await ReactNativeBlobUtil!\n .config({\n fileCache: true,\n appendExt: extension,\n })\n .fetch('GET', url, {});\n // the temp file path\n console.log('The file saved to ', res.path());\n try {\n await CameraRoll.save('file://' + res.path(), {\n type: 'photo',\n album: albumName,\n });\n return { errorCode: 0 };\n } catch (e1) {\n console.error(e1 + '\\n' + res.path());\n return { errorCode: -3, errMsg: JSON.stringify(e1) };\n }\n } catch (error) {\n console.error(error);\n return { errorCode: -4, errMsg: JSON.stringify(error) };\n }\n },\n\n setVibrateEnable: (enable: boolean) => {\n PrefData.setValue(BuildInPrefs.Vibrate, enable);\n VibrateEnable = enable;\n },\n\n getVibrateEnable: () => {\n return VibrateEnable === undefined ? true : VibrateEnable;\n },\n\n vibrate: async () => {\n try {\n if (VibrateEnable === undefined) {\n VibrateEnable = PrefData.getValue(BuildInPrefs.Vibrate);\n }\n if (!VibrateEnable) {\n return;\n }\n if (Platform.OS === 'ios') {\n NativeModules.NCYVibration?.vibrate();\n } else {\n if (androidVibratePermissionStatus === -1) {\n androidVibratePermissionStatus = (await PermissionsAndroid.check(\n // @ts-ignore\n 'android.permission.VIBRATE'\n ))\n ? 1\n : 0;\n }\n if (androidVibratePermissionStatus === 1) {\n Vibration.vibrate(5);\n }\n }\n } catch (error) {}\n },\n};\n"],"mappings":"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"}
|
@@ -2,10 +2,10 @@ import Purchases from 'react-native-purchases';
|
|
2
2
|
import * as WeChat from 'react-native-wechat-lib';
|
3
3
|
import { LoginManager } from './LoginManager';
|
4
4
|
import { Tool, ToolkitConfig } from './Tool';
|
5
|
-
let
|
5
|
+
let AndroidOfferings;
|
6
6
|
export const VipAndroidManager = {
|
7
|
-
|
8
|
-
|
7
|
+
setOfferings: offerings => {
|
8
|
+
AndroidOfferings = offerings;
|
9
9
|
},
|
10
10
|
queryOrder: async orderId => {
|
11
11
|
const user = LoginManager.currentUser();
|
@@ -68,8 +68,11 @@ export const VipAndroidManager = {
|
|
68
68
|
}
|
69
69
|
}
|
70
70
|
},
|
71
|
-
getPackages:
|
72
|
-
|
71
|
+
getPackages: offeringId => {
|
72
|
+
if (offeringId) {
|
73
|
+
return AndroidOfferings[offeringId];
|
74
|
+
}
|
75
|
+
return AndroidOfferings.current;
|
73
76
|
},
|
74
77
|
purchase: async purchasePackage => {
|
75
78
|
try {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Purchases","WeChat","LoginManager","Tool","ToolkitConfig","
|
1
|
+
{"version":3,"names":["Purchases","WeChat","LoginManager","Tool","ToolkitConfig","AndroidOfferings","VipAndroidManager","setOfferings","offerings","queryOrder","orderId","user","currentUser","rawResponse","fetch","WeChatPayServer","method","headers","body","JSON","stringify","AVUser","get","order","cmd","res","json","status","error","paid","e","recover","invalidateCustomerInfoCache","console","log","errorCode","errorMsg","getPackages","offeringId","current","purchase","purchasePackage","_purchasePackage$prod","product","identifier","errCode","errStr","pay","payload","sleep"],"sources":["VipAndroidManager.ts"],"sourcesContent":["import Purchases, { PurchasesPackage } from 'react-native-purchases';\nimport * as WeChat from 'react-native-wechat-lib';\nimport { LoginManager } from './LoginManager';\nimport { Tool, ToolkitConfig } from './Tool';\nlet AndroidOfferings: { [key: string]: PurchasesPackage[] };\n\nexport const VipAndroidManager = {\n setOfferings: (offerings: { [key: string]: PurchasesPackage[] }) => {\n AndroidOfferings = offerings;\n },\n\n queryOrder: async (orderId?: string) => {\n const user = LoginManager.currentUser();\n // Step1:生成预订单\n try {\n const rawResponse = await fetch(ToolkitConfig.WeChatPayServer, {\n method: 'POST',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n user: user?.AVUser.get('objectId'),\n order: orderId,\n cmd: 'check',\n }),\n });\n const res = await rawResponse.json();\n // console.log(res);\n if (rawResponse.status === 200 && !res.error) {\n return { paid: res.paid };\n } else {\n return { paid: false, e: res.error };\n }\n } catch (e) {\n return { paid: false, e: e };\n }\n },\n\n recover: async () => {\n const { paid, e } = await VipAndroidManager.queryOrder();\n if (paid && !e) {\n await Purchases.invalidateCustomerInfoCache();\n console.log('恢复成功');\n return { errorCode: 0 };\n } else {\n if (e) {\n console.log('恢复失败(-3)', JSON.stringify(e));\n return { errorCode: -3, errorMsg: JSON.stringify(e) };\n } else {\n console.log('恢复失败(-2)');\n return { errorCode: -2 };\n }\n }\n },\n\n getPackages: (offeringId?: string) => {\n if (offeringId) {\n return AndroidOfferings[offeringId];\n }\n\n return AndroidOfferings.current;\n },\n\n purchase: async (purchasePackage: PurchasesPackage) => {\n try {\n const user = LoginManager.currentUser();\n // Step1:生成预订单\n const rawResponse = await fetch(ToolkitConfig.WeChatPayServer, {\n method: 'POST',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n user: user?.AVUser.get('objectId'),\n product: purchasePackage.product?.identifier,\n cmd: 'prepare',\n }),\n });\n const res = await rawResponse.json();\n // console.log(res);\n if (rawResponse.status === 200 && !res.error) {\n // Step2:调用微信支付 SDK\n const { errCode, errStr } = await WeChat.pay(res.payload);\n if (errCode) {\n console.log('购买失败(-5)', errStr);\n return { errorCode: -5, errorMsg: errStr };\n }\n // 虽然没什么问题,但保险起见还是延时下,让后台先更新\n await Tool.sleep(4000);\n // Step3:查询后台\n const { paid, e } = await VipAndroidManager.queryOrder(\n res.payload.order\n );\n if (paid && !e) {\n await Purchases.invalidateCustomerInfoCache();\n return { errorCode: 0 };\n } else {\n console.log('购买失败(-5)', JSON.stringify(e));\n return { errorCode: -5, errorMsg: JSON.stringify(e) };\n }\n } else {\n console.log('购买失败(-5)', JSON.stringify(res?.error));\n return { errorCode: -5, errorMsg: JSON.stringify(res?.error) };\n }\n } catch (e) {\n console.log('购买失败(-5)', JSON.stringify(e));\n return { errorCode: -5, errorMsg: JSON.stringify(e) };\n }\n },\n};\n"],"mappings":"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"}
|
package/lib/module/VipManager.js
CHANGED
@@ -135,7 +135,7 @@ export const VipManager = {
|
|
135
135
|
};
|
136
136
|
}
|
137
137
|
},
|
138
|
-
getPackages: async
|
138
|
+
getPackages: async offeringId => {
|
139
139
|
if (!isReady) {
|
140
140
|
console.log('VIP 模块无有效配置信息');
|
141
141
|
return [];
|
@@ -144,11 +144,17 @@ export const VipManager = {
|
|
144
144
|
return [];
|
145
145
|
}
|
146
146
|
if (Platform.OS === 'android' || __DEV__) {
|
147
|
-
return VipAndroidManager.getPackages();
|
147
|
+
return VipAndroidManager.getPackages(offeringId);
|
148
148
|
}
|
149
149
|
try {
|
150
150
|
const offerings = await Purchases.getOfferings();
|
151
|
-
let targetOffering
|
151
|
+
let targetOffering;
|
152
|
+
if (offeringId) {
|
153
|
+
targetOffering = offerings.all[offeringId];
|
154
|
+
}
|
155
|
+
if (!targetOffering) {
|
156
|
+
targetOffering = offerings.current;
|
157
|
+
}
|
152
158
|
console.log('获取商品');
|
153
159
|
if (targetOffering !== null && targetOffering.availablePackages.length !== 0) {
|
154
160
|
let packages = targetOffering.availablePackages;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Platform","Purchases","DevConfig","LoginManager","Notification","BuildInPrefs","Tool","ToolkitConfig","VipAndroidManager","_customerInfo","isReady","VipManager","init","RC_API_KEY","console","log","configure","apiKey","refreshVip","addListener","_ref","error","user","logIn","AVUser","get","setAttributes","nickname","e","logOut","purchase","purchasePackage","errorCode","isLogin","OS","customerInfo","entitlements","active","RC_ENTITLEMENT_ID","errorMsg","userCancelled","message","recover","_customerInfo$entitle","restorePurchases","vip","getPackages","isForeverVip","__DEV__","offerings","getOfferings","targetOffering","current","availablePackages","length","packages","isVip","isTrailVip","filter","item","productItem","product","productCategory","_customerInfo2","_customerInfo3","_isVip2","_isVip","isActive","isSandbox","hasValue","DevVip","getValue","_VipManager$vipEndTim","vipEndTime","vipCountDay","_customerInfo4","time","expirationDate","date","Date","formatDate","_customerInfo5","diff","getTime","Math","max","ceil","_LoginManager$current","vipType","currentUser","includes","isVipExpired","_LoginManager$current2","_customerInfo6","getCustomerInfo","updateVipInfo","postNotification","_customerInfo7","_LoginManager$current3","keys","values","productIdentifier","oldVipType","push","_customerInfo8","expireDate","_LoginManager$current4","oldVipEndTime","batchUpdateUser"],"sources":["VipManager.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport Purchases, {\n CustomerInfo,\n PurchasesPackage,\n} from 'react-native-purchases';\nimport { DevConfig } from './DevConfig';\nimport { LoginManager, LoginResultDataType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { BuildInPrefs } from './PrefData';\nimport { Tool, ToolkitConfig } from './Tool';\nimport { VipAndroidManager } from './VipAndroidManager';\n\nlet _customerInfo: CustomerInfo | null;\nlet isReady = false;\n\nexport const VipManager = {\n init: () => {\n isReady = !!ToolkitConfig.RC_API_KEY;\n\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return;\n }\n\n console.log('Vip 模块初始化');\n\n Purchases.configure({ apiKey: ToolkitConfig.RC_API_KEY });\n\n VipManager.refreshVip();\n\n Notification.addListener(\n 'onLogin',\n async ({ error, user }: LoginResultDataType) => {\n console.log('Vip 模块用户登录');\n if (!error && user) {\n try {\n await Purchases.logIn(user.AVUser.get('objectId'));\n await Purchases.setAttributes({ nickname: user.nickname });\n await VipManager.refreshVip();\n } catch (e) {\n console.error(e);\n }\n }\n }\n );\n\n Notification.addListener('onLogout', () => {\n Purchases.logOut();\n _customerInfo = null;\n });\n },\n\n purchase: async (purchasePackage: PurchasesPackage) => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return { errorCode: -99 };\n }\n\n if (!LoginManager.isLogin()) {\n return { errorCode: -1 };\n }\n\n if (!purchasePackage) {\n return { errorCode: -4 };\n }\n\n console.log('购买商品', purchasePackage);\n\n if (Platform.OS === 'android') {\n return await VipAndroidManager.purchase(purchasePackage);\n }\n\n try {\n const { customerInfo } = await Purchases.purchasePackage(purchasePackage);\n\n await VipManager.refreshVip(customerInfo);\n if (\n typeof customerInfo.entitlements.active[\n ToolkitConfig.RC_ENTITLEMENT_ID\n ] !== 'undefined'\n ) {\n console.log('购买成功');\n return { errorCode: 0 };\n } else {\n console.log('购买失败(-5)');\n return { errorCode: -5, errorMsg: '' };\n }\n } catch (e: any) {\n if (!e.userCancelled) {\n console.log('购买失败(-5)', e.message);\n return { errorCode: -5, errorMsg: e.message };\n } else {\n console.log('购买取消(-2)');\n return { errorCode: -2 };\n }\n }\n },\n\n recover: async () => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return { errorCode: -99 };\n }\n\n if (!LoginManager.isLogin()) {\n return { errorCode: -1 };\n }\n\n try {\n if (Platform.OS === 'android') {\n return await VipAndroidManager.recover();\n }\n\n console.log('iOS 恢复购买');\n const customerInfo = await Purchases.restorePurchases();\n await VipManager.refreshVip(customerInfo);\n if (customerInfo.entitlements.active?.vip) {\n console.log('恢复成功');\n return { errorCode: 0 };\n } else {\n console.log('恢复失败(-2)');\n return { errorCode: -2 };\n }\n } catch (e: any) {\n console.log('恢复失败(-3)', e.message);\n return { errorCode: -3, errorMsg: e.message };\n }\n },\n\n getPackages: async (): Promise<PurchasesPackage[]> => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return [];\n }\n\n if (VipManager.isForeverVip()) {\n return [];\n }\n\n if (Platform.OS === 'android' || __DEV__) {\n return VipAndroidManager.getPackages();\n }\n\n try {\n const offerings = await Purchases.getOfferings();\n let targetOffering = offerings.current;\n console.log('获取商品');\n if (\n targetOffering !== null &&\n targetOffering.availablePackages.length !== 0\n ) {\n let packages = targetOffering.availablePackages;\n // 如果是订阅的,非试用的,过滤订阅产品,只展示永久 VIP\n if (VipManager.isVip() && !VipManager.isTrailVip()) {\n packages = packages.filter((item) => {\n const productItem: any = item.product;\n return productItem.productCategory === 'NON_SUBSCRIPTION';\n });\n }\n return packages;\n } else {\n return [];\n }\n } catch (e) {\n console.error('Get Product Fail', e);\n return [];\n }\n },\n\n isVip: () => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return false;\n }\n\n let _isVip = _customerInfo?.entitlements?.active?.vip?.isActive;\n if (\n _isVip &&\n !__DEV__ &&\n _customerInfo?.entitlements?.active?.vip.isSandbox\n ) {\n _isVip = false;\n }\n if (__DEV__) {\n if (DevConfig.hasValue(BuildInPrefs.DevVip)) {\n _isVip = DevConfig.getValue(BuildInPrefs.DevVip) ? true : false;\n }\n }\n return _isVip ?? false;\n },\n\n isForeverVip: () => {\n // 苹果的永久会员是非订阅制的,因此 RevenueCat 的 vipEndTime 会空\n return (\n VipManager.isVip() &&\n (VipManager.vipEndTime()?.length === 0 ||\n VipManager.vipCountDay() >= 36500)\n );\n },\n\n vipEndTime: () => {\n const time = _customerInfo?.entitlements?.active?.vip?.expirationDate;\n if (VipManager.isVip() && time) {\n const date = new Date(time);\n return Tool.formatDate(date, 'yyyy-MM-dd');\n } else {\n return '';\n }\n },\n\n vipCountDay: () => {\n const time = _customerInfo?.entitlements?.active?.vip?.expirationDate;\n if (VipManager.isVip() && time) {\n const date = new Date(time);\n const diff = date.getTime() - new Date().getTime();\n return Math.max(Math.ceil(diff / (24 * 60 * 60 * 1000)), 0);\n }\n return 0;\n },\n\n isTrailVip: () => {\n if (VipManager.isForeverVip()) {\n return false;\n }\n if (!VipManager.isVip()) {\n return false;\n }\n const vipType = LoginManager.currentUser()?.AVUser.get('vipType');\n if (vipType?.includes('rc_promo_')) {\n return true;\n }\n return false;\n },\n\n isVipExpired: () => {\n // 不是会员,但是 vipType 存在,说明曾经领过会员\n const vipType = LoginManager.currentUser()?.AVUser.get('vipType');\n return !VipManager.isVip() && vipType;\n },\n\n refreshVip: async (customerInfo?: CustomerInfo) => {\n try {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return;\n }\n console.log('刷新 VIP');\n if (customerInfo) {\n _customerInfo = customerInfo;\n } else {\n _customerInfo = await Purchases.getCustomerInfo();\n }\n console.log('VIP 信息刷新完毕', _customerInfo?.entitlements?.active);\n console.log('是否是 VIP', VipManager.isVip());\n console.log('VipInfo 过期时间', VipManager.vipEndTime());\n\n await updateVipInfo();\n // 必须确保通知正常发出,因为其他模块依赖这个时机\n Notification.postNotification('onVipRefresh', {});\n } catch (e) {\n console.error(e);\n Notification.postNotification('onVipRefresh', { e });\n }\n },\n};\n\nconst updateVipInfo = async () => {\n if (!VipManager.isVip() || !LoginManager.isLogin()) {\n return;\n }\n\n const keys = [];\n const values = [];\n\n const vipType = _customerInfo?.entitlements?.active?.vip?.productIdentifier;\n const oldVipType = LoginManager.currentUser()?.AVUser.get('vipType');\n if (vipType && vipType !== oldVipType) {\n keys.push('vipType');\n values.push(vipType);\n }\n\n let vipEndTime;\n if (VipManager.isForeverVip()) {\n vipEndTime = new Date(10413763200000); // 约定 2300-01-01 00:00:00 为永久会员\n } else {\n const expireDate = _customerInfo?.entitlements?.active?.vip?.expirationDate;\n if (expireDate) {\n vipEndTime = new Date(expireDate);\n }\n }\n if (vipEndTime) {\n const oldVipEndTime = LoginManager.currentUser()?.AVUser.get('vipEndTime');\n if (vipEndTime.getTime() !== oldVipEndTime?.getTime()) {\n keys.push('vipEndTime');\n values.push(vipEndTime);\n }\n }\n\n if (keys.length > 0) {\n await LoginManager.batchUpdateUser(keys, values);\n }\n};\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["Platform","Purchases","DevConfig","LoginManager","Notification","BuildInPrefs","Tool","ToolkitConfig","VipAndroidManager","_customerInfo","isReady","VipManager","init","RC_API_KEY","console","log","configure","apiKey","refreshVip","addListener","_ref","error","user","logIn","AVUser","get","setAttributes","nickname","e","logOut","purchase","purchasePackage","errorCode","isLogin","OS","customerInfo","entitlements","active","RC_ENTITLEMENT_ID","errorMsg","userCancelled","message","recover","_customerInfo$entitle","restorePurchases","vip","getPackages","offeringId","isForeverVip","__DEV__","offerings","getOfferings","targetOffering","all","current","availablePackages","length","packages","isVip","isTrailVip","filter","item","productItem","product","productCategory","_customerInfo2","_customerInfo3","_isVip2","_isVip","isActive","isSandbox","hasValue","DevVip","getValue","_VipManager$vipEndTim","vipEndTime","vipCountDay","_customerInfo4","time","expirationDate","date","Date","formatDate","_customerInfo5","diff","getTime","Math","max","ceil","_LoginManager$current","vipType","currentUser","includes","isVipExpired","_LoginManager$current2","_customerInfo6","getCustomerInfo","updateVipInfo","postNotification","_customerInfo7","_LoginManager$current3","keys","values","productIdentifier","oldVipType","push","_customerInfo8","expireDate","_LoginManager$current4","oldVipEndTime","batchUpdateUser"],"sources":["VipManager.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport Purchases, {\n CustomerInfo,\n PurchasesPackage,\n} from 'react-native-purchases';\nimport { DevConfig } from './DevConfig';\nimport { LoginManager, LoginResultDataType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { BuildInPrefs } from './PrefData';\nimport { Tool, ToolkitConfig } from './Tool';\nimport { VipAndroidManager } from './VipAndroidManager';\n\nlet _customerInfo: CustomerInfo | null;\nlet isReady = false;\n\nexport const VipManager = {\n init: () => {\n isReady = !!ToolkitConfig.RC_API_KEY;\n\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return;\n }\n\n console.log('Vip 模块初始化');\n\n Purchases.configure({ apiKey: ToolkitConfig.RC_API_KEY });\n\n VipManager.refreshVip();\n\n Notification.addListener(\n 'onLogin',\n async ({ error, user }: LoginResultDataType) => {\n console.log('Vip 模块用户登录');\n if (!error && user) {\n try {\n await Purchases.logIn(user.AVUser.get('objectId'));\n await Purchases.setAttributes({ nickname: user.nickname });\n await VipManager.refreshVip();\n } catch (e) {\n console.error(e);\n }\n }\n }\n );\n\n Notification.addListener('onLogout', () => {\n Purchases.logOut();\n _customerInfo = null;\n });\n },\n\n purchase: async (purchasePackage: PurchasesPackage) => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return { errorCode: -99 };\n }\n\n if (!LoginManager.isLogin()) {\n return { errorCode: -1 };\n }\n\n if (!purchasePackage) {\n return { errorCode: -4 };\n }\n\n console.log('购买商品', purchasePackage);\n\n if (Platform.OS === 'android') {\n return await VipAndroidManager.purchase(purchasePackage);\n }\n\n try {\n const { customerInfo } = await Purchases.purchasePackage(purchasePackage);\n\n await VipManager.refreshVip(customerInfo);\n if (\n typeof customerInfo.entitlements.active[\n ToolkitConfig.RC_ENTITLEMENT_ID\n ] !== 'undefined'\n ) {\n console.log('购买成功');\n return { errorCode: 0 };\n } else {\n console.log('购买失败(-5)');\n return { errorCode: -5, errorMsg: '' };\n }\n } catch (e: any) {\n if (!e.userCancelled) {\n console.log('购买失败(-5)', e.message);\n return { errorCode: -5, errorMsg: e.message };\n } else {\n console.log('购买取消(-2)');\n return { errorCode: -2 };\n }\n }\n },\n\n recover: async () => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return { errorCode: -99 };\n }\n\n if (!LoginManager.isLogin()) {\n return { errorCode: -1 };\n }\n\n try {\n if (Platform.OS === 'android') {\n return await VipAndroidManager.recover();\n }\n\n console.log('iOS 恢复购买');\n const customerInfo = await Purchases.restorePurchases();\n await VipManager.refreshVip(customerInfo);\n if (customerInfo.entitlements.active?.vip) {\n console.log('恢复成功');\n return { errorCode: 0 };\n } else {\n console.log('恢复失败(-2)');\n return { errorCode: -2 };\n }\n } catch (e: any) {\n console.log('恢复失败(-3)', e.message);\n return { errorCode: -3, errorMsg: e.message };\n }\n },\n\n getPackages: async (offeringId?: string): Promise<PurchasesPackage[]> => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return [];\n }\n\n if (VipManager.isForeverVip()) {\n return [];\n }\n\n if (Platform.OS === 'android' || __DEV__) {\n return VipAndroidManager.getPackages(offeringId);\n }\n\n try {\n const offerings = await Purchases.getOfferings();\n let targetOffering;\n if (offeringId) {\n targetOffering = offerings.all[offeringId];\n }\n\n if (!targetOffering) {\n targetOffering = offerings.current;\n }\n\n console.log('获取商品');\n if (\n targetOffering !== null &&\n targetOffering.availablePackages.length !== 0\n ) {\n let packages = targetOffering.availablePackages;\n // 如果是订阅的,非试用的,过滤订阅产品,只展示永久 VIP\n if (VipManager.isVip() && !VipManager.isTrailVip()) {\n packages = packages.filter((item) => {\n const productItem: any = item.product;\n return productItem.productCategory === 'NON_SUBSCRIPTION';\n });\n }\n return packages;\n } else {\n return [];\n }\n } catch (e) {\n console.error('Get Product Fail', e);\n return [];\n }\n },\n\n isVip: () => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return false;\n }\n\n let _isVip = _customerInfo?.entitlements?.active?.vip?.isActive;\n if (\n _isVip &&\n !__DEV__ &&\n _customerInfo?.entitlements?.active?.vip.isSandbox\n ) {\n _isVip = false;\n }\n if (__DEV__) {\n if (DevConfig.hasValue(BuildInPrefs.DevVip)) {\n _isVip = DevConfig.getValue(BuildInPrefs.DevVip) ? true : false;\n }\n }\n return _isVip ?? false;\n },\n\n isForeverVip: () => {\n // 苹果的永久会员是非订阅制的,因此 RevenueCat 的 vipEndTime 会空\n return (\n VipManager.isVip() &&\n (VipManager.vipEndTime()?.length === 0 ||\n VipManager.vipCountDay() >= 36500)\n );\n },\n\n vipEndTime: () => {\n const time = _customerInfo?.entitlements?.active?.vip?.expirationDate;\n if (VipManager.isVip() && time) {\n const date = new Date(time);\n return Tool.formatDate(date, 'yyyy-MM-dd');\n } else {\n return '';\n }\n },\n\n vipCountDay: () => {\n const time = _customerInfo?.entitlements?.active?.vip?.expirationDate;\n if (VipManager.isVip() && time) {\n const date = new Date(time);\n const diff = date.getTime() - new Date().getTime();\n return Math.max(Math.ceil(diff / (24 * 60 * 60 * 1000)), 0);\n }\n return 0;\n },\n\n isTrailVip: () => {\n if (VipManager.isForeverVip()) {\n return false;\n }\n if (!VipManager.isVip()) {\n return false;\n }\n const vipType = LoginManager.currentUser()?.AVUser.get('vipType');\n if (vipType?.includes('rc_promo_')) {\n return true;\n }\n return false;\n },\n\n isVipExpired: () => {\n // 不是会员,但是 vipType 存在,说明曾经领过会员\n const vipType = LoginManager.currentUser()?.AVUser.get('vipType');\n return !VipManager.isVip() && vipType;\n },\n\n refreshVip: async (customerInfo?: CustomerInfo) => {\n try {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return;\n }\n console.log('刷新 VIP');\n if (customerInfo) {\n _customerInfo = customerInfo;\n } else {\n _customerInfo = await Purchases.getCustomerInfo();\n }\n console.log('VIP 信息刷新完毕', _customerInfo?.entitlements?.active);\n console.log('是否是 VIP', VipManager.isVip());\n console.log('VipInfo 过期时间', VipManager.vipEndTime());\n\n await updateVipInfo();\n // 必须确保通知正常发出,因为其他模块依赖这个时机\n Notification.postNotification('onVipRefresh', {});\n } catch (e) {\n console.error(e);\n Notification.postNotification('onVipRefresh', { e });\n }\n },\n};\n\nconst updateVipInfo = async () => {\n if (!VipManager.isVip() || !LoginManager.isLogin()) {\n return;\n }\n\n const keys = [];\n const values = [];\n\n const vipType = _customerInfo?.entitlements?.active?.vip?.productIdentifier;\n const oldVipType = LoginManager.currentUser()?.AVUser.get('vipType');\n if (vipType && vipType !== oldVipType) {\n keys.push('vipType');\n values.push(vipType);\n }\n\n let vipEndTime;\n if (VipManager.isForeverVip()) {\n vipEndTime = new Date(10413763200000); // 约定 2300-01-01 00:00:00 为永久会员\n } else {\n const expireDate = _customerInfo?.entitlements?.active?.vip?.expirationDate;\n if (expireDate) {\n vipEndTime = new Date(expireDate);\n }\n }\n if (vipEndTime) {\n const oldVipEndTime = LoginManager.currentUser()?.AVUser.get('vipEndTime');\n if (vipEndTime.getTime() !== oldVipEndTime?.getTime()) {\n keys.push('vipEndTime');\n values.push(vipEndTime);\n }\n }\n\n if (keys.length > 0) {\n await LoginManager.batchUpdateUser(keys, values);\n }\n};\n"],"mappings":"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"}
|
package/lib/typescript/Tool.d.ts
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
import { PurchasesPackage } from 'react-native-purchases';
|
2
2
|
export declare const VipAndroidManager: {
|
3
|
-
|
3
|
+
setOfferings: (offerings: {
|
4
|
+
[key: string]: PurchasesPackage[];
|
5
|
+
}) => void;
|
4
6
|
queryOrder: (orderId?: string) => Promise<{
|
5
7
|
paid: any;
|
6
8
|
e?: undefined;
|
@@ -15,7 +17,7 @@ export declare const VipAndroidManager: {
|
|
15
17
|
errorCode: number;
|
16
18
|
errorMsg: string;
|
17
19
|
}>;
|
18
|
-
getPackages: () => PurchasesPackage[];
|
20
|
+
getPackages: (offeringId?: string) => PurchasesPackage[];
|
19
21
|
purchase: (purchasePackage: PurchasesPackage) => Promise<{
|
20
22
|
errorCode: number;
|
21
23
|
errorMsg: string | undefined;
|
@@ -15,7 +15,7 @@ export declare const VipManager: {
|
|
15
15
|
errorCode: number;
|
16
16
|
errorMsg: any;
|
17
17
|
}>;
|
18
|
-
getPackages: () => Promise<PurchasesPackage[]>;
|
18
|
+
getPackages: (offeringId?: string) => Promise<PurchasesPackage[]>;
|
19
19
|
isVip: () => boolean;
|
20
20
|
isForeverVip: () => boolean;
|
21
21
|
vipEndTime: () => string;
|
package/package.json
CHANGED
package/src/.DS_Store
ADDED
Binary file
|
package/src/ConfigDataModel.ts
CHANGED
@@ -120,7 +120,7 @@ const _handleResponse = () => {
|
|
120
120
|
handleVersionInfo();
|
121
121
|
console.log('Config 处理完毕');
|
122
122
|
isDataReady = true;
|
123
|
-
VipAndroidManager.
|
123
|
+
VipAndroidManager.setOfferings(ConfigDataModel.get('vip_android_offerings'));
|
124
124
|
ConfigDataModel.emitChange();
|
125
125
|
};
|
126
126
|
|
package/src/Tool.ts
CHANGED
@@ -290,7 +290,7 @@ export const Tool = {
|
|
290
290
|
try {
|
291
291
|
if (!NativeModules.ReactNativeBlobUtil) {
|
292
292
|
Tool.goUpgrade();
|
293
|
-
return;
|
293
|
+
return { errorCode: -5, errMsg: 'low version' };
|
294
294
|
}
|
295
295
|
let ReactNativeBlobUtil = require('react-native-blob-util').default;
|
296
296
|
const res = await ReactNativeBlobUtil!
|
package/src/VipAndroidManager.ts
CHANGED
@@ -2,11 +2,11 @@ import Purchases, { PurchasesPackage } from 'react-native-purchases';
|
|
2
2
|
import * as WeChat from 'react-native-wechat-lib';
|
3
3
|
import { LoginManager } from './LoginManager';
|
4
4
|
import { Tool, ToolkitConfig } from './Tool';
|
5
|
-
let
|
5
|
+
let AndroidOfferings: { [key: string]: PurchasesPackage[] };
|
6
6
|
|
7
7
|
export const VipAndroidManager = {
|
8
|
-
|
9
|
-
|
8
|
+
setOfferings: (offerings: { [key: string]: PurchasesPackage[] }) => {
|
9
|
+
AndroidOfferings = offerings;
|
10
10
|
},
|
11
11
|
|
12
12
|
queryOrder: async (orderId?: string) => {
|
@@ -54,8 +54,12 @@ export const VipAndroidManager = {
|
|
54
54
|
}
|
55
55
|
},
|
56
56
|
|
57
|
-
getPackages: () => {
|
58
|
-
|
57
|
+
getPackages: (offeringId?: string) => {
|
58
|
+
if (offeringId) {
|
59
|
+
return AndroidOfferings[offeringId];
|
60
|
+
}
|
61
|
+
|
62
|
+
return AndroidOfferings.current;
|
59
63
|
},
|
60
64
|
|
61
65
|
purchase: async (purchasePackage: PurchasesPackage) => {
|
package/src/VipManager.ts
CHANGED
@@ -127,7 +127,7 @@ export const VipManager = {
|
|
127
127
|
}
|
128
128
|
},
|
129
129
|
|
130
|
-
getPackages: async (): Promise<PurchasesPackage[]> => {
|
130
|
+
getPackages: async (offeringId?: string): Promise<PurchasesPackage[]> => {
|
131
131
|
if (!isReady) {
|
132
132
|
console.log('VIP 模块无有效配置信息');
|
133
133
|
return [];
|
@@ -138,12 +138,20 @@ export const VipManager = {
|
|
138
138
|
}
|
139
139
|
|
140
140
|
if (Platform.OS === 'android' || __DEV__) {
|
141
|
-
return VipAndroidManager.getPackages();
|
141
|
+
return VipAndroidManager.getPackages(offeringId);
|
142
142
|
}
|
143
143
|
|
144
144
|
try {
|
145
145
|
const offerings = await Purchases.getOfferings();
|
146
|
-
let targetOffering
|
146
|
+
let targetOffering;
|
147
|
+
if (offeringId) {
|
148
|
+
targetOffering = offerings.all[offeringId];
|
149
|
+
}
|
150
|
+
|
151
|
+
if (!targetOffering) {
|
152
|
+
targetOffering = offerings.current;
|
153
|
+
}
|
154
|
+
|
147
155
|
console.log('获取商品');
|
148
156
|
if (
|
149
157
|
targetOffering !== null &&
|