├── .editorconfig
├── .github
└── workflows
│ └── nodejs.yml
├── .gitignore
├── .idea
├── codeStyles
│ └── Project.xml
└── vcs.xml
├── .npmignore
├── API详细说明.md
├── CHANGELOG.md
├── LICENSE
├── README.md
├── android
├── .idea
│ ├── .gitignore
│ ├── codeStyles
│ │ └── Project.xml
│ ├── gradle.xml
│ ├── modules.xml
│ └── vcs.xml
├── build.gradle
├── libs
│ ├── arm64-v8a
│ │ └── libCtaApiLib.so
│ ├── armeabi-v7a
│ │ └── libCtaApiLib.so
│ ├── armeabi
│ │ └── libCtaApiLib.so
│ ├── jverification-android-release-2.7.2.jar
│ ├── x86
│ │ └── libCtaApiLib.so
│ └── x86_64
│ │ └── libCtaApiLib.so
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── cn
│ │ └── jiguang
│ │ └── plugins
│ │ └── verification
│ │ ├── JVerificationModule.java
│ │ ├── JVerificationPackage.java
│ │ └── common
│ │ ├── JConstans.java
│ │ └── JLogger.java
│ └── res
│ ├── anim
│ └── umcsdk_anim_loading.xml
│ ├── drawable-xxhdpi
│ ├── umcsdk_check_image.png
│ ├── umcsdk_exception_bg.9.png
│ ├── umcsdk_exception_icon.png
│ ├── umcsdk_load_complete_w.png
│ ├── umcsdk_load_dot_white.png
│ ├── umcsdk_login_btn_normal.png
│ ├── umcsdk_login_btn_press.png
│ ├── umcsdk_login_btn_unable.png
│ ├── umcsdk_mobile_logo.png
│ ├── umcsdk_return_bg.png
│ ├── umcsdk_shape_input.png
│ ├── umcsdk_sms_normal.png
│ ├── umcsdk_sms_press.png
│ ├── umcsdk_sms_unable.png
│ ├── umcsdk_toast_bg.png
│ └── umcsdk_uncheck_image.png
│ ├── drawable
│ ├── dialog_bg.xml
│ ├── umcsdk_get_smscode_btn_bg.xml
│ └── umcsdk_login_btn_bg.xml
│ └── values
│ └── styles.xml
├── example
├── .buckconfig
├── .eslintrc.js
├── .flowconfig
├── .gitattributes
├── .gitignore
├── .prettierrc.js
├── .watchmanconfig
├── App.js
├── CustomView1.js
├── CustomView2.js
├── CustomView3.js
├── __tests__
│ └── App-test.js
├── android
│ ├── app
│ │ ├── build.gradle
│ │ ├── debug.keystore
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ ├── MainActivity.java
│ │ │ │ └── MainApplication.java
│ │ │ └── res
│ │ │ ├── drawable
│ │ │ ├── checkbox_selected.png
│ │ │ ├── checkbox_unselected.png
│ │ │ ├── close.png
│ │ │ ├── login_btn_normal.png
│ │ │ ├── login_btn_press.png
│ │ │ ├── login_btn_selector.xml
│ │ │ ├── login_btn_unable.png
│ │ │ └── umcsdk_mobile_logo.png
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── values
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ │ └── xml
│ │ │ └── network_security_config.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── app.json
├── babel.config.js
├── img
│ └── my_icon.jpg
├── index.js
├── ios
│ ├── JVerificationResource.bundle
│ │ ├── bg.png
│ │ ├── checkBox_selected@2x.png
│ │ ├── checkBox_selected@3x.png
│ │ ├── checkBox_unSelected@2x.png
│ │ ├── checkBox_unSelected@3x.png
│ │ ├── close@2x.png
│ │ ├── close@3x.png
│ │ ├── loginBtn_Dis@2x.png
│ │ ├── loginBtn_Dis@3x.png
│ │ ├── loginBtn_Hig@2x.png
│ │ ├── loginBtn_Hig@3x.png
│ │ ├── loginBtn_Nor@2x.png
│ │ ├── loginBtn_Nor@3x.png
│ │ ├── umcsdk_mobile_logo.png
│ │ └── windowClose.png
│ ├── Podfile
│ ├── Podfile.lock
│ ├── example.xcodeproj
│ │ ├── project.pbxproj
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ ├── example-tvOS.xcscheme
│ │ │ └── example.xcscheme
│ ├── example.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── example
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── Base.lproj
│ │ └── LaunchScreen.xib
│ │ ├── Images.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ └── Contents.json
│ │ ├── Info.plist
│ │ └── main.m
├── metro.config.js
└── package.json
├── index.js
├── ios
├── RCTJVerificationModule.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ ├── IDEWorkspaceChecks.plist
│ │ └── WorkspaceSettings.xcsettings
└── RCTJVerificationModule
│ ├── EAccountApiSDK.framework
│ ├── EAccountApiSDK
│ ├── Headers
│ │ ├── EAccountCTEConfig.h
│ │ ├── EAccountPreLoginConfigModel.h
│ │ └── EAccountSDK.h
│ └── Info.plist
│ ├── ESOneKeyLogin.framework
│ ├── ESOneKeyLogin
│ ├── Headers
│ │ ├── ESLoginService.h
│ │ └── ESOneKeyLogin.h
│ ├── Info.plist
│ ├── Modules
│ │ └── module.modulemap
│ └── _CodeSignature
│ │ ├── CodeDirectory
│ │ ├── CodeRequirements
│ │ ├── CodeRequirements-1
│ │ ├── CodeResources
│ │ └── CodeSignature
│ ├── JVERIFICATIONService.h
│ ├── OAuth.framework
│ ├── Headers
│ │ ├── ZOAuthManager.h
│ │ ├── ZTOAuthManager.h
│ │ └── ZUOAuthManager.h
│ ├── Info.plist
│ ├── OAuth
│ └── _CodeSignature
│ │ ├── CodeDirectory
│ │ ├── CodeRequirements
│ │ ├── CodeRequirements-1
│ │ ├── CodeResources
│ │ └── CodeSignature
│ ├── RCTJVerificationModule.h
│ ├── RCTJVerificationModule.m
│ ├── TYRZUISDK.framework
│ ├── Headers
│ │ ├── TYRZSDK.h
│ │ ├── UACustomModel.h
│ │ ├── UAEnums.h
│ │ ├── UASDKErrorCode.h
│ │ └── UASDKLogin.h
│ ├── Info.plist
│ └── TYRZUISDK
│ ├── account_login_sdk_noui_core.framework
│ ├── Headers
│ │ ├── UniAuthHelper.h
│ │ └── account_login_sdk_noui_core.h
│ ├── Info.plist
│ ├── Modules
│ │ └── module.modulemap
│ └── account_login_sdk_noui_core
│ └── libjverification-ios-2.7.1.a
├── jverification-react-native.podspec
├── package.json
└── 认证SDK授权页面元素配置API说明.md
/.editorconfig:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/.github/workflows/nodejs.yml:
--------------------------------------------------------------------------------
1 | # This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages
3 | name: npm-publish
4 | on:
5 | push:
6 | branches:
7 | - master # Change this to your default branch
8 | jobs:
9 | npm-publish:
10 | name: npm-publish
11 | runs-on: ubuntu-latest
12 | steps:
13 | - name: Checkout repository
14 | uses: actions/checkout@master
15 | - name: Set up Node.js
16 | uses: actions/setup-node@master
17 | with:
18 | node-version: 10.0.0
19 | registry-url: https://registry.npmjs.org/
20 | - run: npm publish
21 | env: # More info about the environment variables in the README
22 | NODE_AUTH_TOKEN: ${{secrets.NPM_AUTH_TOKEN}} # You need to set this in your repo settings
23 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ### Android template
2 | # Built application files
3 | *.apk
4 | *.ap_
5 |
6 | # Files for the ART/Dalvik VM
7 | *.dex
8 |
9 | # Java class files
10 | *.class
11 |
12 | # Generated files
13 | bin/
14 | gen/
15 | out/
16 |
17 | # Gradle files
18 | .gradle/
19 | build/
20 |
21 | # Local configuration file (sdk path, etc)
22 | local.properties
23 |
24 | # Proguard folder generated by Eclipse
25 | proguard/
26 |
27 | # Log Files
28 | *.log
29 |
30 | # Android Studio Navigation editor temp files
31 | .navigation/
32 |
33 | # Android Studio captures folder
34 | captures/
35 |
36 | # IntelliJ
37 | *.iml
38 | .idea/workspace.xml
39 | .idea/tasks.xml
40 | .idea/gradle.xml
41 | .idea/dictionaries
42 | .idea/libraries
43 |
44 | # Keystore files
45 | # Uncomment the following line if you do not want to check your keystore files in.
46 | #*.jks
47 |
48 | # External native build folder generated in Android Studio 2.2 and later
49 | .externalNativeBuild
50 |
51 | # Google Services (e.g. APIs or Firebase)
52 | google-services.json
53 |
54 | # Freeline
55 | freeline.py
56 | freeline/
57 | freeline_project_description.json
58 |
59 | ### JetBrains template
60 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
61 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
62 |
63 | # User-specific stuff:
64 | .idea/**/workspace.xml
65 | .idea/**/tasks.xml
66 |
67 | # Sensitive or high-churn files:
68 | .idea/**/dataSources/
69 | .idea/**/dataSources.ids
70 | .idea/**/dataSources.xml
71 | .idea/**/dataSources.local.xml
72 | .idea/**/sqlDataSources.xml
73 | .idea/**/dynamic.xml
74 | .idea/**/uiDesigner.xml
75 |
76 | # Gradle:
77 | .idea/**/gradle.xml
78 | .idea/**/libraries
79 |
80 | # CMake
81 | cmake-build-debug/
82 | cmake-build-release/
83 |
84 | # Mongo Explorer plugin:
85 | .idea/**/mongoSettings.xml
86 |
87 | ## File-based project format:
88 | *.iws
89 |
90 | ## Plugin-specific files:
91 |
92 | # IntelliJ
93 |
94 | # mpeltonen/sbt-idea plugin
95 | .idea_modules/
96 |
97 | # JIRA plugin
98 | atlassian-ide-plugin.xml
99 |
100 | # Cursive Clojure plugin
101 | .idea/replstate.xml
102 |
103 | # Crashlytics plugin (for Android Studio and IntelliJ)
104 | com_crashlytics_export_strings.xml
105 | crashlytics.properties
106 | crashlytics-build.properties
107 | fabric.properties
108 |
109 | ### VisualStudioCode template
110 | .vscode/*
111 | !.vscode/settings.json
112 | !.vscode/tasks.json
113 | !.vscode/launch.json
114 | !.vscode/extensions.json
115 |
116 | ### Xcode template
117 | # Xcode
118 | #
119 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
120 |
121 | ## User settings
122 | xcuserdata/
123 |
124 | ## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
125 | *.xcscmblueprint
126 | *.xccheckout
127 |
128 | ## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
129 | DerivedData/
130 | *.moved-aside
131 | *.pbxuser
132 | !default.pbxuser
133 | *.mode1v3
134 | !default.mode1v3
135 | *.mode2v3
136 | !default.mode2v3
137 | *.perspectivev3
138 | !default.perspectivev3
139 |
140 | ### Node template
141 | # Logs
142 | logs
143 | npm-debug.log*
144 | yarn-debug.log*
145 | yarn-error.log*
146 |
147 | # Runtime data
148 | pids
149 | *.pid
150 | *.seed
151 | *.pid.lock
152 |
153 | # Directory for instrumented libs generated by jscoverage/JSCover
154 | lib-cov
155 |
156 | # Coverage directory used by tools like istanbul
157 | coverage
158 |
159 | # nyc test coverage
160 | .nyc_output
161 |
162 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
163 | .grunt
164 |
165 | # Bower dependency directory (https://bower.io/)
166 | bower_components
167 |
168 | # node-waf configuration
169 | .lock-wscript
170 |
171 | # Compiled binary addons (https://nodejs.org/api/addons.html)
172 | build/Release
173 |
174 | # Dependency directories
175 | node_modules/
176 | jspm_packages/
177 |
178 | # Typescript v1 declaration files
179 | typings/
180 |
181 | # Optional npm cache directory
182 | .npm
183 |
184 | # Optional eslint cache
185 | .eslintcache
186 |
187 | # Optional REPL history
188 | .node_repl_history
189 |
190 | # Output of 'npm pack'
191 | *.tgz
192 |
193 | # Yarn Integrity file
194 | .yarn-integrity
195 |
196 | # dotenv environment variables file
197 | .env
198 |
199 | # next.js build output
200 | .next
201 |
202 | ### Customize
203 | package-lock.json
204 | yarn.lock
205 | *.qshell
206 | *.DS_Store
207 |
208 | *.gitattributes
209 | .idea
210 | index.android.bundle
211 |
--------------------------------------------------------------------------------
/.idea/codeStyles/Project.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | xmlns:android
14 |
15 | ^$
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | xmlns:.*
25 |
26 | ^$
27 |
28 |
29 | BY_NAME
30 |
31 |
32 |
33 |
34 |
35 |
36 | .*:id
37 |
38 | http://schemas.android.com/apk/res/android
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 | .*:name
48 |
49 | http://schemas.android.com/apk/res/android
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 | name
59 |
60 | ^$
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 | style
70 |
71 | ^$
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 | .*
81 |
82 | ^$
83 |
84 |
85 | BY_NAME
86 |
87 |
88 |
89 |
90 |
91 |
92 | .*
93 |
94 | http://schemas.android.com/apk/res/android
95 |
96 |
97 | ANDROID_ATTRIBUTE_ORDER
98 |
99 |
100 |
101 |
102 |
103 |
104 | .*
105 |
106 | .*
107 |
108 |
109 | BY_NAME
110 |
111 |
112 |
113 |
114 |
115 |
116 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | example/
2 | .github/
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ### v 2.4.8
2 | - android 更新到 2.7.2,iOS sdk更新到2.7.1 。
3 |
4 | ### v 2.4.7
5 | - 修复android偶现的崩溃问题。
6 |
7 | ### v 2.4.6
8 | - 1、修复android弹窗模式透明度问题。
9 | - 2、修复其他bug。
10 |
11 | ### v 2.4.5
12 | - android和iOS sdk更新到2.6.7 ,支持cheockBox未选中回调。补充相关认证授权页API说明文档。
13 |
14 | ### v 2.4.4
15 | - android增加弹窗自定义关闭按钮
16 |
17 | ### v 2.4.3
18 | - iOS、android增加弹窗登录
19 |
20 | ### v 2.4.2
21 | - 修复bug,优化体验
22 |
23 | ### v 2.4.1
24 | - 修复了安卓设置隐私文字大小无效
25 |
26 | ### v 2.4.0
27 | - 更新了原生sdk版本
28 | - 增加获取验证码,设置前后两次获取验证码时间间隔的功能
29 |
30 | ### v 2.3.0
31 | 1.由于RN-JCore1.6.0存在编译问题,从RN-JCore1.7.0开始,还是需要在AndroidManifest.xml中添加配置代码,具体参考 配置-2.1 Android
32 |
33 | 2.修复添加自定义布局问题
34 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 极光开发者
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # JVerification-React-Native
2 |
3 | ## 1. 安装
4 |
5 | ```
6 | npm install jverification-react-native --save
7 | ```
8 |
9 | * 注意:如果项目里没有jcore-react-native,需要安装
10 |
11 | ```
12 | npm install jcore-react-native --save
13 | ```
14 |
15 | ## 2. 配置
16 |
17 | ### 2.1 Android
18 |
19 | * build.gradle
20 |
21 | ```
22 | android {
23 | defaultConfig {
24 | applicationId "yourApplicationId" //在此替换你的应用包名
25 | ...
26 | manifestPlaceholders = [
27 | JPUSH_APPKEY: "yourAppKey", //在此替换你的APPKey
28 | JPUSH_CHANNEL: "yourChannel" //在此替换你的channel
29 | ]
30 | }
31 | }
32 | ```
33 |
34 | ```
35 | dependencies {
36 | ...
37 | implementation project(':jverification-react-native') // 添加 jverification 依赖
38 | implementation project(':jcore-react-native') // 添加 jcore 依赖
39 | }
40 | ```
41 |
42 | * setting.gradle
43 |
44 | ```
45 | include ':jverification-react-native'
46 | project(':jverification-react-native').projectDir = new File(rootProject.projectDir, '../node_modules/jverification-react-native/android')
47 | include ':jcore-react-native'
48 | project(':jcore-react-native').projectDir = new File(rootProject.projectDir, '../node_modules/jcore-react-native/android')
49 | ```
50 |
51 | ### 2.2 iOS
52 |
53 | ### 2.2.1 pod
54 |
55 | ```
56 | pod install
57 | ```
58 |
59 | * 注意:如果项目里使用pod安装过,请先执行命令
60 |
61 | ```
62 | pod deintegrate
63 | ```
64 |
65 | ### 2.2.2 配置AppKey
66 |
67 | * App.js
68 | ```
69 | const initParams = {
70 | 'time': 5000,
71 | 'appKey': 'yourAppKey', //仅iOS
72 | 'channel': 'channel', //仅iOS
73 | 'advertisingId': 'advertisingId', //仅iOS
74 | 'isProduction': false, //仅iOS
75 | };
76 | ```
77 |
78 | ## 3. 引用
79 |
80 | 参考:[App.js](https://github.com/jpush/jverification-react-native/tree/master/example/App.js)
81 |
82 | ## 4. API
83 | + API详细说明:[API详细说明.md](https://github.com/jpush/jverification-react-native/blob/master/API%E8%AF%A6%E7%BB%86%E8%AF%B4%E6%98%8E.md)
84 |
85 | + 授权页面元素配置说明:[认证SDK授权页面元素配置API说明.md](https://github.com/jpush/jverification-react-native/blob/master/%E8%AE%A4%E8%AF%81SDK%E6%8E%88%E6%9D%83%E9%A1%B5%E9%9D%A2%E5%85%83%E7%B4%A0%E9%85%8D%E7%BD%AEAPI%E8%AF%B4%E6%98%8E.md)
86 |
87 | + 示例详见:[index.js](https://github.com/jpush/jverification-react-native/tree/master/index.js)
88 |
89 | ## 5. 其他
90 |
91 | * 集成前务必将example工程跑通
92 | * JVerification2.2.0属于重构版本,如有紧急需求请前往[极光社区](https://community.jiguang.cn/c/question)
93 | * 上报问题还麻烦先调用JVerification.setLoggerEnable( true),拿到debug日志
94 |
95 |
96 |
--------------------------------------------------------------------------------
/android/.idea/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | # Default ignored files
3 | /workspace.xml
--------------------------------------------------------------------------------
/android/.idea/codeStyles/Project.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | xmlns:android
14 |
15 | ^$
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | xmlns:.*
25 |
26 | ^$
27 |
28 |
29 | BY_NAME
30 |
31 |
32 |
33 |
34 |
35 |
36 | .*:id
37 |
38 | http://schemas.android.com/apk/res/android
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 | .*:name
48 |
49 | http://schemas.android.com/apk/res/android
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 | name
59 |
60 | ^$
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 | style
70 |
71 | ^$
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 | .*
81 |
82 | ^$
83 |
84 |
85 | BY_NAME
86 |
87 |
88 |
89 |
90 |
91 |
92 | .*
93 |
94 | http://schemas.android.com/apk/res/android
95 |
96 |
97 | ANDROID_ATTRIBUTE_ORDER
98 |
99 |
100 |
101 |
102 |
103 |
104 | .*
105 |
106 | .*
107 |
108 |
109 | BY_NAME
110 |
111 |
112 |
113 |
114 |
115 |
116 |
--------------------------------------------------------------------------------
/android/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
13 |
14 |
--------------------------------------------------------------------------------
/android/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | def safeExtGet(prop, fallback) {
4 | rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
5 | }
6 |
7 | android {
8 | compileSdkVersion safeExtGet('compileSdkVersion', 29)
9 | buildToolsVersion safeExtGet('buildToolsVersion', '29.0.0')
10 | defaultConfig {
11 | minSdkVersion safeExtGet('minSdkVersion', 16)
12 | targetSdkVersion safeExtGet('targetSdkVersion', 29)
13 | }
14 | sourceSets.main {
15 | jniLibs.srcDirs = ['libs']
16 | }
17 | }
18 |
19 | dependencies {
20 | implementation fileTree(include: ['*.jar'], dir: 'libs')
21 | implementation 'com.facebook.react:react-native:+'
22 | }
23 |
--------------------------------------------------------------------------------
/android/libs/arm64-v8a/libCtaApiLib.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/libs/arm64-v8a/libCtaApiLib.so
--------------------------------------------------------------------------------
/android/libs/armeabi-v7a/libCtaApiLib.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/libs/armeabi-v7a/libCtaApiLib.so
--------------------------------------------------------------------------------
/android/libs/armeabi/libCtaApiLib.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/libs/armeabi/libCtaApiLib.so
--------------------------------------------------------------------------------
/android/libs/jverification-android-release-2.7.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/libs/jverification-android-release-2.7.2.jar
--------------------------------------------------------------------------------
/android/libs/x86/libCtaApiLib.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/libs/x86/libCtaApiLib.so
--------------------------------------------------------------------------------
/android/libs/x86_64/libCtaApiLib.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/libs/x86_64/libCtaApiLib.so
--------------------------------------------------------------------------------
/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
28 |
29 |
30 |
31 |
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/android/src/main/java/cn/jiguang/plugins/verification/JVerificationPackage.java:
--------------------------------------------------------------------------------
1 |
2 | package cn.jiguang.plugins.verification;
3 |
4 | import android.graphics.Color;
5 |
6 | import com.facebook.react.ReactPackage;
7 | import com.facebook.react.bridge.NativeModule;
8 | import com.facebook.react.bridge.ReactApplicationContext;
9 | import com.facebook.react.uimanager.ViewManager;
10 |
11 | import java.util.Arrays;
12 | import java.util.Collections;
13 | import java.util.List;
14 |
15 | public class JVerificationPackage implements ReactPackage {
16 |
17 | @Override
18 | public List createNativeModules(ReactApplicationContext reactContext) {
19 | return Arrays.asList(new JVerificationModule(reactContext));
20 | }
21 |
22 | @Override
23 | public List createViewManagers(ReactApplicationContext reactContext) {
24 | return Collections.emptyList();
25 | }
26 |
27 | }
--------------------------------------------------------------------------------
/android/src/main/java/cn/jiguang/plugins/verification/common/JConstans.java:
--------------------------------------------------------------------------------
1 | package cn.jiguang.plugins.verification.common;
2 |
3 | public class JConstans {
4 |
5 | public static final String CODE = "code";
6 | public static final String TIME = "time";
7 | public static final String ENABLE = "enable";
8 | public static final String CONTENT = "content";
9 | public static final String OPERATOR = "operator";
10 |
11 | public static final String LOGIN_EVENT = "LoginEvent";
12 |
13 | public static final String PARAMS_NULL = "params cant be null";
14 |
15 | //*******************************自定义登录页面*******************************
16 |
17 | public static final String BACK_GROUND_IMAGE = "backgroundImage"; //背景图
18 |
19 | public static final String STATUS_BAR_HIDDEN = "statusBarHidden"; //状态栏是否隐藏
20 | public static final String STATUS_BAR_MODE = "statusBarMode"; //状态栏模式。light和dark
21 | public static final String STATUS_BAR_MODE_LIGHT = "light"; //状态栏暗色模式。
22 | public static final String STATUS_BAR_MODE_DARK = "dark"; //状态栏暗色模式。仅在android 6.0以上设备生效。
23 |
24 | public static final String NAV_HIDDEN = "navHidden"; //导航栏是否隐藏
25 | public static final String NAV_COLOR = "navColor"; //导航栏颜色
26 |
27 | public static final String NAV_TITLE = "navTitle"; //导航栏标题
28 | public static final String NAV_TITLE_SIZE = "navTitleSize"; //导航栏标题文字字体大小(单位:sp)
29 | public static final String NAV_TITLE_COLOR = "navTitleColor"; //导航栏标题文字颜色
30 |
31 | public static final String NAV_RETURN_BTN_HIDDEN = "navReturnHidden"; //导航栏返回按钮是否隐藏
32 | public static final String NAV_RETURN_BTN_IMAGE = "navReturnImage"; //导航栏左侧返回按钮图标
33 | public static final String NAV_RETURN_BTN_X = "navReturnX"; //导航栏返回按钮距屏幕左侧偏移
34 | public static final String NAV_RETURN_BTN_Y = "navReturnY"; //导航栏返回按钮距上端偏移
35 | public static final String NAV_RETURN_BTN_W = "navReturnW"; //导航栏返回按钮宽度
36 | public static final String NAV_RETURN_BTN_H = "navReturnH"; //导航栏返回按钮高度
37 |
38 | public static final String LOGO_HIDDEN = "logoHidden"; //logo是否隐藏
39 | public static final String LOGO_IMAGE = "logoImage"; //logo(android默认为应用图标;ios默认无)
40 | public static final String LOGO_X = "logoX"; //logo相对于屏幕左边x轴偏移
41 | public static final String LOGO_Y = "logoY"; //logo相对于标题栏下边缘y偏移
42 | public static final String LOGO_W = "logoW"; //logo宽
43 | public static final String LOGO_H = "logoH"; //logo高
44 |
45 | public static final String NUMBER_SIZE = "numberSize"; //手机号码字体大小(单位:sp)
46 | public static final String NUMBER_COLOR = "numberColor"; //手机号码字体颜色
47 | public static final String NUMBER_X = "numberX"; //号码栏相对于屏幕左边x轴偏移
48 | public static final String NUMBER_Y = "numberY"; //号码栏相对于标题栏下边缘y偏移
49 | public static final String NUMBER_W = "numberW"; //号码栏宽度
50 | public static final String NUMBER_H = "numberH"; //号码栏高度
51 |
52 | public static final String SLOGAN_HIDDEN = "sloganHidden"; //slogan是否隐藏
53 | public static final String SLOGAN_TEXT_SIZE = "sloganTextSize"; //slogan字体大小
54 | public static final String SLOGAN_TEXT_COLOR = "sloganTextColor"; //slogan文字颜色
55 | public static final String SLOGAN_X = "sloganX"; //slogan相对于屏幕左边x轴偏移
56 | public static final String SLOGAN_Y = "sloganY"; //slogan相对于标题栏下边缘y偏移
57 |
58 | public static final String LOGIN_BTN_TEXT = "loginBtnText"; //登录按钮文字
59 | public static final String LOGIN_BTN_TEXT_SIZE = "loginBtnTextSize"; //登录按钮字体大小
60 | public static final String LOGIN_BTN_TEXT_COLOR = "loginBtnTextColor"; //登录按钮文字颜色
61 | public static final String LOGIN_BTN_IMAGE_SELECTOR = "loginBtnImageSelector"; //登录按钮selector选择样式 (仅android)
62 | public static final String LOGIN_BTN_NORMAL_IMAGE = "loginBtnNormalImage"; //登录按钮正常图片 (仅ios,三个同时设置生效)
63 | public static final String LOGIN_BTN_DISABLED_IMAGE = "loginBtnDisabledImage"; //登录按钮失效图片 (仅ios,三个同时设置生效
64 | public static final String LOGIN_BTN_SELECTED_IMAGE = "loginBtnSelectedImage"; //登录按钮按下图片 (仅ios,三个同时设置生效)
65 | public static final String LOGIN_BTN_X = "loginBtnOffsetX"; //登录按钮相对于屏幕左边x轴偏移
66 | public static final String LOGIN_BTN_Y = "loginBtnOffsetY"; //登录按钮相对于标题栏下边缘y偏移
67 | public static final String LOGIN_BTN_W = "loginBtnWidth"; //登录按钮宽度
68 | public static final String LOGIN_BTN_H = "loginBtnHeight"; //登录按钮高度
69 |
70 | public static final String PRIVACY_ONE = "privacyOne"; //隐私条款一
71 | public static final String PRIVACY_TWO = "privacyTwo"; //隐私条款二
72 | public static final String PRIVACY_COLOR = "privacyColor"; //隐私条款颜色
73 | public static final String PRIVACY_TEXT = "privacyText"; //隐私条款名称外的文字
74 | public static final String PRIVACY_TEXT_SIZE = "privacyTextSize"; //隐私条款文字字体大小
75 | public static final String PRIVACY_TEXT_GRAVITY_MODE = "privacyTextGravityMode"; //隐私条款文字是否居中对齐(默认左对齐)
76 | public static final String PRIVACY_TEXT_GRAVITY_LEFT = "left"; //隐私条款文字是否居中对齐(默认左对齐)
77 | public static final String PRIVACY_TEXT_GRAVITY_CENTER = "center"; //隐私条款文字是否居中对齐(默认左对齐)
78 | public static final String PRIVACY_X = "privacyOffsetX"; //隐私条款相对于屏幕左边x轴偏移
79 | public static final String PRIVACY_Y = "privacyOffsetY"; //隐私条款相对于授权页面底部下边缘y偏移
80 | public static final String PRIVACY_W = "privacyW"; //隐私条款名称外的文字栏宽度(单位:dp)
81 | public static final String PRIVACY_H = "privacyH"; //隐私条款名称外的文字栏高度度(单位:dp)
82 | public static final String PRIVACY_BOOK_SYMBOL_ENABLE = "privacyBookSymbolEnable"; //隐私条款运营商协议名是否加书名号
83 | public static final String EnableHintToast = "unAgreePrivacyHintToast"; //导航栏颜色
84 |
85 | public static final String PRIVACY_CHECKBOX_HIDDEN = "privacyCheckboxHidden"; //隐私条款checkbox是否隐藏
86 | public static final String PRIVACY_CHECKBOX_SIZE = "privacyCheckboxSize"; //设置隐私条款checkbox尺寸
87 | public static final String PRIVACY_CHECK_ENABLE = "privacyCheckEnable"; //隐私条款默认选中状态。默认不选中
88 | public static final String PRIVACY_CHECKBOX_IMAGE = "privacyCheckedImage"; //隐私条款复选框选中图片
89 | public static final String PRIVACY_UNCHECKED_IMAGE = "privacyUncheckedImage"; //隐私条款复选框未选中图片
90 |
91 | public static final String PRIVACY_WEB_NAV_COLOR = "privacyWebNavColor"; //协议展示web页面导航栏背景颜色
92 | public static final String PRIVACY_WEB_NAV_TITLE = "privacyWebNavTitle"; //协议展示web页面导航栏标题(仅iOS)
93 | public static final String PRIVACY_WEB_NAV_TITLE_SIZE = "privacyWebNavTitleSize"; //协议展示web页面导航栏标题文字大小
94 | public static final String PRIVACY_WEB_NAV_TITLE_COLOR = "privacyWebNavTitleColor"; //协议展示web页面导航栏标题文字颜色
95 | public static final String PRIVACY_WEB_NAV_RETURN_IMAGE = "privacyWebNavReturnImage"; //协议展示web页面导航栏返回按钮图标
96 |
97 | public static final String CUSTOM_VIEW_NAME = "customViewName";
98 | public static final String CUSTOM_VIEW_POINT = "customViewPoint";
99 |
100 | //*******************************验证码*******************************
101 | public static final String PHONE_NUMBER = "phoneNumber";
102 | public static final String SING_ID = "signID";
103 | public static final String TEMPLATE_ID = "templateID";
104 |
105 | // 授权页动画
106 | public static final String PRIVACY_NEED_START_ANIM = "privacyNeedStartAnim";
107 | public static final String PRIVACY_NEED_CLOSE_ANIM = "privacyNeedCloseAnim";
108 | // 授权页弹窗模式
109 | public static final String PRIVACY_DIALOG_THEME = "privacyDialogTheme";
110 | // 弹窗是否需要配置关闭按钮
111 | public static final String PRIVACY_NEED_CLOSE = "privacyNeedClose";
112 | // 弹窗关闭按钮模式
113 | public static final String PRIVACY_CLOSE_THEME = "privacyCloseTheme";
114 |
115 | }
116 |
--------------------------------------------------------------------------------
/android/src/main/java/cn/jiguang/plugins/verification/common/JLogger.java:
--------------------------------------------------------------------------------
1 | package cn.jiguang.plugins.verification.common;
2 |
3 |
4 | import android.util.Log;
5 |
6 | public class JLogger {
7 |
8 | public static final String TAG = "RN-JVerification";
9 |
10 | private static boolean isLoggerEnable = false;
11 |
12 | public static void setLoggerEnable(boolean loggerEnable) {
13 | Log.d(TAG, "setLoggerEnable:" + loggerEnable);
14 | isLoggerEnable = loggerEnable;
15 | }
16 |
17 | public static void i(String msg) {
18 | if (isLoggerEnable) {
19 | Log.i(TAG, msg);
20 | }
21 | }
22 |
23 | public static void d(String msg) {
24 | if (isLoggerEnable) {
25 | Log.d(TAG, msg);
26 | }
27 | }
28 |
29 | public static void v(String msg) {
30 | if (isLoggerEnable) {
31 | Log.v(TAG, msg);
32 | }
33 | }
34 |
35 | public static void w(String msg) {
36 | if (isLoggerEnable) {
37 | Log.w(TAG, msg);
38 | }
39 | }
40 |
41 | public static void e(String error) {
42 | if (isLoggerEnable) {
43 | Log.e(TAG, error);
44 | }
45 | }
46 |
47 | }
48 |
49 |
--------------------------------------------------------------------------------
/android/src/main/res/anim/umcsdk_anim_loading.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
11 |
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/umcsdk_check_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/src/main/res/drawable-xxhdpi/umcsdk_check_image.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/umcsdk_exception_bg.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/src/main/res/drawable-xxhdpi/umcsdk_exception_bg.9.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/umcsdk_exception_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/src/main/res/drawable-xxhdpi/umcsdk_exception_icon.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/umcsdk_load_complete_w.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/src/main/res/drawable-xxhdpi/umcsdk_load_complete_w.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/umcsdk_load_dot_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/src/main/res/drawable-xxhdpi/umcsdk_load_dot_white.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/umcsdk_login_btn_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/src/main/res/drawable-xxhdpi/umcsdk_login_btn_normal.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/umcsdk_login_btn_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/src/main/res/drawable-xxhdpi/umcsdk_login_btn_press.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/umcsdk_login_btn_unable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/src/main/res/drawable-xxhdpi/umcsdk_login_btn_unable.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/umcsdk_mobile_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/src/main/res/drawable-xxhdpi/umcsdk_mobile_logo.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/umcsdk_return_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/src/main/res/drawable-xxhdpi/umcsdk_return_bg.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/umcsdk_shape_input.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/src/main/res/drawable-xxhdpi/umcsdk_shape_input.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/umcsdk_sms_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/src/main/res/drawable-xxhdpi/umcsdk_sms_normal.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/umcsdk_sms_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/src/main/res/drawable-xxhdpi/umcsdk_sms_press.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/umcsdk_sms_unable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/src/main/res/drawable-xxhdpi/umcsdk_sms_unable.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/umcsdk_toast_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/src/main/res/drawable-xxhdpi/umcsdk_toast_bg.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/umcsdk_uncheck_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/android/src/main/res/drawable-xxhdpi/umcsdk_uncheck_image.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable/dialog_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/android/src/main/res/drawable/umcsdk_get_smscode_btn_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/android/src/main/res/drawable/umcsdk_login_btn_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/android/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 |
--------------------------------------------------------------------------------
/example/.buckconfig:
--------------------------------------------------------------------------------
1 |
2 | [android]
3 | target = Google Inc.:Google APIs:23
4 |
5 | [maven_repositories]
6 | central = https://repo1.maven.org/maven2
7 |
--------------------------------------------------------------------------------
/example/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | extends: '@react-native-community',
4 | };
5 |
--------------------------------------------------------------------------------
/example/.flowconfig:
--------------------------------------------------------------------------------
1 | [ignore]
2 | ; We fork some components by platform
3 | .*/*[.]android.js
4 |
5 | ; Ignore "BUCK" generated dirs
6 | /\.buckd/
7 |
8 | ; Ignore unexpected extra "@providesModule"
9 | .*/node_modules/.*/node_modules/fbjs/.*
10 |
11 | ; Ignore duplicate module providers
12 | ; For RN Apps installed via npm, "Libraries" folder is inside
13 | ; "node_modules/react-native" but in the source repo it is in the root
14 | node_modules/react-native/Libraries/react-native/React.js
15 |
16 | ; Ignore polyfills
17 | node_modules/react-native/Libraries/polyfills/.*
18 |
19 | ; These should not be required directly
20 | ; require from fbjs/lib instead: require('fbjs/lib/warning')
21 | node_modules/warning/.*
22 |
23 | ; Flow doesn't support platforms
24 | .*/Libraries/Utilities/HMRLoadingView.js
25 |
26 | [untyped]
27 | .*/node_modules/@react-native-community/cli/.*/.*
28 |
29 | [include]
30 |
31 | [libs]
32 | node_modules/react-native/Libraries/react-native/react-native-interface.js
33 | node_modules/react-native/flow/
34 |
35 | [options]
36 | emoji=true
37 |
38 | esproposal.optional_chaining=enable
39 | esproposal.nullish_coalescing=enable
40 |
41 | module.file_ext=.js
42 | module.file_ext=.json
43 | module.file_ext=.ios.js
44 |
45 | module.system=haste
46 | module.system.haste.use_name_reducers=true
47 | # get basename
48 | module.system.haste.name_reducers='^.*/\([a-zA-Z0-9$_.-]+\.js\(\.flow\)?\)$' -> '\1'
49 | # strip .js or .js.flow suffix
50 | module.system.haste.name_reducers='^\(.*\)\.js\(\.flow\)?$' -> '\1'
51 | # strip .ios suffix
52 | module.system.haste.name_reducers='^\(.*\)\.ios$' -> '\1'
53 | module.system.haste.name_reducers='^\(.*\)\.android$' -> '\1'
54 | module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1'
55 | module.system.haste.paths.blacklist=.*/__tests__/.*
56 | module.system.haste.paths.blacklist=.*/__mocks__/.*
57 | module.system.haste.paths.whitelist=/node_modules/react-native/Libraries/.*
58 | module.system.haste.paths.whitelist=/node_modules/react-native/RNTester/.*
59 | module.system.haste.paths.whitelist=/node_modules/react-native/IntegrationTests/.*
60 | module.system.haste.paths.blacklist=/node_modules/react-native/Libraries/react-native/react-native-implementation.js
61 | module.system.haste.paths.blacklist=/node_modules/react-native/Libraries/Animated/src/polyfills/.*
62 |
63 | munge_underscores=true
64 |
65 | module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub'
66 |
67 | suppress_type=$FlowIssue
68 | suppress_type=$FlowFixMe
69 | suppress_type=$FlowFixMeProps
70 | suppress_type=$FlowFixMeState
71 |
72 | suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)
73 | suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)?:? #[0-9]+
74 | suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
75 |
76 | [lints]
77 | sketchy-null-number=warn
78 | sketchy-null-mixed=warn
79 | sketchy-number=warn
80 | untyped-type-import=warn
81 | nonstrict-import=warn
82 | deprecated-type=warn
83 | unsafe-getters-setters=warn
84 | inexact-spread=warn
85 | unnecessary-invariant=warn
86 | signature-verification-failure=warn
87 | deprecated-utility=error
88 |
89 | [strict]
90 | deprecated-type
91 | nonstrict-import
92 | sketchy-null
93 | unclear-type
94 | unsafe-getters-setters
95 | untyped-import
96 | untyped-type-import
97 |
98 | [version]
99 | ^0.98.0
100 |
--------------------------------------------------------------------------------
/example/.gitattributes:
--------------------------------------------------------------------------------
1 | *.pbxproj -text
2 |
--------------------------------------------------------------------------------
/example/.gitignore:
--------------------------------------------------------------------------------
1 | # OSX
2 | #
3 | .DS_Store
4 |
5 | # Xcode
6 | #
7 | build/
8 | *.pbxuser
9 | !default.pbxuser
10 | *.mode1v3
11 | !default.mode1v3
12 | *.mode2v3
13 | !default.mode2v3
14 | *.perspectivev3
15 | !default.perspectivev3
16 | xcuserdata
17 | *.xccheckout
18 | *.moved-aside
19 | DerivedData
20 | *.hmap
21 | *.ipa
22 | *.xcuserstate
23 | project.xcworkspace
24 |
25 | # Android/IntelliJ
26 | #
27 | build/
28 | .idea
29 | .gradle
30 | local.properties
31 | *.iml
32 |
33 | # node.js
34 | #
35 | node_modules/
36 | npm-debug.log
37 | yarn-error.log
38 |
39 | # BUCK
40 | buck-out/
41 | \.buckd/
42 | *.keystore
43 |
44 | # fastlane
45 | #
46 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
47 | # screenshots whenever they are needed.
48 | # For more information about the recommended setup visit:
49 | # https://docs.fastlane.tools/best-practices/source-control/
50 |
51 | */fastlane/report.xml
52 | */fastlane/Preview.html
53 | */fastlane/screenshots
54 |
55 | # Bundle artifact
56 | *.jsbundle
57 |
58 | # CocoaPods
59 | /ios/Pods/
60 |
--------------------------------------------------------------------------------
/example/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | bracketSpacing: false,
3 | jsxBracketSameLine: true,
4 | singleQuote: true,
5 | trailingComma: 'all',
6 | };
7 |
--------------------------------------------------------------------------------
/example/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/example/App.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import {StyleSheet, Text, View,Alert, TouchableHighlight, Platform} from 'react-native';
3 | import JVerification from 'jverification-react-native';
4 |
5 |
6 | const styles = StyleSheet.create({
7 | container: {
8 | flex: 1,
9 | justifyContent: 'center',
10 | alignItems: 'center',
11 | backgroundColor: '#F5FCFF',
12 | },
13 | setBtnStyle: {
14 | width: 320,
15 | justifyContent: 'center',
16 | alignItems: 'center',
17 | marginTop: 10,
18 | borderWidth: 1,
19 | borderColor: '#3e83d7',
20 | borderRadius: 8,
21 | backgroundColor: '#3e83d7',
22 | padding: 10,
23 | },
24 | textStyle: {
25 | textAlign: 'center',
26 | fontSize: 25,
27 | color: '#ffffff',
28 | },
29 | });
30 |
31 | class Button extends React.Component {
32 | render() {
33 | return
38 |
40 |
42 | {this.props.title}
43 |
44 |
45 | ;
46 | }
47 | }
48 |
49 |
50 | const initParams = {
51 | 'time': 5000,
52 | 'appKey': 'a0e6ace8d5b3e0247e3f58db', //仅iOS
53 | 'channel': 'channel', //仅iOS
54 | 'advertisingId': 'advertisingId', //仅iOS
55 | 'isProduction': false, //仅iOS
56 | };
57 |
58 | //一键登录页面自定义配置,需要在调用login之前设置
59 |
60 |
61 | const customUIWithConfigiOS = {
62 | showWindow:false,
63 | navReturnHidden:false,
64 | //logo
65 | logoImage: 'umcsdk_mobile_logo',
66 | logoConstraints:[0,-200,60,60],
67 | //number
68 | numberConstraints:[0,-132,200,14],
69 | //slogn
70 | sloganConstraints:[0,-112,200,14],
71 | //登录按钮
72 | logBtnConstraints:[0,-80,220,40],
73 | loginBtnText:"一键登录",
74 | loginBtnTextColor:0x0000FF,
75 | privacyConstraints:[0,180,200,60],
76 | checkViewConstraints:[-108,180,10,10],
77 | unAgreePrivacyCallBack:true,
78 |
79 | privacyOne: ['隐私条款一', 'https://www.jiguang.cn/about'], //隐私条款一(显示名称和url,请严格按照格式)
80 | privacyTwo: ['隐私条款二', 'https://www.jiguang.cn/about'], //隐私条款二(显示名称和url,请严格按照格式)
81 | privacyColor: [-16777216, -65536], //隐私条款颜色 (显示名称和url的颜色,请严格按照格式)
82 | privacyText: ['登录即同意', '和', '、', '并使用本机号码登录'], //隐私条款名称外的文字
83 | privacyTextSize: 15, //隐私条款文字字体大小
84 | privacyTextGravityMode: 'left', //隐私条款文本对齐方式,目前仅支持 left、center
85 | privacyBookSymbolEnable: false, //隐私条款是否显示书名号,默认不显示
86 |
87 | }
88 | const customUIWithConfigAndroid = {
89 | backgroundImage: '', //背景图
90 |
91 | statusBarHidden: false, //状态栏是否隐藏
92 | statusBarMode: 'light', //状态栏模式 light,dark
93 |
94 | navHidden: false, //导航栏是否隐藏
95 | navColor: -16777216, //导航栏颜色
96 |
97 | navTitle: 'RN-JVerification', //导航栏标题
98 | navTitleSize: 16, //导航栏标题文字字体大小(单位:sp)
99 | navTitleColor: -1, //导航栏标题文字颜色
100 |
101 | navReturnHidden: false, //导航栏返回按钮是否隐藏
102 | navReturnImage: 'close', //导航栏左侧返回按钮图标
103 | //为保障显示效果,请同时设置x,y,w,h
104 | navReturnX: 5, //导航栏左侧返回按钮图标距屏幕上端偏移(仅Android)
105 | navReturnY: 5, //导航栏左侧返回按钮图标距屏幕左侧偏移(仅Android)
106 | navReturnW: 25, //导航栏左侧返回按钮图标宽度(仅Android)
107 | navReturnH: 25, //导航栏左侧返回按钮图标高度(仅Android)
108 |
109 | logoHidden: false, //logo是否隐藏
110 | logoImage: 'umcsdk_mobile_logo', //logo(android默认为应用图标;)
111 | //为保障显示效果,请同时设置x,y,w,h
112 | // logoX: 50, //logo相对于屏幕左边x轴偏移
113 | // logoY: 50, //logo相对于标题栏下边缘y偏移
114 | // logoW: 100, //logo宽
115 | // logoH: 100, //logo高
116 |
117 | numberSize: 16, //手机号码字体大小(单位:sp)
118 | numberColor: -16777216, //手机号码字体颜色
119 | //为保障显示效果,请同时设置x,y,w,h
120 | // numberX: 50, //号码栏相对于屏幕左边x轴偏移
121 | // numberY: 100, //号码栏相对于标题栏下边缘y偏移
122 | // numberW: 250, //号码栏宽度
123 | // numberH: 25, //号码栏高度
124 |
125 | sloganHidden: false, //slogan是否隐藏
126 | sloganTextSize: 16, //slogan字体大小
127 | sloganTextColor: -16777216, //slogan文字颜色
128 |
129 | //为保障显示效果,请同时设置x,y,w,h
130 | // sloganX: 50, //slogan相对于屏幕左边x轴偏移
131 | // sloganY: 150, //slogan相对于标题栏下边缘y偏移
132 |
133 | loginBtnText: '登录按钮', //登录按钮文字
134 | loginBtnTextSize: 16, //登录按钮字体大小
135 | loginBtnTextColor: -16777216, //登录按钮文字颜色
136 |
137 | loginBtnImage: 'login_btn_selector', //登录按钮selector选择样式 (仅android)
138 | loginBtnNormalImage: 'loginBtn_Nor', //登录按钮正常图片 (仅ios,三个同时设置生效)
139 | loginBtnDisabledImage: 'loginBtn_Dis', //登录按钮失效图片 (仅ios,三个同时设置生效)
140 | loginBtnSelectedImage: 'loginBtn_Hig', //登录按钮按下图片 (仅ios,三个同时设置生效)
141 | //为保障显示效果,请同时设置x,y,w,h
142 | // loginBtnX: 50, //登录按钮相对于屏幕左边x轴偏移
143 | // loginBtnY: 200, //登录按钮相对于标题栏下边缘y偏移
144 | // loginBtnW: 250, //登录按钮宽度
145 | // loginBtnH: 40, //登录按钮高度
146 |
147 | privacyOne: ['隐私条款一', 'https://www.jiguang.cn/about'], //隐私条款一(显示名称和url,请严格按照格式)
148 | privacyTwo: ['隐私条款二', 'https://www.jiguang.cn/about'], //隐私条款二(显示名称和url,请严格按照格式)
149 | privacyColor: [-16777216, -65536], //隐私条款颜色 (显示名称和url的颜色,请严格按照格式)
150 | privacyText: ['登录即同意11111', '和', '、', '并使用本机号码登录'], //隐私条款名称外的文字
151 | privacyTextSize: 15, //隐私条款文字字体大小
152 | privacyTextGravityMode: 'left', //隐私条款文本对齐方式,目前仅支持 left、center
153 | privacyBookSymbolEnable: false, //隐私条款是否显示书名号,默认不显示
154 | //为保障显示效果,请同时设置x,y,w,h
155 | // privacyX:50, //隐私条款相对于屏幕左边x轴偏移
156 | // privacyY:20, //隐私条款相对于授权页面底部下边缘y偏移
157 | // privacyW:200, //隐私条款宽度
158 | // privacyH:100, //隐私条款高度
159 |
160 | privacyCheckboxHidden: false, //checkBox是否隐藏,默认不隐藏
161 | privacyCheckEnable: false, //checkBox默认状态 默认:NO
162 | privacyCheckedImage: 'checkbox_selected', //checkBox选中时图片
163 | privacyUncheckedImage: 'checkbox_unSelected', //checkBox未选中时图片
164 | privacyCheckboxSize:10, //设置隐私条款checkbox尺寸 默认是10
165 | unAgreePrivacyHintToast: true,
166 |
167 | privacyWebNavColor: -16777216, //协议页导航栏背景颜色
168 | privacyWebNavTitle: '服务条款', //协议页导航栏标题(仅iOS)
169 | privacyWebNavTitleSize: 16, //协议页导航栏标题字体大小
170 | privacyWebNavTitleColor: -1, //协议页导航栏标题字体颜色
171 | privacyWebNavReturnImage: 'close', //协议页导航栏返回按钮图片
172 | };
173 |
174 | const customViewParams = [
175 | {customViewName: 'customView1', customViewPoint: [20, 200, 150, 30]},
176 | {customViewName: 'customView2', customViewPoint: [20, 300, 150, 30]},
177 | {customViewName: 'customView3', customViewPoint: [20, 400, 150, 30]},
178 | ];
179 |
180 | const codeConfig = {
181 | phoneNumber : "18925241111", //在此替换你的phoneNumber
182 | signID : "1", //在此替换你的signID
183 | templateID : "1" //在此替换你的templateID
184 | };
185 | //安卓授权页弹窗模式
186 | const androidDialogConfig = {
187 | privacyNeedClose:true, //弹窗是否需要关闭按钮
188 | privacyCloseTheme:[10, 60, 0, 0], //弹窗关闭按钮偏移量 privacyNeedClose为true时,必须设置它的偏移量
189 | privacyDialogTheme: [300, 400, 0, 0, false], //授权页弹窗模式
190 | privacyNeedStartAnim: true, //设置拉起授权页时是否需要显示默认动画 默认展示
191 | privacyNeedCloseAnim: true, //设置关闭授权页时是否需要显示默认动画 默认展示
192 | navColor:0xff000000,
193 | loginBtnText:" 极光认证测试 ",
194 | privacyCheckEnable:false,
195 | privacyColor:[0xff00f000,0xff000000],
196 | loginBtnWidth:40,
197 | privacyOne: ['隐私条款一', 'https://www.jiguang.cn/about'], //隐私条款一(显示名称和url,请严格按照格式)
198 | privacyColor: [-16777216, -65536], //隐私条款颜色 (显示名称和url的颜色,请严格按照格式)
199 | privacyText: ['登录即同意', '和', '、', '并使用本机号码登录'], //隐私条款名称外的文字
200 | privacyTextSize: 12,
201 | }
202 | //ios授权页弹窗模式
203 | const iosDialogConfig = {
204 | navHidden:true, //导航栏是否隐藏
205 | logoImage: 'umcsdk_mobile_logo', //logo(android默认为应用图标;ios默认无)
206 | logoConstraints:[0,-100,60,60], //LOGO图片布局对象
207 | logoHidden: false, //logo是否隐藏
208 | numberConstraints:[0,-42,200,14], //号码栏布局对象
209 | sloganConstraints:[0,-20,200,14], //slogan布局对象
210 | logBtnConstraints:[0,20,220,40],
211 | loginBtnText: '登录按钮', //登录按钮文字
212 | loginBtnTextSize: 16, //登录按钮字体大小
213 | loginBtnTextColor: -16777216, //登录按钮文字颜色
214 | privacyConstraints:[0,100,200,60], //隐私条款布局对象
215 | checkViewConstraints:[-108,100,10,10], //checkBox布局对象
216 |
217 | loadingConstraints:[0,0,20,20],
218 | showWindow:true, // 是否弹窗,默认no
219 | //windowBackgroundImage:"bg", // 弹框内部背景图片
220 | windowBackgroundAlpha: 0.3, //弹窗外侧 透明度 0~1.0
221 | windowCornerRadius:10, //弹窗圆角数值
222 | windowConstraints:[0,0,300,300], //弹窗布局对象
223 | windowCloseBtnImgs:["windowClose","windowClose"],//弹窗close按钮图片 @[普通状态图片,高亮状态图片]
224 | windowCloseBtnConstraints:[-135,-135,20,20],//弹窗close按钮布局,
225 | }
226 |
227 | export default class App extends React.Component {
228 |
229 | createAlert = (title) =>
230 | Alert.alert(
231 | "提示",
232 | title,
233 | [
234 | { text: "OK", onPress: () => console.log("OK Pressed") }
235 | ]
236 | );
237 |
238 | constructor(props) {
239 | super(props);
240 | }
241 |
242 | componentDidMount() {
243 | JVerification.setLoggerEnable(true);
244 | this.LoginListener = result => {
245 | console.log('LoginListener:' + JSON.stringify(result));
246 | };
247 | JVerification.addLoginEventListener(this.LoginListener);
248 | if(Platform.OS == 'ios'){
249 | this.UnCheckboxEvent = result => {
250 | console.log('UnCheckboxEvent:未选中隐私协议框');
251 | this.createAlert('Listener:未选中隐私协议框' );
252 | }
253 | JVerification.addUncheckBoxEventListener(this.UnCheckboxEvent);
254 | }
255 | }
256 |
257 | render() {
258 | return (
259 |
260 |
261 |
321 | );
322 | }
323 | }
324 |
--------------------------------------------------------------------------------
/example/CustomView1.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import {StyleSheet, Text, View,Alert,Image, TouchableHighlight} from 'react-native';
3 | import JVerification from 'jverification-react-native';
4 |
5 | export default class CustomView1 extends React.Component {
6 | createAlert = (title) =>
7 | Alert.alert(
8 | "提示",
9 | title,
10 | [
11 | { text: "OK", onPress: () => console.log("OK Pressed") }
12 | ]
13 | );
14 |
15 |
16 |
17 | render() {
18 |
19 | return (
20 |
21 | {
22 | // this.createAlert("CustomView1 onClicked")
23 | JVerification.dismissLoginPage()
24 | }}>
25 |
29 |
30 |
31 | );
32 | // return (
33 | //
34 | //
36 | // this.createAlert("CustomView1 onClicked")
37 | // }/>
38 | //
39 | // );
40 | }
41 | }
42 |
43 |
44 |
45 | const styles = StyleSheet.create({
46 | container: {
47 | width: 150,
48 | height: 30,
49 | justifyContent: 'center',
50 | alignItems: 'center',
51 | backgroundColor: '#6FC6FC',
52 | }
53 | });
54 |
55 | class Button extends React.Component {
56 | render() {
57 | return
61 |
62 |
63 | {this.props.title}
64 |
65 |
66 |
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/example/CustomView2.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import {StyleSheet, Text, View, TouchableHighlight} from 'react-native';
3 |
4 | export default class CustomView2 extends React.Component {
5 | render() {
6 | return (
7 |
8 |
10 | console.log("CustomView2 onClicked")
11 | }/>
12 |
13 | );
14 | }
15 | }
16 |
17 | const styles = StyleSheet.create({
18 | container: {
19 | width: 150,
20 | height: 30,
21 | justifyContent: 'center',
22 | alignItems: 'center',
23 | backgroundColor: '#6FC6FC',
24 | }
25 | });
26 |
27 | class Button extends React.Component {
28 | render() {
29 | return
33 |
34 |
35 | {this.props.title}
36 |
37 |
38 |
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/example/CustomView3.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import {StyleSheet, Text, View, TouchableHighlight} from 'react-native';
3 |
4 | export default class CustomView3 extends React.Component {
5 | render() {
6 | return (
7 |
8 |
10 | console.log("CustomView3 onClicked")
11 | }/>
12 |
13 | );
14 | }
15 | }
16 |
17 | const styles = StyleSheet.create({
18 | container: {
19 | width: 150,
20 | height: 30,
21 | justifyContent: 'center',
22 | alignItems: 'center',
23 | backgroundColor: '#6FC6FC',
24 | }
25 | });
26 |
27 | class Button extends React.Component {
28 | render() {
29 | return
33 |
34 |
35 | {this.props.title}
36 |
37 |
38 |
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/example/__tests__/App-test.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @format
3 | */
4 |
5 | import 'react-native';
6 | import React from 'react';
7 | import App from '../App';
8 |
9 | // Note: test renderer must be required after react-native.
10 | import renderer from 'react-test-renderer';
11 |
12 | it('renders correctly', () => {
13 | renderer.create();
14 | });
15 |
--------------------------------------------------------------------------------
/example/android/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: "com.android.application"
2 |
3 | import com.android.build.OutputFile
4 |
5 | project.ext.react = [
6 | entryFile: "index.js",
7 | enableHermes: false, // clean and rebuild if changing
8 | ]
9 |
10 | apply from: "../../node_modules/react-native/react.gradle"
11 |
12 | def enableSeparateBuildPerCPUArchitecture = false
13 |
14 | def jscFlavor = 'org.webkit:android-jsc:+'
15 |
16 | def enableHermes = project.ext.react.get("enableHermes", false);
17 |
18 | android {
19 | compileSdkVersion rootProject.ext.compileSdkVersion
20 |
21 | compileOptions {
22 | sourceCompatibility JavaVersion.VERSION_1_8
23 | targetCompatibility JavaVersion.VERSION_1_8
24 | }
25 |
26 | signingConfigs {
27 | debug {
28 | storeFile file("./debug.keystore")
29 | }
30 | }
31 |
32 | defaultConfig {
33 | applicationId "com.HBuilder.integrate" //在此替换你的包名
34 | minSdkVersion rootProject.ext.minSdkVersion
35 | targetSdkVersion rootProject.ext.targetSdkVersion
36 | versionCode 1
37 | versionName "1.0"
38 | manifestPlaceholders = [
39 | JPUSH_APPKEY: "9c0aa59694d967b7f9df7f3c", //在此替换你的APPKey
40 | JPUSH_CHANNEL: "default" //在此替换你的channel
41 | ]
42 | }
43 | splits {
44 | abi {
45 | reset()
46 | enable enableSeparateBuildPerCPUArchitecture
47 | universalApk false // If true, also generate a universal APK
48 | include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
49 | }
50 | }
51 | // applicationVariants are e.g. debug, release
52 | applicationVariants.all { variant ->
53 | variant.outputs.each { output ->
54 | // For each separate APK per architecture, set a unique version code as described here:
55 | // https://developer.android.com/studio/build/configure-apk-splits.html
56 | def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
57 | def abi = output.getFilter(OutputFile.ABI)
58 | if (abi != null) { // null for the universal-debug, universal-release variants
59 | output.versionCodeOverride =
60 | versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
61 | }
62 | }
63 | }
64 |
65 | packagingOptions {
66 | pickFirst '**/armeabi-v7a/libc++_shared.so'
67 | pickFirst '**/x86/libc++_shared.so'
68 | pickFirst '**/arm64-v8a/libc++_shared.so'
69 | pickFirst '**/x86_64/libc++_shared.so'
70 | pickFirst '**/x86/libjsc.so'
71 | pickFirst '**/armeabi-v7a/libjsc.so'
72 | }
73 | }
74 |
75 | dependencies {
76 | implementation fileTree(dir: "libs", include: ["*.jar"])
77 | implementation "com.facebook.react:react-native:+" // From node_modules
78 | implementation project(':jcore-react-native') // 添加 jcore 依赖
79 | implementation project(':jverification-react-native') // 添加 jverification 依赖
80 | if (enableHermes) {
81 | def hermesPath = "../../node_modules/hermesvm/android/";
82 | debugImplementation files(hermesPath + "hermes-debug.aar")
83 | releaseImplementation files(hermesPath + "hermes-release.aar")
84 | } else {
85 | implementation jscFlavor
86 | }
87 | }
88 |
89 | // Run this once to be able to run the application with BUCK
90 | // puts all compile dependencies into folder libs for BUCK to use
91 | task copyDownloadableDepsToLibs(type: Copy) {
92 | from configurations.compile
93 | into 'libs'
94 | }
95 |
96 | apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
97 |
--------------------------------------------------------------------------------
/example/android/app/debug.keystore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/android/app/debug.keystore
--------------------------------------------------------------------------------
/example/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
14 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
30 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/example/android/app/src/main/java/com/example/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.example;
2 |
3 | import com.facebook.react.ReactActivity;
4 |
5 | public class MainActivity extends ReactActivity {
6 |
7 | /**
8 | * Returns the name of the main component registered from JavaScript.
9 | * This is used to schedule rendering of the component.
10 | */
11 | @Override
12 | protected String getMainComponentName() {
13 | return "example";
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/example/android/app/src/main/java/com/example/MainApplication.java:
--------------------------------------------------------------------------------
1 | package com.example;
2 |
3 | import android.app.Application;
4 |
5 | import com.facebook.react.PackageList;
6 | import com.facebook.react.ReactApplication;
7 | import com.facebook.react.ReactNativeHost;
8 | import com.facebook.react.ReactPackage;
9 | import com.facebook.soloader.SoLoader;
10 |
11 | import java.util.List;
12 |
13 | public class MainApplication extends Application implements ReactApplication {
14 |
15 | private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
16 | @Override
17 | public boolean getUseDeveloperSupport() {
18 | return BuildConfig.DEBUG;
19 | }
20 |
21 | @Override
22 | protected List getPackages() {
23 | @SuppressWarnings("UnnecessaryLocalVariable")
24 | List packages = new PackageList(this).getPackages();
25 | //RN0.60以下需要打开,注意导包JVerificationPackage
26 | //packages.add(new JVerificationPackage());
27 | return packages;
28 | }
29 |
30 | @Override
31 | protected String getJSMainModuleName() {
32 | return "index";
33 | }
34 | };
35 |
36 | @Override
37 | public ReactNativeHost getReactNativeHost() {
38 | return mReactNativeHost;
39 | }
40 |
41 | @Override
42 | public void onCreate() {
43 | super.onCreate();
44 | SoLoader.init(this, /* native exopackage */ false);
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable/checkbox_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/android/app/src/main/res/drawable/checkbox_selected.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable/checkbox_unselected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/android/app/src/main/res/drawable/checkbox_unselected.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable/close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/android/app/src/main/res/drawable/close.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable/login_btn_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/android/app/src/main/res/drawable/login_btn_normal.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable/login_btn_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/android/app/src/main/res/drawable/login_btn_press.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable/login_btn_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable/login_btn_unable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/android/app/src/main/res/drawable/login_btn_unable.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable/umcsdk_mobile_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/android/app/src/main/res/drawable/umcsdk_mobile_logo.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | example
3 |
4 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/xml/network_security_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/android/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | ext {
5 | buildToolsVersion = "28.0.3"
6 | minSdkVersion = 16
7 | compileSdkVersion = 28
8 | targetSdkVersion = 28
9 | supportLibVersion = "28.0.0"
10 | }
11 | repositories {
12 | google()
13 | jcenter()
14 | }
15 | dependencies {
16 | classpath("com.android.tools.build:gradle:3.4.1")
17 |
18 | // NOTE: Do not place your application dependencies here; they belong
19 | // in the individual module build.gradle files
20 | }
21 | }
22 |
23 | allprojects {
24 | repositories {
25 | mavenLocal()
26 | maven {
27 | // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
28 | url("$rootDir/../node_modules/react-native/android")
29 | }
30 | maven {
31 | // Android JSC is installed from npm
32 | url("$rootDir/../node_modules/jsc-android/dist")
33 | }
34 |
35 | google()
36 | jcenter()
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/example/android/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
19 |
20 | android.useAndroidX=true
21 | android.enableJetifier=true
22 |
--------------------------------------------------------------------------------
/example/android/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/android/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/example/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 |
--------------------------------------------------------------------------------
/example/android/gradlew:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | #
4 | # Copyright 2015 the original author or authors.
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # http://www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | #
18 |
19 | ##############################################################################
20 | ##
21 | ## Gradle start up script for UN*X
22 | ##
23 | ##############################################################################
24 |
25 | # Attempt to set APP_HOME
26 | # Resolve links: $0 may be a link
27 | PRG="$0"
28 | # Need this for relative symlinks.
29 | while [ -h "$PRG" ] ; do
30 | ls=`ls -ld "$PRG"`
31 | link=`expr "$ls" : '.*-> \(.*\)$'`
32 | if expr "$link" : '/.*' > /dev/null; then
33 | PRG="$link"
34 | else
35 | PRG=`dirname "$PRG"`"/$link"
36 | fi
37 | done
38 | SAVED="`pwd`"
39 | cd "`dirname \"$PRG\"`/" >/dev/null
40 | APP_HOME="`pwd -P`"
41 | cd "$SAVED" >/dev/null
42 |
43 | APP_NAME="Gradle"
44 | APP_BASE_NAME=`basename "$0"`
45 |
46 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
47 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
48 |
49 | # Use the maximum available, or set MAX_FD != -1 to use that value.
50 | MAX_FD="maximum"
51 |
52 | warn () {
53 | echo "$*"
54 | }
55 |
56 | die () {
57 | echo
58 | echo "$*"
59 | echo
60 | exit 1
61 | }
62 |
63 | # OS specific support (must be 'true' or 'false').
64 | cygwin=false
65 | msys=false
66 | darwin=false
67 | nonstop=false
68 | case "`uname`" in
69 | CYGWIN* )
70 | cygwin=true
71 | ;;
72 | Darwin* )
73 | darwin=true
74 | ;;
75 | MINGW* )
76 | msys=true
77 | ;;
78 | NONSTOP* )
79 | nonstop=true
80 | ;;
81 | esac
82 |
83 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
84 |
85 | # Determine the Java command to use to start the JVM.
86 | if [ -n "$JAVA_HOME" ] ; then
87 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
88 | # IBM's JDK on AIX uses strange locations for the executables
89 | JAVACMD="$JAVA_HOME/jre/sh/java"
90 | else
91 | JAVACMD="$JAVA_HOME/bin/java"
92 | fi
93 | if [ ! -x "$JAVACMD" ] ; then
94 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
95 |
96 | Please set the JAVA_HOME variable in your environment to match the
97 | location of your Java installation."
98 | fi
99 | else
100 | JAVACMD="java"
101 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
102 |
103 | Please set the JAVA_HOME variable in your environment to match the
104 | location of your Java installation."
105 | fi
106 |
107 | # Increase the maximum file descriptors if we can.
108 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
109 | MAX_FD_LIMIT=`ulimit -H -n`
110 | if [ $? -eq 0 ] ; then
111 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
112 | MAX_FD="$MAX_FD_LIMIT"
113 | fi
114 | ulimit -n $MAX_FD
115 | if [ $? -ne 0 ] ; then
116 | warn "Could not set maximum file descriptor limit: $MAX_FD"
117 | fi
118 | else
119 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
120 | fi
121 | fi
122 |
123 | # For Darwin, add options to specify how the application appears in the dock
124 | if $darwin; then
125 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
126 | fi
127 |
128 | # For Cygwin, switch paths to Windows format before running java
129 | if $cygwin ; then
130 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
131 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
132 | JAVACMD=`cygpath --unix "$JAVACMD"`
133 |
134 | # We build the pattern for arguments to be converted via cygpath
135 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
136 | SEP=""
137 | for dir in $ROOTDIRSRAW ; do
138 | ROOTDIRS="$ROOTDIRS$SEP$dir"
139 | SEP="|"
140 | done
141 | OURCYGPATTERN="(^($ROOTDIRS))"
142 | # Add a user-defined pattern to the cygpath arguments
143 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
144 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
145 | fi
146 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
147 | i=0
148 | for arg in "$@" ; do
149 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
150 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
151 |
152 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
153 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
154 | else
155 | eval `echo args$i`="\"$arg\""
156 | fi
157 | i=$((i+1))
158 | done
159 | case $i in
160 | (0) set -- ;;
161 | (1) set -- "$args0" ;;
162 | (2) set -- "$args0" "$args1" ;;
163 | (3) set -- "$args0" "$args1" "$args2" ;;
164 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
165 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
166 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
167 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
168 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
169 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
170 | esac
171 | fi
172 |
173 | # Escape application args
174 | save () {
175 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
176 | echo " "
177 | }
178 | APP_ARGS=$(save "$@")
179 |
180 | # Collect all arguments for the java command, following the shell quoting and substitution rules
181 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
182 |
183 | # by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
184 | if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
185 | cd "$(dirname "$0")"
186 | fi
187 |
188 | exec "$JAVACMD" "$@"
189 |
--------------------------------------------------------------------------------
/example/android/gradlew.bat:
--------------------------------------------------------------------------------
1 | @rem
2 | @rem Copyright 2015 the original author or authors.
3 | @rem
4 | @rem Licensed under the Apache License, Version 2.0 (the "License");
5 | @rem you may not use this file except in compliance with the License.
6 | @rem You may obtain a copy of the License at
7 | @rem
8 | @rem http://www.apache.org/licenses/LICENSE-2.0
9 | @rem
10 | @rem Unless required by applicable law or agreed to in writing, software
11 | @rem distributed under the License is distributed on an "AS IS" BASIS,
12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | @rem See the License for the specific language governing permissions and
14 | @rem limitations under the License.
15 | @rem
16 |
17 | @if "%DEBUG%" == "" @echo off
18 | @rem ##########################################################################
19 | @rem
20 | @rem Gradle startup script for Windows
21 | @rem
22 | @rem ##########################################################################
23 |
24 | @rem Set local scope for the variables with windows NT shell
25 | if "%OS%"=="Windows_NT" setlocal
26 |
27 | set DIRNAME=%~dp0
28 | if "%DIRNAME%" == "" set DIRNAME=.
29 | set APP_BASE_NAME=%~n0
30 | set APP_HOME=%DIRNAME%
31 |
32 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
33 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
34 |
35 | @rem Find java.exe
36 | if defined JAVA_HOME goto findJavaFromJavaHome
37 |
38 | set JAVA_EXE=java.exe
39 | %JAVA_EXE% -version >NUL 2>&1
40 | if "%ERRORLEVEL%" == "0" goto init
41 |
42 | echo.
43 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
44 | echo.
45 | echo Please set the JAVA_HOME variable in your environment to match the
46 | echo location of your Java installation.
47 |
48 | goto fail
49 |
50 | :findJavaFromJavaHome
51 | set JAVA_HOME=%JAVA_HOME:"=%
52 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
53 |
54 | if exist "%JAVA_EXE%" goto init
55 |
56 | echo.
57 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
58 | echo.
59 | echo Please set the JAVA_HOME variable in your environment to match the
60 | echo location of your Java installation.
61 |
62 | goto fail
63 |
64 | :init
65 | @rem Get command-line arguments, handling Windows variants
66 |
67 | if not "%OS%" == "Windows_NT" goto win9xME_args
68 |
69 | :win9xME_args
70 | @rem Slurp the command line arguments.
71 | set CMD_LINE_ARGS=
72 | set _SKIP=2
73 |
74 | :win9xME_args_slurp
75 | if "x%~1" == "x" goto execute
76 |
77 | set CMD_LINE_ARGS=%*
78 |
79 | :execute
80 | @rem Setup the command line
81 |
82 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
83 |
84 | @rem Execute Gradle
85 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
86 |
87 | :end
88 | @rem End local scope for the variables with windows NT shell
89 | if "%ERRORLEVEL%"=="0" goto mainEnd
90 |
91 | :fail
92 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
93 | rem the _cmd.exe /c_ return code!
94 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
95 | exit /b 1
96 |
97 | :mainEnd
98 | if "%OS%"=="Windows_NT" endlocal
99 |
100 | :omega
101 |
--------------------------------------------------------------------------------
/example/android/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'example'
2 | apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
3 | include ':app'
4 |
5 | include ':jverification-react-native'
6 | project(':jverification-react-native').projectDir = new File(rootProject.projectDir, '../node_modules/jverification-react-native/android')
7 | include ':jcore-react-native'
8 | project(':jcore-react-native').projectDir = new File(rootProject.projectDir, '../node_modules/jcore-react-native/android')
9 |
--------------------------------------------------------------------------------
/example/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "example",
3 | "displayName": "example"
4 | }
--------------------------------------------------------------------------------
/example/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: ['module:metro-react-native-babel-preset'],
3 | };
4 |
--------------------------------------------------------------------------------
/example/img/my_icon.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/img/my_icon.jpg
--------------------------------------------------------------------------------
/example/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @format
3 | */
4 | import {AppRegistry} from 'react-native';
5 | import App from './App';
6 | import CustomView1 from './CustomView1';
7 | import CustomView2 from './CustomView2';
8 | import CustomView3 from './CustomView3';
9 |
10 | AppRegistry.registerComponent('example', () => App);
11 | AppRegistry.registerComponent('customView1', () => CustomView1);
12 | AppRegistry.registerComponent('customView2', () => CustomView2);
13 | AppRegistry.registerComponent('customView3', () => CustomView3);
14 |
--------------------------------------------------------------------------------
/example/ios/JVerificationResource.bundle/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/ios/JVerificationResource.bundle/bg.png
--------------------------------------------------------------------------------
/example/ios/JVerificationResource.bundle/checkBox_selected@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/ios/JVerificationResource.bundle/checkBox_selected@2x.png
--------------------------------------------------------------------------------
/example/ios/JVerificationResource.bundle/checkBox_selected@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/ios/JVerificationResource.bundle/checkBox_selected@3x.png
--------------------------------------------------------------------------------
/example/ios/JVerificationResource.bundle/checkBox_unSelected@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/ios/JVerificationResource.bundle/checkBox_unSelected@2x.png
--------------------------------------------------------------------------------
/example/ios/JVerificationResource.bundle/checkBox_unSelected@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/ios/JVerificationResource.bundle/checkBox_unSelected@3x.png
--------------------------------------------------------------------------------
/example/ios/JVerificationResource.bundle/close@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/ios/JVerificationResource.bundle/close@2x.png
--------------------------------------------------------------------------------
/example/ios/JVerificationResource.bundle/close@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/ios/JVerificationResource.bundle/close@3x.png
--------------------------------------------------------------------------------
/example/ios/JVerificationResource.bundle/loginBtn_Dis@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/ios/JVerificationResource.bundle/loginBtn_Dis@2x.png
--------------------------------------------------------------------------------
/example/ios/JVerificationResource.bundle/loginBtn_Dis@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/ios/JVerificationResource.bundle/loginBtn_Dis@3x.png
--------------------------------------------------------------------------------
/example/ios/JVerificationResource.bundle/loginBtn_Hig@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/ios/JVerificationResource.bundle/loginBtn_Hig@2x.png
--------------------------------------------------------------------------------
/example/ios/JVerificationResource.bundle/loginBtn_Hig@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/ios/JVerificationResource.bundle/loginBtn_Hig@3x.png
--------------------------------------------------------------------------------
/example/ios/JVerificationResource.bundle/loginBtn_Nor@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/ios/JVerificationResource.bundle/loginBtn_Nor@2x.png
--------------------------------------------------------------------------------
/example/ios/JVerificationResource.bundle/loginBtn_Nor@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/ios/JVerificationResource.bundle/loginBtn_Nor@3x.png
--------------------------------------------------------------------------------
/example/ios/JVerificationResource.bundle/umcsdk_mobile_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/ios/JVerificationResource.bundle/umcsdk_mobile_logo.png
--------------------------------------------------------------------------------
/example/ios/JVerificationResource.bundle/windowClose.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/example/ios/JVerificationResource.bundle/windowClose.png
--------------------------------------------------------------------------------
/example/ios/Podfile:
--------------------------------------------------------------------------------
1 |
2 | require_relative '../node_modules/react-native/scripts/react_native_pods'
3 | require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
4 |
5 | platform :ios, '10.0'
6 |
7 | target 'example' do
8 | config = use_native_modules!
9 |
10 | use_react_native!(:path => config["reactNativePath"])
11 | pod 'jverification-react-native', :path => '../../'
12 |
13 |
14 | # Enables Flipper.
15 | #
16 | # Note that if you have use_frameworks! enabled, Flipper will not work and
17 | # you should disable these next few lines.
18 | # use_flipper!
19 | # post_install do |installer|
20 | # flipper_post_install(installer)
21 | # end
22 | end
23 |
24 |
25 |
--------------------------------------------------------------------------------
/example/ios/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - boost-for-react-native (1.63.0)
3 | - DoubleConversion (1.1.6)
4 | - FBLazyVector (0.63.4)
5 | - FBReactNativeSpec (0.63.4):
6 | - Folly (= 2020.01.13.00)
7 | - RCTRequired (= 0.63.4)
8 | - RCTTypeSafety (= 0.63.4)
9 | - React-Core (= 0.63.4)
10 | - React-jsi (= 0.63.4)
11 | - ReactCommon/turbomodule/core (= 0.63.4)
12 | - Folly (2020.01.13.00):
13 | - boost-for-react-native
14 | - DoubleConversion
15 | - Folly/Default (= 2020.01.13.00)
16 | - glog
17 | - Folly/Default (2020.01.13.00):
18 | - boost-for-react-native
19 | - DoubleConversion
20 | - glog
21 | - glog (0.3.5)
22 | - JCore (1.7.0):
23 | - React
24 | - jverification-react-native (2.4.4):
25 | - React
26 | - RCTRequired (0.63.4)
27 | - RCTTypeSafety (0.63.4):
28 | - FBLazyVector (= 0.63.4)
29 | - Folly (= 2020.01.13.00)
30 | - RCTRequired (= 0.63.4)
31 | - React-Core (= 0.63.4)
32 | - React (0.63.4):
33 | - React-Core (= 0.63.4)
34 | - React-Core/DevSupport (= 0.63.4)
35 | - React-Core/RCTWebSocket (= 0.63.4)
36 | - React-RCTActionSheet (= 0.63.4)
37 | - React-RCTAnimation (= 0.63.4)
38 | - React-RCTBlob (= 0.63.4)
39 | - React-RCTImage (= 0.63.4)
40 | - React-RCTLinking (= 0.63.4)
41 | - React-RCTNetwork (= 0.63.4)
42 | - React-RCTSettings (= 0.63.4)
43 | - React-RCTText (= 0.63.4)
44 | - React-RCTVibration (= 0.63.4)
45 | - React-callinvoker (0.63.4)
46 | - React-Core (0.63.4):
47 | - Folly (= 2020.01.13.00)
48 | - glog
49 | - React-Core/Default (= 0.63.4)
50 | - React-cxxreact (= 0.63.4)
51 | - React-jsi (= 0.63.4)
52 | - React-jsiexecutor (= 0.63.4)
53 | - Yoga
54 | - React-Core/CoreModulesHeaders (0.63.4):
55 | - Folly (= 2020.01.13.00)
56 | - glog
57 | - React-Core/Default
58 | - React-cxxreact (= 0.63.4)
59 | - React-jsi (= 0.63.4)
60 | - React-jsiexecutor (= 0.63.4)
61 | - Yoga
62 | - React-Core/Default (0.63.4):
63 | - Folly (= 2020.01.13.00)
64 | - glog
65 | - React-cxxreact (= 0.63.4)
66 | - React-jsi (= 0.63.4)
67 | - React-jsiexecutor (= 0.63.4)
68 | - Yoga
69 | - React-Core/DevSupport (0.63.4):
70 | - Folly (= 2020.01.13.00)
71 | - glog
72 | - React-Core/Default (= 0.63.4)
73 | - React-Core/RCTWebSocket (= 0.63.4)
74 | - React-cxxreact (= 0.63.4)
75 | - React-jsi (= 0.63.4)
76 | - React-jsiexecutor (= 0.63.4)
77 | - React-jsinspector (= 0.63.4)
78 | - Yoga
79 | - React-Core/RCTActionSheetHeaders (0.63.4):
80 | - Folly (= 2020.01.13.00)
81 | - glog
82 | - React-Core/Default
83 | - React-cxxreact (= 0.63.4)
84 | - React-jsi (= 0.63.4)
85 | - React-jsiexecutor (= 0.63.4)
86 | - Yoga
87 | - React-Core/RCTAnimationHeaders (0.63.4):
88 | - Folly (= 2020.01.13.00)
89 | - glog
90 | - React-Core/Default
91 | - React-cxxreact (= 0.63.4)
92 | - React-jsi (= 0.63.4)
93 | - React-jsiexecutor (= 0.63.4)
94 | - Yoga
95 | - React-Core/RCTBlobHeaders (0.63.4):
96 | - Folly (= 2020.01.13.00)
97 | - glog
98 | - React-Core/Default
99 | - React-cxxreact (= 0.63.4)
100 | - React-jsi (= 0.63.4)
101 | - React-jsiexecutor (= 0.63.4)
102 | - Yoga
103 | - React-Core/RCTImageHeaders (0.63.4):
104 | - Folly (= 2020.01.13.00)
105 | - glog
106 | - React-Core/Default
107 | - React-cxxreact (= 0.63.4)
108 | - React-jsi (= 0.63.4)
109 | - React-jsiexecutor (= 0.63.4)
110 | - Yoga
111 | - React-Core/RCTLinkingHeaders (0.63.4):
112 | - Folly (= 2020.01.13.00)
113 | - glog
114 | - React-Core/Default
115 | - React-cxxreact (= 0.63.4)
116 | - React-jsi (= 0.63.4)
117 | - React-jsiexecutor (= 0.63.4)
118 | - Yoga
119 | - React-Core/RCTNetworkHeaders (0.63.4):
120 | - Folly (= 2020.01.13.00)
121 | - glog
122 | - React-Core/Default
123 | - React-cxxreact (= 0.63.4)
124 | - React-jsi (= 0.63.4)
125 | - React-jsiexecutor (= 0.63.4)
126 | - Yoga
127 | - React-Core/RCTSettingsHeaders (0.63.4):
128 | - Folly (= 2020.01.13.00)
129 | - glog
130 | - React-Core/Default
131 | - React-cxxreact (= 0.63.4)
132 | - React-jsi (= 0.63.4)
133 | - React-jsiexecutor (= 0.63.4)
134 | - Yoga
135 | - React-Core/RCTTextHeaders (0.63.4):
136 | - Folly (= 2020.01.13.00)
137 | - glog
138 | - React-Core/Default
139 | - React-cxxreact (= 0.63.4)
140 | - React-jsi (= 0.63.4)
141 | - React-jsiexecutor (= 0.63.4)
142 | - Yoga
143 | - React-Core/RCTVibrationHeaders (0.63.4):
144 | - Folly (= 2020.01.13.00)
145 | - glog
146 | - React-Core/Default
147 | - React-cxxreact (= 0.63.4)
148 | - React-jsi (= 0.63.4)
149 | - React-jsiexecutor (= 0.63.4)
150 | - Yoga
151 | - React-Core/RCTWebSocket (0.63.4):
152 | - Folly (= 2020.01.13.00)
153 | - glog
154 | - React-Core/Default (= 0.63.4)
155 | - React-cxxreact (= 0.63.4)
156 | - React-jsi (= 0.63.4)
157 | - React-jsiexecutor (= 0.63.4)
158 | - Yoga
159 | - React-CoreModules (0.63.4):
160 | - FBReactNativeSpec (= 0.63.4)
161 | - Folly (= 2020.01.13.00)
162 | - RCTTypeSafety (= 0.63.4)
163 | - React-Core/CoreModulesHeaders (= 0.63.4)
164 | - React-jsi (= 0.63.4)
165 | - React-RCTImage (= 0.63.4)
166 | - ReactCommon/turbomodule/core (= 0.63.4)
167 | - React-cxxreact (0.63.4):
168 | - boost-for-react-native (= 1.63.0)
169 | - DoubleConversion
170 | - Folly (= 2020.01.13.00)
171 | - glog
172 | - React-callinvoker (= 0.63.4)
173 | - React-jsinspector (= 0.63.4)
174 | - React-jsi (0.63.4):
175 | - boost-for-react-native (= 1.63.0)
176 | - DoubleConversion
177 | - Folly (= 2020.01.13.00)
178 | - glog
179 | - React-jsi/Default (= 0.63.4)
180 | - React-jsi/Default (0.63.4):
181 | - boost-for-react-native (= 1.63.0)
182 | - DoubleConversion
183 | - Folly (= 2020.01.13.00)
184 | - glog
185 | - React-jsiexecutor (0.63.4):
186 | - DoubleConversion
187 | - Folly (= 2020.01.13.00)
188 | - glog
189 | - React-cxxreact (= 0.63.4)
190 | - React-jsi (= 0.63.4)
191 | - React-jsinspector (0.63.4)
192 | - React-RCTActionSheet (0.63.4):
193 | - React-Core/RCTActionSheetHeaders (= 0.63.4)
194 | - React-RCTAnimation (0.63.4):
195 | - FBReactNativeSpec (= 0.63.4)
196 | - Folly (= 2020.01.13.00)
197 | - RCTTypeSafety (= 0.63.4)
198 | - React-Core/RCTAnimationHeaders (= 0.63.4)
199 | - React-jsi (= 0.63.4)
200 | - ReactCommon/turbomodule/core (= 0.63.4)
201 | - React-RCTBlob (0.63.4):
202 | - FBReactNativeSpec (= 0.63.4)
203 | - Folly (= 2020.01.13.00)
204 | - React-Core/RCTBlobHeaders (= 0.63.4)
205 | - React-Core/RCTWebSocket (= 0.63.4)
206 | - React-jsi (= 0.63.4)
207 | - React-RCTNetwork (= 0.63.4)
208 | - ReactCommon/turbomodule/core (= 0.63.4)
209 | - React-RCTImage (0.63.4):
210 | - FBReactNativeSpec (= 0.63.4)
211 | - Folly (= 2020.01.13.00)
212 | - RCTTypeSafety (= 0.63.4)
213 | - React-Core/RCTImageHeaders (= 0.63.4)
214 | - React-jsi (= 0.63.4)
215 | - React-RCTNetwork (= 0.63.4)
216 | - ReactCommon/turbomodule/core (= 0.63.4)
217 | - React-RCTLinking (0.63.4):
218 | - FBReactNativeSpec (= 0.63.4)
219 | - React-Core/RCTLinkingHeaders (= 0.63.4)
220 | - React-jsi (= 0.63.4)
221 | - ReactCommon/turbomodule/core (= 0.63.4)
222 | - React-RCTNetwork (0.63.4):
223 | - FBReactNativeSpec (= 0.63.4)
224 | - Folly (= 2020.01.13.00)
225 | - RCTTypeSafety (= 0.63.4)
226 | - React-Core/RCTNetworkHeaders (= 0.63.4)
227 | - React-jsi (= 0.63.4)
228 | - ReactCommon/turbomodule/core (= 0.63.4)
229 | - React-RCTSettings (0.63.4):
230 | - FBReactNativeSpec (= 0.63.4)
231 | - Folly (= 2020.01.13.00)
232 | - RCTTypeSafety (= 0.63.4)
233 | - React-Core/RCTSettingsHeaders (= 0.63.4)
234 | - React-jsi (= 0.63.4)
235 | - ReactCommon/turbomodule/core (= 0.63.4)
236 | - React-RCTText (0.63.4):
237 | - React-Core/RCTTextHeaders (= 0.63.4)
238 | - React-RCTVibration (0.63.4):
239 | - FBReactNativeSpec (= 0.63.4)
240 | - Folly (= 2020.01.13.00)
241 | - React-Core/RCTVibrationHeaders (= 0.63.4)
242 | - React-jsi (= 0.63.4)
243 | - ReactCommon/turbomodule/core (= 0.63.4)
244 | - ReactCommon/turbomodule/core (0.63.4):
245 | - DoubleConversion
246 | - Folly (= 2020.01.13.00)
247 | - glog
248 | - React-callinvoker (= 0.63.4)
249 | - React-Core (= 0.63.4)
250 | - React-cxxreact (= 0.63.4)
251 | - React-jsi (= 0.63.4)
252 | - Yoga (1.14.0)
253 |
254 | DEPENDENCIES:
255 | - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
256 | - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
257 | - FBReactNativeSpec (from `../node_modules/react-native/Libraries/FBReactNativeSpec`)
258 | - Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
259 | - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
260 | - JCore (from `../node_modules/jcore-react-native`)
261 | - jverification-react-native (from `../../`)
262 | - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
263 | - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
264 | - React (from `../node_modules/react-native/`)
265 | - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`)
266 | - React-Core (from `../node_modules/react-native/`)
267 | - React-Core/DevSupport (from `../node_modules/react-native/`)
268 | - React-Core/RCTWebSocket (from `../node_modules/react-native/`)
269 | - React-CoreModules (from `../node_modules/react-native/React/CoreModules`)
270 | - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
271 | - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
272 | - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
273 | - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
274 | - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
275 | - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
276 | - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
277 | - React-RCTImage (from `../node_modules/react-native/Libraries/Image`)
278 | - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`)
279 | - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`)
280 | - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
281 | - React-RCTText (from `../node_modules/react-native/Libraries/Text`)
282 | - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
283 | - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
284 | - Yoga (from `../node_modules/react-native/ReactCommon/yoga`)
285 |
286 | SPEC REPOS:
287 | trunk:
288 | - boost-for-react-native
289 |
290 | EXTERNAL SOURCES:
291 | DoubleConversion:
292 | :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
293 | FBLazyVector:
294 | :path: "../node_modules/react-native/Libraries/FBLazyVector"
295 | FBReactNativeSpec:
296 | :path: "../node_modules/react-native/Libraries/FBReactNativeSpec"
297 | Folly:
298 | :podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec"
299 | glog:
300 | :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
301 | JCore:
302 | :path: "../node_modules/jcore-react-native"
303 | jverification-react-native:
304 | :path: "../../"
305 | RCTRequired:
306 | :path: "../node_modules/react-native/Libraries/RCTRequired"
307 | RCTTypeSafety:
308 | :path: "../node_modules/react-native/Libraries/TypeSafety"
309 | React:
310 | :path: "../node_modules/react-native/"
311 | React-callinvoker:
312 | :path: "../node_modules/react-native/ReactCommon/callinvoker"
313 | React-Core:
314 | :path: "../node_modules/react-native/"
315 | React-CoreModules:
316 | :path: "../node_modules/react-native/React/CoreModules"
317 | React-cxxreact:
318 | :path: "../node_modules/react-native/ReactCommon/cxxreact"
319 | React-jsi:
320 | :path: "../node_modules/react-native/ReactCommon/jsi"
321 | React-jsiexecutor:
322 | :path: "../node_modules/react-native/ReactCommon/jsiexecutor"
323 | React-jsinspector:
324 | :path: "../node_modules/react-native/ReactCommon/jsinspector"
325 | React-RCTActionSheet:
326 | :path: "../node_modules/react-native/Libraries/ActionSheetIOS"
327 | React-RCTAnimation:
328 | :path: "../node_modules/react-native/Libraries/NativeAnimation"
329 | React-RCTBlob:
330 | :path: "../node_modules/react-native/Libraries/Blob"
331 | React-RCTImage:
332 | :path: "../node_modules/react-native/Libraries/Image"
333 | React-RCTLinking:
334 | :path: "../node_modules/react-native/Libraries/LinkingIOS"
335 | React-RCTNetwork:
336 | :path: "../node_modules/react-native/Libraries/Network"
337 | React-RCTSettings:
338 | :path: "../node_modules/react-native/Libraries/Settings"
339 | React-RCTText:
340 | :path: "../node_modules/react-native/Libraries/Text"
341 | React-RCTVibration:
342 | :path: "../node_modules/react-native/Libraries/Vibration"
343 | ReactCommon:
344 | :path: "../node_modules/react-native/ReactCommon"
345 | Yoga:
346 | :path: "../node_modules/react-native/ReactCommon/yoga"
347 |
348 | SPEC CHECKSUMS:
349 | boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
350 | DoubleConversion: cde416483dac037923206447da6e1454df403714
351 | FBLazyVector: 3bb422f41b18121b71783a905c10e58606f7dc3e
352 | FBReactNativeSpec: f2c97f2529dd79c083355182cc158c9f98f4bd6e
353 | Folly: b73c3869541e86821df3c387eb0af5f65addfab4
354 | glog: 40a13f7840415b9a77023fbcae0f1e6f43192af3
355 | JCore: 1b194730ed1b97a7b06cab763e6f75a1444a2d04
356 | jverification-react-native: ada55067fd3e3417d78b1f1fc9deb340007b07cd
357 | RCTRequired: 082f10cd3f905d6c124597fd1c14f6f2655ff65e
358 | RCTTypeSafety: 8c9c544ecbf20337d069e4ae7fd9a377aadf504b
359 | React: b0a957a2c44da4113b0c4c9853d8387f8e64e615
360 | React-callinvoker: c3f44dd3cb195b6aa46621fff95ded79d59043fe
361 | React-Core: d3b2a1ac9a2c13c3bcde712d9281fc1c8a5b315b
362 | React-CoreModules: 0581ff36cb797da0943d424f69e7098e43e9be60
363 | React-cxxreact: c1480d4fda5720086c90df537ee7d285d4c57ac3
364 | React-jsi: a0418934cf48f25b485631deb27c64dc40fb4c31
365 | React-jsiexecutor: 93bd528844ad21dc07aab1c67cb10abae6df6949
366 | React-jsinspector: 58aef7155bc9a9683f5b60b35eccea8722a4f53a
367 | React-RCTActionSheet: 89a0ca9f4a06c1f93c26067af074ccdce0f40336
368 | React-RCTAnimation: 1bde3ecc0c104c55df246eda516e0deb03c4e49b
369 | React-RCTBlob: a97d378b527740cc667e03ebfa183a75231ab0f0
370 | React-RCTImage: c1b1f2d3f43a4a528c8946d6092384b5c880d2f0
371 | React-RCTLinking: 35ae4ab9dc0410d1fcbdce4d7623194a27214fb2
372 | React-RCTNetwork: 29ec2696f8d8cfff7331fac83d3e893c95ef43ae
373 | React-RCTSettings: 60f0691bba2074ef394f95d4c2265ec284e0a46a
374 | React-RCTText: 5c51df3f08cb9dedc6e790161195d12bac06101c
375 | React-RCTVibration: ae4f914cfe8de7d4de95ae1ea6cc8f6315d73d9d
376 | ReactCommon: 73d79c7039f473b76db6ff7c6b159c478acbbb3b
377 | Yoga: 4bd86afe9883422a7c4028c00e34790f560923d6
378 |
379 | PODFILE CHECKSUM: 407c78f91174bb42a1b06c7b338f56d56733dff5
380 |
381 | COCOAPODS: 1.10.0
382 |
--------------------------------------------------------------------------------
/example/ios/example.xcodeproj/xcshareddata/xcschemes/example-tvOS.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
29 |
35 |
36 |
37 |
43 |
49 |
50 |
51 |
52 |
53 |
58 |
59 |
61 |
67 |
68 |
69 |
70 |
71 |
77 |
78 |
79 |
80 |
81 |
82 |
92 |
94 |
100 |
101 |
102 |
103 |
104 |
105 |
111 |
113 |
119 |
120 |
121 |
122 |
124 |
125 |
128 |
129 |
130 |
--------------------------------------------------------------------------------
/example/ios/example.xcodeproj/xcshareddata/xcschemes/example.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
29 |
35 |
36 |
37 |
43 |
49 |
50 |
51 |
52 |
53 |
58 |
59 |
61 |
67 |
68 |
69 |
70 |
71 |
77 |
78 |
79 |
80 |
81 |
82 |
92 |
94 |
100 |
101 |
102 |
103 |
104 |
105 |
111 |
113 |
119 |
120 |
121 |
122 |
124 |
125 |
128 |
129 |
130 |
--------------------------------------------------------------------------------
/example/ios/example.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/example/ios/example.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/ios/example/AppDelegate.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Facebook, Inc. and its affiliates.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | #import
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (nonatomic, strong) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/example/ios/example/AppDelegate.m:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Facebook, Inc. and its affiliates.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | #import "AppDelegate.h"
9 |
10 | #import
11 | #import
12 | #import
13 |
14 | @implementation AppDelegate
15 |
16 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
17 | {
18 | RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
19 | RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
20 | moduleName:@"example"
21 | initialProperties:nil];
22 |
23 | rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
24 |
25 | self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
26 | UIViewController *rootViewController = [UIViewController new];
27 | rootViewController.view = rootView;
28 | self.window.rootViewController = rootViewController;
29 | [self.window makeKeyAndVisible];
30 | return YES;
31 | }
32 |
33 | - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
34 | {
35 | #if DEBUG
36 | return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
37 | #else
38 | return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
39 | #endif
40 | }
41 |
42 | @end
43 |
--------------------------------------------------------------------------------
/example/ios/example/Base.lproj/LaunchScreen.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
21 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/example/ios/example/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "20x20",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "20x20",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "29x29",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "29x29",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "40x40",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "40x40",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "iphone",
35 | "size" : "60x60",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "iphone",
40 | "size" : "60x60",
41 | "scale" : "3x"
42 | },
43 | {
44 | "idiom" : "ios-marketing",
45 | "size" : "1024x1024",
46 | "scale" : "1x"
47 | }
48 | ],
49 | "info" : {
50 | "version" : 1,
51 | "author" : "xcode"
52 | }
53 | }
--------------------------------------------------------------------------------
/example/ios/example/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/example/ios/example/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | example
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSRequiresIPhoneOS
26 |
27 | NSAppTransportSecurity
28 |
29 | NSAllowsArbitraryLoads
30 |
31 | NSExceptionDomains
32 |
33 | localhost
34 |
35 | NSExceptionAllowsInsecureHTTPLoads
36 |
37 |
38 |
39 |
40 | NSLocationWhenInUseUsageDescription
41 |
42 | UILaunchStoryboardName
43 | LaunchScreen
44 | UIRequiredDeviceCapabilities
45 |
46 | armv7
47 |
48 | UISupportedInterfaceOrientations
49 |
50 | UIInterfaceOrientationPortrait
51 | UIInterfaceOrientationLandscapeLeft
52 | UIInterfaceOrientationLandscapeRight
53 |
54 | UIViewControllerBasedStatusBarAppearance
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/example/ios/example/main.m:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Facebook, Inc. and its affiliates.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | #import
9 |
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/example/metro.config.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Metro configuration for React Native
3 | * https://github.com/facebook/react-native
4 | *
5 | * @format
6 | */
7 |
8 | module.exports = {
9 | transformer: {
10 | getTransformOptions: async () => ({
11 | transform: {
12 | experimentalImportSupport: false,
13 | inlineRequires: false,
14 | },
15 | }),
16 | },
17 | };
18 |
--------------------------------------------------------------------------------
/example/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "example",
3 | "version": "0.0.1",
4 | "private": true,
5 | "scripts": {
6 | "start": "react-native start",
7 | "test": "jest"
8 | },
9 | "dependencies": {
10 | "jcore-react-native": "^1.7.0",
11 | "react": "16.8.6",
12 | "react-native": "0.63.4",
13 | "jverification-react-native": "2.4.6"
14 | },
15 | "devDependencies": {
16 | "@babel/core": "^7.5.0",
17 | "@babel/runtime": "^7.5.0",
18 | "@react-native-community/eslint-config": "^0.0.3",
19 | "babel-jest": "^24.1.0",
20 | "jest": "^24.1.0",
21 | "metro-react-native-babel-preset": "0.54.1",
22 | "react-test-renderer": "16.8.6"
23 | },
24 | "jest": {
25 | "preset": "react-native"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | import {
2 | DeviceEventEmitter,
3 | NativeModules,
4 | Platform,
5 | } from 'react-native';
6 |
7 | const JVerificationModule = NativeModules.JVerificationModule;
8 |
9 | const listeners = {};
10 | const LoginEvent = 'LoginEvent'; //登录事件
11 | const UnCheckBox = 'UncheckBoxCallBack'; //iOS 未选中隐私协议CheckBox,点击登录按钮的回调事件
12 |
13 | export default class JVerification {
14 |
15 | /*
16 | * 设置调试模式,默认关闭状态
17 | * 该接口需在 init 接口之前调用,避免出现部分日志没打印的情况
18 | * @param enable = boolean
19 | * */
20 | static setLoggerEnable(enable) {
21 | if (Platform.OS == 'android') {
22 | JVerificationModule.setDebugMode(enable);
23 | } else {
24 | JVerificationModule.setDebug(enable);
25 | }
26 | }
27 |
28 | /*
29 | * SDK初始化
30 | * @param params = {'time':int,'appkey':String,'channel':String,'advertisingId':String,'isProduction':boolean}
31 | * @param callback = (result) => {"code":int,'content':String}
32 | *
33 | * time:初始化超时时间,单位毫秒,合法范围是(0,30000],推荐设置为5000-10000,默认值为10000
34 | * appkey:极光系统应用唯一标识,必填 (仅ios)
35 | * channel:应用发布渠道,可选 (仅ios)
36 | * advertisingId:广告标识符,可选 (仅ios)
37 | * isProduction:是否生产环境。如果为开发状态,设置为false;如果为生产状态,应改为true。默认为false,可选 (仅ios)
38 | * */
39 | static init(params, callback) {
40 | if (Platform.OS == 'android') {
41 | JVerificationModule.init(params, callback);
42 | } else {
43 | JVerificationModule.setupWithConfig(params, callback);
44 | }
45 | }
46 |
47 | /*
48 | * 获取sdk初始化是否成功标识
49 | * @param callback = (result) => {"enable":boolean}
50 | * */
51 | static isInitSuccess(callback) {
52 | if (Platform.OS == 'android') {
53 | JVerificationModule.isInitSuccess(callback);
54 | } else {
55 | JVerificationModule.isSetupClient(callback);
56 | }
57 | }
58 |
59 | /*
60 | * SDK判断网络环境是否支持
61 | * @param callback = (result) => {"enable":boolean}
62 | * */
63 | static checkLoginEnable(callback) {
64 | if (Platform.OS == 'android') {
65 | JVerificationModule.checkVerifyEnable(callback);
66 | } else {
67 | JVerificationModule.checkVerifyEnable(callback);
68 | }
69 | }
70 |
71 | /*
72 | * SDK获取号码认证token
73 | * @param time : int
74 | * @param callback = (result) => {"code":int,'content':String,'operator':String}
75 | *
76 | * time:超时时间(毫秒),有效取值范围(0,10000],若小于等于0则取默认值5000.大于10000则取10000.为保证获取token的成功率,建议设置为3000-5000ms.
77 | * code:返回码,2000代表获取成功,其他为失败,详见错误码描述
78 | * content:成功时为token,可用于调用验证手机号接口。token有效期为1分钟,超过时效需要重新获取才能使用。失败时为失败信息
79 | * operator:成功时为对应运营商,CM代表中国移动,CU代表中国联通,CT代表中国电信。失败时可能为null
80 | * */
81 | static getToken(time, callback) {
82 | JVerificationModule.getToken(time, callback);
83 | }
84 |
85 | /*
86 | * SDK获取预取号token
87 | * @param time : int
88 | * @param callback = (result) => {"code":int,'content':String}
89 | *
90 | * time:超时时间(毫秒),有效取值范围(0,10000],若小于等于0则取默认值5000.大于10000则取10000, 为保证预取号的成功率,建议设置为3000-5000ms
91 | * code:返回码,7000代表获取成功,其他为失败,详见错误码描述
92 | * content:调用结果信息描述
93 | * */
94 | static preLogin(time, callback) {
95 | JVerificationModule.preLogin(time, callback);
96 | }
97 |
98 | /*
99 | * SDK清除预取号缓存
100 | * */
101 | static clearPreLoginCache() {
102 | JVerificationModule.clearPreLoginCache();
103 | }
104 |
105 | /*
106 | * SDK请求授权一键登录
107 | * @param enable : boolean
108 | *
109 | * boolean:是否自动关闭授权页,true - 是,false - 否;若此字段设置为false,请在收到一键登录回调后调用SDK提供的关闭授权页面方法
110 | * */
111 | static login(enable) {
112 | if (Platform.OS == 'android') {
113 | JVerificationModule.loginAuth(enable);
114 | } else {
115 | JVerificationModule.getAuthorizationWithController(enable);
116 | }
117 | }
118 |
119 | /*
120 | * SDK关闭授权页面
121 | * */
122 | static dismissLoginPage() {
123 | if (Platform.OS == 'android') {
124 | JVerificationModule.dismissLoginAuthActivity();
125 | }
126 | else {
127 | JVerificationModule.dismissLoginController();
128 | }
129 | }
130 |
131 | /**
132 | * 设置一键登录页面样式
133 | * 均可选,需要在login前调用生效(ios需要将图片放入JVerificationResource.bundle)
134 | * var customConfigParams = {
135 | * backgroundImage: String //背景图
136 | *
137 | * statusBarHidden: boolean //状态栏是否隐藏
138 | * statusBarMode: String //状态栏模式 light,dark
139 | *
140 | * navHidden: boolean //导航栏是否隐藏
141 | * navColor: int //导航栏颜色
142 | *
143 | * navTitle: string //导航栏标题
144 | * navTitleSize: int //导航栏标题文字字体大小(单位:sp)
145 | * navTitleColor: number //导航栏标题文字颜色
146 | *
147 | * navReturnHidden: boolean //导航栏返回按钮是否隐藏
148 | * navReturnImage: string //导航栏左侧返回按钮图标
149 | * navReturnX: int //导航栏返回按钮距屏幕左侧偏移 (仅Android)
150 | * navReturnY: int //导航栏返回按钮距屏幕右侧偏移 (仅Android)
151 | * navReturnW: int //导航栏返回按钮宽度 (仅Android)
152 | * navReturnH: int //导航栏返回按钮高度 (仅Android)
153 | *
154 | * logoHidden: boolean //logo是否隐藏
155 | * logoImage: string //logo(android默认为应用图标;ios默认无)
156 | * logoX: int //logo相对于屏幕左边x轴偏移
157 | * logoY: int //logo相对于标题栏下边缘y偏移
158 | * logoW: int //logo宽
159 | * logoH: int //logo高
160 | *
161 | * numberSize: int //手机号码字体大小(单位:sp)
162 | * numberColor: int //手机号码字体颜色
163 | * numberX: int //号码栏相对于屏幕左边x轴偏移
164 | * numberY: int //号码栏相对于标题栏下边缘y偏移
165 | * numberW: int //号码栏宽度
166 | * numberH: int //号码栏高度
167 | *
168 | * sloganHidden: boolean //slogan是否隐藏
169 | * sloganTextSize: int //slogan字体大小
170 | * sloganTextColor: int //slogan文字颜色
171 | * sloganX: int //slogan相对于屏幕左边x轴偏移
172 | * sloganY: int //slogan相对于标题栏下边缘y偏移
173 | * sloganW: int, //slogan宽度 (仅iOS)
174 | * sloganH: int, //slogan高度 (仅iOS)
175 | *
176 | * loginBtnText: string, //登录按钮文字
177 | * loginBtnTextSize: int //登录按钮字体大小
178 | * loginBtnTextColor: int //登录按钮文字颜色
179 | *
180 | * loginBtnImage: string //登录按钮selector选择样式 (仅android)
181 | * loginBtnNormalImage: string //登录按钮正常图片 (仅ios,三个同时设置生效)
182 | * loginBtnDisabledImage: string //登录按钮失效图片 (仅ios,三个同时设置生效)
183 | * loginBtnSelectedImage: string //登录按钮按下图片 (仅ios,三个同时设置生效)
184 | * loginBtnX: int //登录按钮相对于屏幕左边x轴偏移
185 | * loginBtnY: int //登录按钮相对于标题栏下边缘y偏移
186 | * loginBtnW: int //登录按钮宽度
187 | * loginBtnH: int //登录按钮高度
188 | *
189 | * privacyOne: StringArray //[隐私条款一名称,隐私条款一链接]
190 | * privacyTwo: StringArray //[隐私条款二名称,隐私条款二链接]
191 | * privacyColor: intArray //[隐私条款名称颜色,隐私条款链接颜色]
192 | * privacyText: StringArray //[隐私条款名称外的文字,隐私条款名称外的文字,隐私条款名称外的文字,隐私条款名称外的文字]
193 | * privacyTextSize: int //隐私条款文字字体大小
194 | * privacyTextGravityMode: String //隐私条款文本对齐方式,目前仅支持 left、center
195 | * privacyBookSymbolEnable: boolean //隐私条款运营商协议名是否加书名号
196 | * privacyX:int //隐私条款相对于屏幕左边x轴偏移
197 | * privacyY:int //隐私条款相对于导航栏下边缘y偏移
198 | * privacyW:int //隐私条款宽度
199 | * privacyH:int //隐私条款高度
200 | *
201 | * privacyCheckboxHidden: boolean //隐私条款checkbox是否隐藏
202 | * privacyCheckEnable: boolean //隐私条款默认选中状态。默认不选中
203 | * privacyCheckedImage: string //隐私条款复选框选中图片
204 | * privacyUncheckedImage: string //隐私条款复选框未选中图片
205 | * privacyCheckboxSize:int //设置隐私条款checkbox尺寸 默认是10
206 | *
207 | * privacyWebNavColor: int //协议展示web页面导航栏背景颜色
208 | * privacyWebNavTitle:String //协议页导航栏标题(仅iOS)
209 | * privacyWebNavTitleSize: int //协议展示web页面导航栏标题文字大小
210 | * privacyWebNavTitleColor: int //协议展示web页面导航栏标题文字颜色
211 | * privacyWebNavReturnImage: String //协议展示web页面导航栏返回按钮图标
212 | * }
213 | *
214 | * var customViewParams = {
215 | * 'customViewName':String, //在index.js中注册的component
216 | * 'customViewPoint':StringArray //[int,int,int,int] 基于屏幕左上角的x,y,w,h
217 | * }
218 | *
219 | * 关于图片资源,Android请将图片放到res/drawable目录下,iOS请将图片放到JVerificationResour.bundle
220 | * 关于颜色,为colorInt,可在Android代码中直观的看到数值,例如Color.BLACK = -16777216,Color.WHITE = -1
221 | * 关于x,y,w,h,为保障显示效果,请同时设置。
222 | */
223 | static addLoginCustomConfig(customConfigParams, customViewParams) {
224 | if (Platform.OS == 'android') {
225 | JVerificationModule.setCustomUIWithConfig(customConfigParams, customViewParams);
226 | } else {
227 | JVerificationModule.customUIWithConfig(customConfigParams, customViewParams);
228 | }
229 | }
230 |
231 | /*
232 | * 登录事件监听
233 | * @param callback = result => {'code':int,'content':String,'operator':String}
234 | * */
235 | static addLoginEventListener(callback) {
236 | listeners[callback] = DeviceEventEmitter.addListener(
237 | LoginEvent, result => {
238 | callback(result);
239 | });
240 | }
241 |
242 | static addUncheckBoxEventListener(callback) {
243 | listeners[callback] = DeviceEventEmitter.addListener(
244 | UnCheckBox, result => {
245 | callback(result);
246 | });
247 | }
248 |
249 | //移除事件
250 | static removeListener(callback) {
251 | if (!listeners[callback]) {
252 | return;
253 | }
254 | listeners[callback].remove();
255 | listeners[callback] = null;
256 | }
257 | /*
258 | * SDK获取验证码
259 | * @param params = {'phonenum':String,'signid':String,'tempid':String}
260 | * @param callback = (result) => {"code":int,'msg':String}
261 | * */
262 | static getVerifyCode(params,callback) {
263 | JVerificationModule.getSmsCode(params,callback);
264 | }
265 |
266 | /*
267 | * 设置前后两次获取验证码的时间间隔
268 | * @param time : int
269 | * */
270 | static setCodeTime(time) {
271 | JVerificationModule.setTimeWithConfig(time);
272 | }
273 |
274 | }
275 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BuildSystemType
6 | Original
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/EAccountApiSDK.framework/EAccountApiSDK:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/ios/RCTJVerificationModule/EAccountApiSDK.framework/EAccountApiSDK
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/EAccountApiSDK.framework/Headers/EAccountCTEConfig.h:
--------------------------------------------------------------------------------
1 | //
2 | // EAccountCTEConfig.h
3 | // EAccountApiSDK
4 | //
5 | // Created by lvzhzh on 2019/12/4.
6 | // Copyright © 2019 21CN. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface EAccountCTEConfig : NSObject
14 |
15 | @property (nonatomic, copy) NSString *timestampDomain;
16 | @property (nonatomic, copy) NSString *preLoginDomain;
17 | @property (nonatomic, copy) NSString *uploadLogDomain;
18 |
19 | @end
20 |
21 | NS_ASSUME_NONNULL_END
22 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/EAccountApiSDK.framework/Headers/EAccountPreLoginConfigModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // EAccountPreLoginConfigModel.h
3 | // EAccountApiSDK
4 | //
5 | // Created by Reticence Lee on 2019/12/12.
6 | // Copyright © 2019 21CN. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface EAccountPreLoginConfigModel : NSObject
14 |
15 | /**
16 | NSURLRequest的最大空闲时间 默认3s
17 | */
18 | @property (nonatomic, assign) NSTimeInterval timeoutIntervalForRequest;
19 |
20 | /**
21 | NSURLSession资源获取超时时间 默认3s
22 | */
23 | @property (nonatomic, assign) NSTimeInterval timeoutIntervalForResource;
24 |
25 | /**
26 | socket连接超时时间 默认3s
27 | */
28 | @property (nonatomic, assign) NSTimeInterval socketConnectTimeoutInterval;
29 |
30 | /**
31 | socket请求总超时时间 默认6s 建议设置比 socket连接超时时间 长
32 | */
33 | @property (nonatomic, assign) NSTimeInterval socketTotalTimeoutInterval;
34 |
35 | #pragma -mark 初始化方法
36 |
37 | /**
38 | 初始化方法 请调用该方法进行初始化
39 | */
40 | - (instancetype)initWithDefaultConfig;
41 |
42 | @end
43 |
44 | NS_ASSUME_NONNULL_END
45 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/EAccountApiSDK.framework/Headers/EAccountSDK.h:
--------------------------------------------------------------------------------
1 | //
2 | // EAccountSDK.h
3 | // EAccountSDKNetwork
4 | //
5 | // Created by thy on 2018/6/23.
6 | // Copyright © 2018年 21CN. All rights reserved.
7 | //
8 |
9 | /**
10 | 定制版SDK v3.7.2 20191217
11 | */
12 |
13 | #import
14 | #import "EAccountPreLoginConfigModel.h"
15 | #import "EAccountCTEConfig.h"
16 |
17 | /**
18 | 声明一个block
19 | @param resultDic 网络返回的data的解析结果
20 | */
21 | typedef void (^successHandler) ( NSDictionary * _Nonnull resultDic);
22 |
23 | /**
24 | 声明一个block
25 | @param error 网络返回的错误或者其它错误
26 | */
27 | typedef void (^failureHandler) (NSError * _Nonnull error);
28 |
29 | @interface EAccountSDK : NSObject
30 |
31 | /**
32 | 初始化SDK
33 | @param appKey 接入方在账号平台领取的appId
34 | @param appSecrect 接入方在账号平台领取的appSecrect
35 | */
36 | + (void)initWithSelfKey:(NSString * _Nonnull)appKey
37 | appSecret:(NSString * _Nonnull)appSecrect;
38 |
39 |
40 | /**
41 | 默认为正式环境的bundleID,需要使用测试环境的bundleID(企业证书重签名),请添加这个方法,在发布APP的时候请确保没有使用该方法。
42 | */
43 |
44 | +(void)setTestBundleId;
45 |
46 |
47 | /**
48 | *@description 预登录接口
49 | @param model 接口超时时间配置
50 | */
51 |
52 | + (void)requestPRELogin:(EAccountPreLoginConfigModel * _Nonnull)model
53 | completion:(nonnull successHandler)completion
54 | failure:(nonnull failureHandler)fail;
55 |
56 | /**
57 | *@description 预登录接口
58 | @param apiTimeoutInterval 接口超时时间,传0或者小于0的数,则默认为3s
59 | */
60 |
61 | + (void)requestPreLogin:(NSTimeInterval)apiTimeoutInterval
62 | completion:(nonnull successHandler)completion
63 | failure:(nonnull failureHandler)fail DEPRECATED_MSG_ATTRIBUTE("Please use `requestPRELogin:completion:failure:` instead");
64 |
65 |
66 | /**
67 | *@description 预登录接口 废弃
68 | @param apiTimeoutInterval 接口超时时间,传0或者小于0的数,则默认为3s
69 | */
70 |
71 | + (void)getMobileCodeWithTimeout:(NSTimeInterval)apiTimeoutInterval
72 | completion:(nonnull successHandler)completion
73 | failure:(nonnull failureHandler)fail DEPRECATED_MSG_ATTRIBUTE("Please use `requestPreLogin:completion:failure:` instead");
74 |
75 |
76 | + (void)setDomainName:(EAccountCTEConfig *)config;
77 |
78 | @end
79 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/EAccountApiSDK.framework/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/ios/RCTJVerificationModule/EAccountApiSDK.framework/Info.plist
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/ESOneKeyLogin.framework/ESOneKeyLogin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/ios/RCTJVerificationModule/ESOneKeyLogin.framework/ESOneKeyLogin
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/ESOneKeyLogin.framework/Headers/ESLoginService.h:
--------------------------------------------------------------------------------
1 | //
2 | // ESLoginService.h
3 | // CTPocket
4 | //
5 | // Created by Frank on 2019/1/14.
6 | // Copyright © 2019 广东亿迅科技有限公司. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ESLoginService : NSObject
12 |
13 | /**
14 | *免密登录获取AccessCode
15 | *
16 | @param syscode 合作方编码
17 | @param successBlock 成功回调Block
18 | @param failureBlock 失败回调Block
19 | */
20 | -(void)getAccessCodeWithSyscode:(NSString *)syscode Success:(void(^)(NSDictionary *dict))successBlock failure:(void (^)(NSError *error))failureBlock;
21 |
22 | /**
23 | *取消一键登录连接
24 | */
25 | - (void)cancelSocketConnect;
26 |
27 |
28 | @end
29 |
30 |
31 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/ESOneKeyLogin.framework/Headers/ESOneKeyLogin.h:
--------------------------------------------------------------------------------
1 | //
2 | // ESOneKeyLogin.h
3 | // ESOneKeyLogin
4 | //
5 | // Created by qiuqizhou on 2020/3/6.
6 | // Copyright © 2020 qiuqizhou. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "ESLoginService.h"
11 |
12 |
13 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/ESOneKeyLogin.framework/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/ios/RCTJVerificationModule/ESOneKeyLogin.framework/Info.plist
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/ESOneKeyLogin.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module ESOneKeyLogin {
2 | umbrella header "ESOneKeyLogin.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/ESOneKeyLogin.framework/_CodeSignature/CodeDirectory:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/ios/RCTJVerificationModule/ESOneKeyLogin.framework/_CodeSignature/CodeDirectory
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/ESOneKeyLogin.framework/_CodeSignature/CodeRequirements:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/ios/RCTJVerificationModule/ESOneKeyLogin.framework/_CodeSignature/CodeRequirements
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/ESOneKeyLogin.framework/_CodeSignature/CodeRequirements-1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/ios/RCTJVerificationModule/ESOneKeyLogin.framework/_CodeSignature/CodeRequirements-1
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/ESOneKeyLogin.framework/_CodeSignature/CodeResources:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | files
6 |
7 | Headers/ESLoginService.h
8 |
9 | T/gDgvMjr/8vgfBMND7B//7I+kM=
10 |
11 | Headers/ESOneKeyLogin.h
12 |
13 | JrG8c5fsIYWVpJImgRQQ6uICvX0=
14 |
15 | Info.plist
16 |
17 | gQCQkFZw35dqkcBcFazCFGleuqo=
18 |
19 | Modules/module.modulemap
20 |
21 | HpX9nPHR3Qc2NQQuYb3IZUzrWGw=
22 |
23 |
24 | files2
25 |
26 | Headers/ESLoginService.h
27 |
28 | hash
29 |
30 | T/gDgvMjr/8vgfBMND7B//7I+kM=
31 |
32 | hash2
33 |
34 | qRx6PhgsIwMylu7nBisYH6aq7U2X+tKeyNhdPmpV//c=
35 |
36 |
37 | Headers/ESOneKeyLogin.h
38 |
39 | hash
40 |
41 | JrG8c5fsIYWVpJImgRQQ6uICvX0=
42 |
43 | hash2
44 |
45 | gvZR1hQitMjpCcRTsRyNkJWui1sX3AOD5kXhalaEKzQ=
46 |
47 |
48 | Modules/module.modulemap
49 |
50 | hash
51 |
52 | HpX9nPHR3Qc2NQQuYb3IZUzrWGw=
53 |
54 | hash2
55 |
56 | gIllTOswB2cKRHZIyvm6Zi3zh8Nzc07Z79y1xwhiZcA=
57 |
58 |
59 |
60 | rules
61 |
62 | ^.*
63 |
64 | ^.*\.lproj/
65 |
66 | optional
67 |
68 | weight
69 | 1000
70 |
71 | ^.*\.lproj/locversion.plist$
72 |
73 | omit
74 |
75 | weight
76 | 1100
77 |
78 | ^Base\.lproj/
79 |
80 | weight
81 | 1010
82 |
83 | ^version.plist$
84 |
85 |
86 | rules2
87 |
88 | .*\.dSYM($|/)
89 |
90 | weight
91 | 11
92 |
93 | ^(.*/)?\.DS_Store$
94 |
95 | omit
96 |
97 | weight
98 | 2000
99 |
100 | ^.*
101 |
102 | ^.*\.lproj/
103 |
104 | optional
105 |
106 | weight
107 | 1000
108 |
109 | ^.*\.lproj/locversion.plist$
110 |
111 | omit
112 |
113 | weight
114 | 1100
115 |
116 | ^Base\.lproj/
117 |
118 | weight
119 | 1010
120 |
121 | ^Info\.plist$
122 |
123 | omit
124 |
125 | weight
126 | 20
127 |
128 | ^PkgInfo$
129 |
130 | omit
131 |
132 | weight
133 | 20
134 |
135 | ^embedded\.provisionprofile$
136 |
137 | weight
138 | 20
139 |
140 | ^version\.plist$
141 |
142 | weight
143 | 20
144 |
145 |
146 |
147 |
148 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/ESOneKeyLogin.framework/_CodeSignature/CodeSignature:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/ios/RCTJVerificationModule/ESOneKeyLogin.framework/_CodeSignature/CodeSignature
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/OAuth.framework/Headers/ZOAuthManager.h:
--------------------------------------------------------------------------------
1 | //
2 | // ZOAuthManager 能力接入管理者-提供加解密方法
3 | // OAuthSDKApp
4 | //
5 | // Created by zhangQY on 2019/5/13.
6 | // Copyright © 2019 com.zzx.sdk.ios.test. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | typedef NS_ENUM(NSUInteger, ServiceType) {
12 | ServiceTypeMobile,
13 | ServiceTypeOAuth,
14 | };
15 |
16 | @interface ZOAuthManager : NSObject
17 | /**
18 | * 是否使用测试环境
19 | *
20 | * @param isDebug true/false
21 | */
22 | + (void) setDebug:(Boolean) isDebug ;
23 |
24 | /**
25 | * 是否使用SHA256
26 | *
27 | * @param schemeB true/false (默认是NO)
28 | */
29 | + (void) useSchemeBInSecurityModule:(BOOL)schemeB;
30 |
31 | //设置UA
32 | + (void)setUAString:(NSString *)UAString;
33 |
34 | //删除保存在本地的UA
35 | + (void)removeUAString;
36 |
37 | //获取SDK版本信息
38 | + (NSString *)getVersionInfo;
39 |
40 | @end
41 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/OAuth.framework/Headers/ZTOAuthManager.h:
--------------------------------------------------------------------------------
1 | //
2 | // ZTOAuthManager 电信能力接入管理者
3 | // OAuthSDKApp
4 | //
5 | // Created by zhangQY on 2019/5/13.
6 | // Copyright © 2019 com.zzx.sdk.ios.test. All rights reserved.
7 | //
8 | #import
9 | #import
10 | #import "ZOAuthManager.h"
11 |
12 | @interface ZTOAuthManager : ZOAuthManager
13 |
14 | /**
15 | * 获取电信能力接入单例对象
16 | */
17 | + (instancetype)getInstance;
18 |
19 |
20 | /**
21 | * 初始化-电信
22 | */
23 | - (void) init:(NSString*) apiKey pubKey:(NSString*)pubKey;
24 |
25 |
26 | /**
27 | * 取号-电信
28 | */
29 | - (void) login:(double)timeout resultListener:(void (^)(NSDictionary *data))listener;
30 |
31 |
32 | /**
33 | * 清除缓存 ***注意***:SDK取号默认会使用缓存机制,请及时清理缓存;
34 | */
35 | + (BOOL)clearCTLoginCache;
36 |
37 |
38 | /**
39 | 中断取号登录流程(按需使用)
40 | 取消取号请求
41 | */
42 | - (void)tryToInterruptTheCTLoginFlow;
43 |
44 |
45 | /**
46 | * 认证-电信 ***注意***:在不手动关闭缓存的时,请及时调用清除缓存方法;
47 | */
48 | - (void) oauth:(double)timeout resultListener:(void (^)(NSDictionary *data))listener;
49 |
50 |
51 | /** 电信认证:是否关闭缓存策略(默认开启)
52 | 请注意及时调用clearOauthCache方法清除缓存;
53 | 手动关闭后,不必调用clearOauthCache;
54 | @param yesOrNo 是否关闭电信认证缓存策略
55 | */
56 | - (void) closeCTOauthCachingStrategy:(BOOL)yesOrNo;
57 |
58 |
59 | /**
60 | 电信认证:
61 | 清除电信认证缓存策略中产生的缓存数据;
62 | 在手动关闭缓存策略时,不必调用;
63 | */
64 | + (BOOL) clearCTOauthCache;
65 |
66 |
67 | /**
68 | * (测试接口)获取登录/认证结果
69 | */
70 | - (void) gmbc:(NSString*)accessCode mobile:(NSString *)mobile listener:(void (^)(NSDictionary *data))listener;
71 |
72 |
73 |
74 | //释放SDK内部单例对象
75 | -(void)ZOAURelease;
76 |
77 |
78 | @end
79 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/OAuth.framework/Headers/ZUOAuthManager.h:
--------------------------------------------------------------------------------
1 | //
2 | // ZUOAuthManager 联通能力接入管理者
3 | // OAuthSDKApp
4 | //
5 | // Created by zhangQY on 2019/5/13.
6 | // Copyright © 2019 com.zzx.sdk.ios.test. All rights reserved.
7 | //
8 | #import
9 | #import
10 | #import "ZOAuthManager.h"
11 |
12 | @interface ZUOAuthManager : ZOAuthManager
13 |
14 |
15 | /**
16 | * 获取联通能力接入单例对象
17 | */
18 | + (instancetype)getInstance;
19 |
20 |
21 | /**
22 | * 初始化-联通
23 | */
24 | - (void) init:(NSString*) apiKey pubKey:(NSString*)pubKey;
25 |
26 |
27 | /**
28 | * 取号-联通
29 | */
30 | - (void) login:(double)timeout resultListener:(void (^)(NSDictionary *data))listener;
31 |
32 |
33 | /**
34 | * 清除缓存 ***注意***:SDK取号默认会使用缓存机制,请及时清理缓存;
35 | */
36 | + (BOOL)clearCULoginCache;
37 |
38 |
39 | /**
40 | 中断取号登录流程(按需使用)
41 | 取消取号请求
42 | */
43 | - (void)tryToInterruptTheCULoginFlow;
44 |
45 |
46 | /**
47 | * 认证-联通
48 | 注意***:在不手动关闭缓存的时,请及时调用清除缓存方法
49 | */
50 | - (void) oauth:(double)timeout resultListener:(void (^)(NSDictionary *data))listener;
51 |
52 |
53 | /** 联通认证:是否关闭缓存策略(默认开启)
54 | 请注意及时调用clearOauthCache方法清除缓存;
55 | 手动关闭后,不必调用clearOauthCache;
56 | @param yesOrNo 是否关闭联通认证缓存策略
57 | */
58 | - (void) closeCUOauthCachingStrategy:(BOOL)yesOrNo;
59 |
60 |
61 | /**
62 | 联通认证:
63 | 清除联通认证缓存策略中产生的缓存数据;
64 | 在手动关闭缓存策略时,不必调用;
65 | */
66 | + (BOOL) clearCUOauthCache;
67 |
68 |
69 | /**
70 | * 获取登录/认证结果
71 | * 测试接口
72 | */
73 | - (void) gmbc:(NSString*)accessCode mobile:(NSString *)mobile listener:(void (^)(NSDictionary *data))listener;
74 |
75 |
76 | /**
77 | * 测试接口
78 | */
79 | - (void) gmbc:(NSString*)accessCode listener:(void (^)(NSDictionary *data))listener;
80 |
81 |
82 | //释放SDK内部单例对象
83 | -(void)ZOAURelease;
84 |
85 | @end
86 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/OAuth.framework/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/ios/RCTJVerificationModule/OAuth.framework/Info.plist
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/OAuth.framework/OAuth:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/ios/RCTJVerificationModule/OAuth.framework/OAuth
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/OAuth.framework/_CodeSignature/CodeDirectory:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/ios/RCTJVerificationModule/OAuth.framework/_CodeSignature/CodeDirectory
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/OAuth.framework/_CodeSignature/CodeRequirements:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/ios/RCTJVerificationModule/OAuth.framework/_CodeSignature/CodeRequirements
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/OAuth.framework/_CodeSignature/CodeRequirements-1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/ios/RCTJVerificationModule/OAuth.framework/_CodeSignature/CodeRequirements-1
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/OAuth.framework/_CodeSignature/CodeResources:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | files
6 |
7 | Headers/ZOAuthManager.h
8 |
9 | Bun83md0uveA8cIrtE31ZJYCthc=
10 |
11 | Headers/ZTOAuthManager.h
12 |
13 | W8L0JfrdTB9W3S5SdC2zPmM1Rlc=
14 |
15 | Headers/ZUOAuthManager.h
16 |
17 | tzyoPulBaM4s/LiEv8eFPDvr4+8=
18 |
19 | Info.plist
20 |
21 | 2InJOhviyxiEUEDvWKLjWpx7JC4=
22 |
23 |
24 | files2
25 |
26 | Headers/ZOAuthManager.h
27 |
28 | hash
29 |
30 | Bun83md0uveA8cIrtE31ZJYCthc=
31 |
32 | hash2
33 |
34 | 6NM3+En9MHSJDwLVUUjZHCl8qV9REUn8vk5KJ9uUmz8=
35 |
36 |
37 | Headers/ZTOAuthManager.h
38 |
39 | hash
40 |
41 | W8L0JfrdTB9W3S5SdC2zPmM1Rlc=
42 |
43 | hash2
44 |
45 | jxCbjRLpgvjUYA9vL11GYSnlW36YQGR75olIqQRLYgQ=
46 |
47 |
48 | Headers/ZUOAuthManager.h
49 |
50 | hash
51 |
52 | tzyoPulBaM4s/LiEv8eFPDvr4+8=
53 |
54 | hash2
55 |
56 | qa2pFGssrYGjUwMIptLo7AfKEbJDG7Ueas7fRikyksI=
57 |
58 |
59 |
60 | rules
61 |
62 | ^.*
63 |
64 | ^.*\.lproj/
65 |
66 | optional
67 |
68 | weight
69 | 1000
70 |
71 | ^.*\.lproj/locversion.plist$
72 |
73 | omit
74 |
75 | weight
76 | 1100
77 |
78 | ^Base\.lproj/
79 |
80 | weight
81 | 1010
82 |
83 | ^version.plist$
84 |
85 |
86 | rules2
87 |
88 | .*\.dSYM($|/)
89 |
90 | weight
91 | 11
92 |
93 | ^(.*/)?\.DS_Store$
94 |
95 | omit
96 |
97 | weight
98 | 2000
99 |
100 | ^.*
101 |
102 | ^.*\.lproj/
103 |
104 | optional
105 |
106 | weight
107 | 1000
108 |
109 | ^.*\.lproj/locversion.plist$
110 |
111 | omit
112 |
113 | weight
114 | 1100
115 |
116 | ^Base\.lproj/
117 |
118 | weight
119 | 1010
120 |
121 | ^Info\.plist$
122 |
123 | omit
124 |
125 | weight
126 | 20
127 |
128 | ^PkgInfo$
129 |
130 | omit
131 |
132 | weight
133 | 20
134 |
135 | ^embedded\.provisionprofile$
136 |
137 | weight
138 | 20
139 |
140 | ^version\.plist$
141 |
142 | weight
143 | 20
144 |
145 |
146 |
147 |
148 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/OAuth.framework/_CodeSignature/CodeSignature:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/ios/RCTJVerificationModule/OAuth.framework/_CodeSignature/CodeSignature
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/RCTJVerificationModule.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | #if __has_include()
4 | #import
5 | #import
6 | #import
7 | #elif __has_include("RCTBridge.h")
8 | #import "RCTEventEmitter.h"
9 | #import "RCTRootView.h"
10 | #import "RCTBridge.h"
11 | #endif
12 |
13 | #import
14 | #import
15 |
16 | #import "JVERIFICATIONService.h"
17 |
18 | @interface RCTJVerificationModule : RCTEventEmitter
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/TYRZUISDK.framework/Headers/TYRZSDK.h:
--------------------------------------------------------------------------------
1 | //
2 | // TYRZSDK.h
3 | // TYRZSDK
4 | //
5 |
6 | #import "UASDKLogin.h"
7 | #import "UASDKErrorCode.h"
8 | #import "UAEnums.h"
9 | #import "UACustomModel.h"
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/TYRZUISDK.framework/Headers/UACustomModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // UACustomModel.h
3 | // Test
4 | //
5 | // Created by issuser on 2018/5/18.
6 | // Copyright © 2018年 林涛. All rights reserved.
7 | //
8 |
9 | #import "UAEnums.h"
10 |
11 | @interface UACustomModel : NSObject
12 |
13 | /**
14 | 版本注意事项:
15 | 授权页面的各个控件的Y轴默认值都是以375*667屏幕为基准 系数 : 当前屏幕高度/667
16 | 1、当设置Y轴并有效时 偏移量OffsetY属于相对导航栏的绝对Y值
17 | 2、(负数且超出当前屏幕无效)为保证各个屏幕适配,请自行设置好Y轴在屏幕上的比例(推荐:当前屏幕高度/667)
18 | */
19 |
20 | #pragma mark -----------------------------授权页面----------------------------------
21 |
22 | #pragma mark VC必传属性
23 | /**1、当前VC, 注意:要用一键登录这个值必传*/
24 | @property (nonatomic, weak) UIViewController *currentVC;
25 |
26 | #pragma mark 自定义控件
27 | /**2、授权界面自定义控件View的Block*/
28 | @property (nonatomic, copy) void(^authViewBlock)(UIView *customView, CGRect numberFrame, CGRect loginBtnFrame, CGRect checkBoxFrame, CGRect privacyFrame);
29 | /**3、 授权页面推出的动画效果:参考UAPresentationDirection枚举*/
30 | @property (nonatomic, assign) UAPresentationDirection presentType;
31 | /**4、授权界面背景图片*/
32 | @property (nonatomic, strong) UIImage *authPageBackgroundImage;
33 | /**5、自定义Loading View(回调默认关闭, 如需自己控制关闭, 则用keywindow并在一键登录回调中关闭)*/
34 | @property (nonatomic, copy) void(^authLoadingViewBlock)(UIView *loadingView);
35 | #pragma mark 登录按钮
36 | /**6、登录按钮文本*/
37 | @property (nonatomic, strong) NSAttributedString *logBtnText;
38 | /**7、登录按钮Y偏移量*/
39 | @property (nonatomic, strong) NSNumber * logBtnOffsetY;
40 | /**8、登录按钮的左右边距 注意:按钮呈现的宽度在竖屏时必须大于屏幕的一半, 横屏时必须大于屏幕的三分之一
41 | 示例:@[@50, @70] 只能两个元素
42 | */
43 | @property (nonatomic, strong) NSArray *logBtnOriginLR;
44 | /**9、登录按钮高h 注意:必须大于40*/
45 | @property (nonatomic, assign) CGFloat logBtnHeight;
46 | /**10、登录按钮背景图片添加到数组(顺序如下)
47 | @[激活状态的图片, 失效状态的图片, 高亮状态的图片]
48 | */
49 | @property (nonatomic, strong) NSArray *logBtnImgs;
50 | /**11、登录按钮高距离底部的高度*/
51 | @property (nonatomic, strong) NSNumber *logBtnOffsetY_B;
52 |
53 | #pragma mark 号码框设置
54 | /**12、手机号码富文本属性 */
55 | @property (nonatomic, strong) NSDictionary *numberTextAttributes;
56 | /**13、号码栏X偏移量*/
57 | @property (nonatomic, strong) NSNumber * numberOffsetX;
58 | /**14、号码栏Y偏移量*/
59 | @property (nonatomic, strong) NSNumber * numberOffsetY;
60 | /**15、号码栏Y偏移量(基于底部)*/
61 | @property (nonatomic, strong) NSNumber * numberOffsetY_B;
62 |
63 | #pragma mark 隐私条款
64 | /**16、复选框未选中时图片*/
65 | @property (nonatomic, strong) UIImage *uncheckedImg;
66 | /**17、复选框选中时图片*/
67 | @property (nonatomic, strong) UIImage *checkedImg;
68 | /**18、复选框大小(只能正方形)必须大于12*/
69 | @property (nonatomic, assign) NSNumber *checkboxWH;
70 | /**19、隐私条款(包括check框)的左右边距*/
71 | @property (nonatomic, strong) NSArray *appPrivacyOriginLR;
72 | /**20、隐私的内容模板:
73 | 1、全句可自定义但必须保留"&&默认&&"字段表明SDK默认协议, 否则设置不生效
74 | 2、协议1和协议2的名称要与数组 str1 和 str2 ... 里的名称 一样
75 | 3、必设置项(参考SDK的demo)
76 | appPrivacieDemo设置内容:登录并同意&&默认&&和&&百度协议&&、&&京东协议2&&登录并支持一键登录
77 | 展示: 登录并同意中国移动条款协议和百度协议1、京东协议2登录并支持一键登录
78 | */
79 | @property (nonatomic, copy) NSAttributedString *appPrivacyDemo;
80 | /**21、隐私条款默认协议是否开启书名号
81 | */
82 | @property (nonatomic, assign) BOOL privacySymbol;
83 |
84 | /**23、隐私条款:数组(务必按顺序)要设置NSLinkAttributeName属性可以跳转协议
85 | 对象举例:
86 | NSAttributedString *str1 = [[NSAttributedString alloc]initWithString:@"百度协议" attributes:@{NSLinkAttributeName:@"https://www.baidu.com"}];
87 | @[str1, , str2, str3, ...]
88 | */
89 | @property (nonatomic, strong) NSArray *appPrivacy;
90 | /**24、隐私条款名称颜色(协议)统一设置
91 | */
92 | @property (nonatomic, strong) UIColor *privacyColor;
93 | /**25、隐私条款Y偏移量
94 | 注意:该属性不生效,请通过privacyOffsetY_B去设置。
95 | */
96 | @property (nonatomic, strong) NSNumber * privacyOffsetY;
97 | /**26、隐私条款check框默认状态 默认:NO */
98 | @property (nonatomic, assign) BOOL privacyState;
99 | /**27、隐私条款Y偏移量(注:此属性为与屏幕底部的距离)*/
100 | @property (nonatomic, strong) NSNumber *privacyOffsetY_B;
101 |
102 | #pragma mark -----------------------------------协议页面-----------------------------------
103 | /**28、web协议界面导航返回图标(尺寸根据图片大小)*/
104 | @property (nonatomic, strong) UIImage *webNavReturnImg;
105 |
106 | /**29、web协议界面导航标题字体属性设置
107 | 默认值:@{NSForegroundColorAttributeName: [UIColor whiteColor], NSFontAttributeName: [UIFont systemFontOfSize:16]}
108 | */
109 | @property (nonatomic, strong) NSDictionary *webNavTitleAttrs;
110 |
111 | /**30、web协议界面导航标题栏颜色*/
112 | @property (nonatomic, strong) UIColor *webNavColor;
113 |
114 | #pragma mark ----------------------弹窗:(温馨提示:由于受屏幕影响,小屏幕(5S, 5E, 5)需要改动字体和另自适应和布局)--------------------
115 | #pragma mark --------------------------窗口模式1(居中弹窗) 弹框模式需要配合自定义坐标属性使用可自适应-----------------------------------
116 |
117 | //务必在设置控件位置时,自行查看各个机型模拟器是否正常
118 | /**温馨提示:
119 | 窗口1模式下,自动隐藏系统导航栏, 并生成一个UILabel 其frame为(0, 0, 窗口宽*scaleW, 44*scaleW)
120 | 返回按钮的frame查看51属性备注, 添加在UILabel的center.y位置
121 | */
122 | /**31、窗口模式开关*/
123 | @property (nonatomic, assign) BOOL authWindow;
124 |
125 | /**32、窗口模式推出动画
126 | UIModalTransitionStyleCoverVertical, 下推
127 | UIModalTransitionStyleFlipHorizontal, 翻转
128 | UIModalTransitionStyleCrossDissolve, 淡出
129 | */
130 | @property (nonatomic, assign) UIModalTransitionStyle modalTransitionStyle;
131 |
132 | /**33、自定义窗口弧度 默认是10*/
133 | @property (nonatomic, assign) CGFloat cornerRadius;
134 |
135 | /**34、自定义窗口宽-缩放系数(屏幕宽乘以系数) 默认是0.8*/
136 | @property (nonatomic, assign) CGFloat scaleW;
137 |
138 | /**35、自定义窗口高-缩放系数(屏幕高乘以系数) 默认是0.5*/
139 | @property (nonatomic, assign) CGFloat scaleH;
140 |
141 | #pragma mark -----------窗口模式2(边缘弹窗) UIPresentationController(可配合UAPresentationDirection动画使用)-----------
142 | /**36、此属性支持半弹框方式与authWindow不同(authWindow为中间弹窗,优先级高),该属性需要modalPresentationStyle需要设置为UIModalPresentationCustom下生效*/
143 | @property (nonatomic, assign) CGSize controllerSize;
144 | /**37、状态栏着色样式(隐藏导航栏时设置)*/
145 | @property (nonatomic, assign) UIStatusBarStyle statusBarStyle;
146 | /**38、横竖屏默认属性*/
147 | @property (nonatomic, assign) UIInterfaceOrientation faceOrientation;
148 | /**39、模态展示样式设置属性
149 | 注意:
150 | 在窗口模式,即authWindow = YES时。modalPresentationStyle需要设置为UIModalPresentationOverFullScreen或者UIModalPresentationCustom;
151 | 在边缘弹窗模式,即设置了controllerSize时,modalPresentationStyle需要设置为UIModalPresentationCustom;
152 | */
153 | @property (nonatomic, assign) UIModalPresentationStyle modalPresentationStyle;
154 |
155 | #pragma mark - Toast文案
156 | /**40、未勾选隐私条款提示的自定义提示文案,提示功能默认关闭,该属性被合法赋值(非空,且最大长度为100的字符串)后打开提示功能。*/
157 | @property (nonatomic, strong) NSString *checkTipText;
158 |
159 | #pragma mark - 多语言配置
160 | /**41、多语言配置:
161 | UALanguageSimplifiedChinese , //简体中文
162 | UALanguageTraditionalChinese, //繁体中文
163 | UALanguageEnglish, //英文
164 | */
165 | @property (nonatomic, assign) UALanguageType appLanguageType;
166 | @end
167 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/TYRZUISDK.framework/Headers/UAEnums.h:
--------------------------------------------------------------------------------
1 | //
2 | // UAEnums.h
3 | // TYRZUI
4 | //
5 | // Created by 谢鸿标 on 2020/3/16.
6 | // Copyright © 2020 谢鸿标. All rights reserved.
7 | //
8 |
9 | #ifndef UAEnums_h
10 | #define UAEnums_h
11 |
12 | #import
13 |
14 | typedef NS_ENUM(NSUInteger, UAPresentationDirection) {
15 | UAPresentationDirectionBottom = 0, //底部 present默认效果
16 | UAPresentationDirectionRight, //右边 导航栏效果
17 | UAPresentationDirectionTop, //上面
18 | UAPresentationDirectionLeft, //左边
19 | };
20 |
21 | typedef NS_ENUM(NSUInteger, UALanguageType) {
22 | UALanguageSimplifiedChinese = 0, //简体中文
23 | UALanguageTraditionalChinese, //繁体中文
24 | UALanguageEnglish, //英文
25 | };
26 |
27 | #endif /* UAEnums_h */
28 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/TYRZUISDK.framework/Headers/UASDKErrorCode.h:
--------------------------------------------------------------------------------
1 | //
2 | // UASDKErrorCode.h
3 | // TYRZSDK
4 | //
5 | // Created by 谢鸿标 on 2018/10/24.
6 | // Copyright © 2018 com.CMCC.iOS. All rights reserved.
7 | //
8 |
9 | #ifndef UASDKErrorCode_h
10 | #define UASDKErrorCode_h
11 |
12 | #import
13 |
14 | typedef NSString *UASDKErrorCode;
15 |
16 | //成功
17 | static UASDKErrorCode const UASDKErrorCodeSuccess = @"103000";
18 | //数据解析异常
19 | static UASDKErrorCode const UASDKErrorCodeProcessException = @"200021";
20 | //无网络
21 | static UASDKErrorCode const UASDKErrorCodeNoNetwork = @"200022";
22 | //请求超时
23 | static UASDKErrorCode const UASDKErrorCodeRequestTimeout = @"200023";
24 | //未知错误
25 | static UASDKErrorCode const UASDKErrorCodeUnknownError = @"200025";
26 | //蜂窝未开启或不稳定
27 | static UASDKErrorCode const UASDKErrorCodeNonCellularNetwork = @"200027";
28 | //网络请求出错(HTTP Code 非200)
29 | static UASDKErrorCode const UASDKErrorCodeRequestError = @"200028";
30 | //非移动网关重定向失败
31 | static UASDKErrorCode const UASDKErrorCodeWAPRedirectFailed = @"200038";
32 | //无SIM卡
33 | static UASDKErrorCode const UASDKErrorCodePhoneWithoutSIM = @"200048";
34 | //Socket创建或发送接收数据失败
35 | static UASDKErrorCode const UASDKErrorCodeSocketError = @"200050";
36 | //用户点击了“账号切换”按钮(自定义短信页面customSMS为YES才会返回)
37 | static UASDKErrorCode const UASDKErrorCodeCustomSMSVC = @"200060";
38 | //显示登录"授权页面"被拦截(hooked)
39 | static UASDKErrorCode const UASDKErrorCodeAutoVCisHooked = @"200061";
40 | ////预取号不支持联通
41 | //static UASDKErrorCode const UASDKErrorCodeNOSupportUnicom = @"200062";
42 | ////预取号不支持电信
43 | //static UASDKErrorCode const UASDKErrorCodeNOSupportTelecom = @"200063";
44 | //服务端返回数据异常
45 | static UASDKErrorCode const UASDKErrorCodeExceptionData = @"200064";
46 | //CA根证书校验失败
47 | static UASDKErrorCode const UASDKErrorCodeCAAuthFailed = @"200072";
48 | //本机号码校验仅支持移动手机号
49 | static UASDKErrorCode const UASDKErrorCodeGetMoblieOnlyCMCC = @"200080";
50 | //服务器繁忙
51 | static UASDKErrorCode const UASDKErrorCodeServerBusy = @"200082";
52 | //ppLocation为空
53 | static UASDKErrorCode const UASDKErrorCodeLocationError = @"200086";
54 | //监听授权界面成功弹起
55 | static UASDKErrorCode const UASDKSuccessGetAuthVCCode = @"200087";
56 | //当前网络不支持取号
57 | static UASDKErrorCode const UASDKErrorCodeUnsupportedNetwork = @"200096";
58 |
59 | /**
60 | 获取错误码描述
61 |
62 | @param code 错误码
63 | @return 返回对应描述
64 | */
65 | FOUNDATION_EXPORT NSString *UASDKErrorDescription(UASDKErrorCode code);
66 |
67 | #endif /* UASDKErrorCode_h */
68 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/TYRZUISDK.framework/Headers/UASDKLogin.h:
--------------------------------------------------------------------------------
1 | //
2 | // UASDKLogin.h
3 | // TYRZSDK
4 | //
5 | // Created by 谢鸿标 on 2018/10/11.
6 | // Copyright © 2018 com.CMCC.iOS. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #define UASDKVERSION @"quick_login_iOS_5.8.2.2"
12 |
13 | @class UACustomModel;
14 | NS_ASSUME_NONNULL_BEGIN
15 |
16 | @interface UASDKLogin : NSObject
17 |
18 | /**
19 | SDK登录单例管理
20 | */
21 | @property (nonatomic,class,readonly) UASDKLogin *shareLogin;
22 |
23 | /**
24 | 网络类型及运营商(双卡下,获取上网卡的运营商)
25 | "carrier" 运营商: 0.未知 / 1.中国移动 / 2.中国联通 / 3.中国电信
26 | "networkType" 网络类型: 0.无网络/ 1.数据流量 / 2.wifi / 3.数据+wifi
27 | @return @{NSString : NSNumber}
28 | */
29 | @property (nonatomic,readonly) NSDictionary *networkInfo;
30 |
31 | /**
32 | 初始化SDK参数
33 |
34 | @param appId 申请能力平台成功后,分配的appId
35 | @param appKey 申请能力平台成功后,分配的appKey
36 | */
37 | - (void)registerAppId:(NSString *)appId AppKey:(NSString *)appKey;
38 |
39 | /**
40 | 设置超时
41 |
42 | @param timeout 超时
43 | */
44 | - (void)setTimeoutInterval:(NSTimeInterval)timeout;
45 |
46 | /**
47 | 取号
48 |
49 | @param completion 回调
50 | */
51 | - (void)getPhoneNumberCompletion:(void(^)(NSDictionary *_Nonnull result))completion;
52 |
53 | /**
54 | 一键登录,获取到的token,可传给移动认证服务端获取完整手机号
55 |
56 | @param model 需要配置的Model属性(控制器必传)
57 | @param completion 回调
58 | */
59 | - (void)getAuthorizationWithModel:(UACustomModel *)model complete:(void (^)(id sender))completion;
60 |
61 | /**
62 | 获取本机号码校验token
63 |
64 | @param completion 回调
65 | */
66 | - (void)mobileAuthCompletion:(void(^)(NSDictionary *_Nonnull result))completion;
67 |
68 | /**
69 | 删除取号缓存数据 + 重置网络开关(自定义按钮事件里dimiss授权界面需调用)
70 |
71 | @return YES:有缓存已执行删除操作,NO:无缓存不执行删除操作
72 | */
73 | - (BOOL)delectScrip;
74 |
75 | /**
76 | 控制台日志输出控制(默认关闭)
77 |
78 | @param enable 开关参数
79 | */
80 | - (void)printConsoleEnable:(BOOL)enable;
81 |
82 |
83 | /**
84 | 关闭授权界面
85 | @param flag 动画开关
86 | @param completion 回调参数
87 |
88 | */
89 | - (void)ua_dismissViewControllerAnimated: (BOOL)flag completion: (void (^ __nullable)(void))completion;
90 |
91 | @end
92 |
93 | NS_ASSUME_NONNULL_END
94 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/TYRZUISDK.framework/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/ios/RCTJVerificationModule/TYRZUISDK.framework/Info.plist
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/TYRZUISDK.framework/TYRZUISDK:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/ios/RCTJVerificationModule/TYRZUISDK.framework/TYRZUISDK
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/account_login_sdk_noui_core.framework/Headers/UniAuthHelper.h:
--------------------------------------------------------------------------------
1 | //
2 | // UniAuthHelper.h
3 | // account_verify_sdk_core
4 | //
5 | // Created by zhuof on 2018/3/8.
6 | // Copyright © 2018年 xiaowo. All rights reserved.
7 | // 4.1.3IR01B0320 优化token获取流程。 减少交互。 使用者自行缓存accessCode(具备有效期)。
8 | //
9 |
10 | #import
11 |
12 | typedef void (^UniResultListener)(NSDictionary *data);
13 |
14 | @interface UniAuthHelper : NSObject
15 |
16 | +(UniAuthHelper *) getInstance;
17 |
18 | -(void) initWithAppId:(NSString*) appId appSecret:(NSString*) appSecret;
19 |
20 | //-(void) login :(double)timeout listener:(UniResultListener) listener;
21 |
22 | -(void) getAccessCode :(double)timeout listener:(UniResultListener) listener;
23 |
24 | //20200320 yangzc36 token优化,删除该接口
25 | //-(void) getAccessToken :(double)timeout accessCode:(NSString *)accessCode listener:(UniResultListener) listener;
26 |
27 | -(void) mobileAuth :(double)timeout listener:(UniResultListener) listener;
28 |
29 | -(void) printConsoleEnable:(BOOL)enable;
30 |
31 | -(NSString*) getSdkVersion;
32 |
33 | @end
34 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/account_login_sdk_noui_core.framework/Headers/account_login_sdk_noui_core.h:
--------------------------------------------------------------------------------
1 | //
2 | // account_login_sdk_noui_core.h
3 | // account_login_sdk_noui_core
4 | //
5 | // Created by zhuof on 2018/9/25.
6 | // Copyright © 2018年 xiaowo. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | //! Project version number for account_login_sdk_noui_core.
12 | FOUNDATION_EXPORT double account_login_sdk_noui_coreVersionNumber;
13 |
14 | //! Project version string for account_login_sdk_noui_core.
15 | FOUNDATION_EXPORT const unsigned char account_login_sdk_noui_coreVersionString[];
16 |
17 | // In this header, you should import all the public headers of your framework using statements like #import
18 |
19 | //#import
20 | #import "UniAuthHelper.h"
21 |
22 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/account_login_sdk_noui_core.framework/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/ios/RCTJVerificationModule/account_login_sdk_noui_core.framework/Info.plist
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/account_login_sdk_noui_core.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module account_login_sdk_noui_core {
2 | umbrella header "account_login_sdk_noui_core.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/account_login_sdk_noui_core.framework/account_login_sdk_noui_core:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/ios/RCTJVerificationModule/account_login_sdk_noui_core.framework/account_login_sdk_noui_core
--------------------------------------------------------------------------------
/ios/RCTJVerificationModule/libjverification-ios-2.7.1.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jpush/jverification-react-native/88eed9b897a0c12e52ce151c4a266216cd6109be/ios/RCTJVerificationModule/libjverification-ios-2.7.1.a
--------------------------------------------------------------------------------
/jverification-react-native.podspec:
--------------------------------------------------------------------------------
1 | require 'json'
2 | pjson = JSON.parse(File.read('package.json'))
3 |
4 | Pod::Spec.new do |s|
5 |
6 | s.name = pjson['name']
7 | s.version = pjson["version"]
8 | s.homepage = pjson["homepage"]
9 | s.summary = pjson["description"]
10 | s.license = pjson["license"]
11 | s.author = pjson["author"]
12 |
13 | s.ios.deployment_target = '8.0'
14 |
15 | s.source = { :git => "https://github.com/jpush/jverification-react-native.git", :tag => "#{s.version}" }
16 | s.source_files = 'ios/RCTJVerificationModule/*.{h,m}'
17 | s.preserve_paths = "*.js"
18 | s.frameworks = 'UIKit','CFNetwork','CoreFoundation','CoreTelephony','SystemConfiguration','CoreGraphics','Foundation','Security', 'AdSupport', 'CoreLocation', 'MobileCoreServices'
19 | s.libraries = 'z','resolv', 'sqlite3', 'c++.1'
20 | s.vendored_libraries = "ios/RCTJVerificationModule/*.a"
21 | s.vendored_frameworks = "ios/RCTJVerificationModule/*.framework"
22 | s.dependency 'React'
23 | end
24 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jverification-react-native",
3 | "description": "React Native JVerification component for Android and iOS",
4 | "homepage": "https://github.com/jpush/jverification-react-native",
5 | "main": "index.js",
6 | "license": "ISC",
7 | "author": "wicked.tc130",
8 | "version": "2.4.8",
9 | "repository": {
10 | "type": "git",
11 | "url": "https://github.com/jpush/jverification-react-native"
12 | },
13 | "keywords": [
14 | "react-native",
15 | "JVerification"
16 | ],
17 | "peerDependencies": {
18 | "jcore-react-native": ">= 1.5.0",
19 | "react-native": ">= 0.60"
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/认证SDK授权页面元素配置API说明.md:
--------------------------------------------------------------------------------
1 | ### 认证SDK授权页面元素配置API说明
2 |
3 | ***x 轴未设置偏移则所有组件默认横向居中,所有图片资源android平台在android drowable目录下; iOS在JVerificationResource.bundle文件中,参数为图片的值都为 iOS 图片资源名字***
4 |
5 | + Android设置授权页背景
6 | + 图片会默认拉伸铺满整个屏幕,适配不同尺寸手机,建议使用 .9.png 图片来解决适配问题。
7 |
8 | |方法|参数类型|说明|
9 | |:-----:|:----:|:----:|
10 | |backgroundImage|String|设置背景图片|
11 |
12 | + iOS设置授权页背景
13 | |参数名称|参数类型|参数说明|
14 | |:-----:|:----:|:-----:|
15 | |backgroundImage|String|授权界面背景图片|
16 |
17 | + Android授权页状态栏
18 |
19 | |方法|参数类型|说明|
20 | |:-----:|:----:|:----:|
21 | |statusBarHidden|boolean|设置状态栏是否隐藏。|
22 | |statusBarMode|string|设置状态栏暗色模式。仅在 android 6.0 以上设备生效。值 "light"(正常模式),"dark"(暗色模式)|
23 |
24 | + iOS 授权页状态栏
25 |
26 | |方法|参数类型|说明|
27 | |:-----:|:----:|:----:|
28 | |statusBarHidden|boolean|设置状态栏是否隐藏。|
29 | |statusBarMode|string|设置状态栏暗色模式。值 "light"(正常模式),"dark"(暗色模式)|
30 |
31 |
32 | + Android授权页导航栏
33 |
34 | |方法|参数类型|说明|
35 | |:-----:|:----:|:----:|
36 | |navHidden|boolean|设置导航栏是否隐藏|
37 | |navColor|int|设置导航栏颜色|
38 | |navTitle|String|设置导航栏标题文字|
39 | |navTitleColor|int|设置导航栏标题文字颜色|
40 | |navTitleSize|int|设置导航栏标题文字字体大小(单位:sp)|
41 | |navReturnHidden|boolean|设置导航栏返回按钮是否隐藏。默认不隐藏|
42 | |navReturnImage|String|设置导航栏返回按钮图标|
43 | |navReturnW|int|设置导航栏返回按钮宽度。|
44 | |navReturnH|int|设置导航栏返回按钮高度。|
45 | |navReturnX|int|设置导航栏返回按钮距屏幕左侧偏移。|
46 | |navReturnY|int|设置导航栏返回按钮距上端偏移。|
47 |
48 | + iOS 授权页导航栏
49 |
50 | |方法|参数类型|说明|
51 | |:-----:|:----:|:----:|
52 | |navHidden|boolean|设置导航栏是否隐藏|
53 | |navColor|int|设置导航栏颜色|
54 | |navTitle|String|设置导航栏标题文字|
55 | |navTitleColor|int|设置导航栏标题文字颜色|
56 | |navTitleSize|int|设置导航栏标题文字字体大小(单位:sp)|
57 | |navReturnHidden|boolean|设置导航栏返回按钮是否隐藏。默认不隐藏。|
58 | |navReturnImage|String|设置导航栏返回按钮图标|
59 |
60 |
61 | + Android授权页logo
62 |
63 | |方法|参数类型|说明|
64 | |:-----:|:----:|:----:|
65 | |logoHidden|boolean|隐藏logo|
66 | |logoImage|String|设置logo图片|
67 | |logoW|int|设置logo宽度(单位:dp)|
68 | |logoH|int|设置logo高度(单位:dp)|
69 | |logoX|int|设置logo相对于屏幕左边x轴偏移。|
70 | |logoY|int|设置logo相对于标题栏下边缘y偏移|
71 |
72 | + iOS 授权页logo
73 |
74 | |方法|参数类型|说明|
75 | |:-----:|:----:|:----:|
76 | |logoHidden|boolean|隐藏logo|
77 | |logoImage|String|设置logo图片|
78 | |logoW|int|设置logo宽度|
79 | |logoH|int|设置logo高度|
80 | |logoX|int|设置logo相对于屏幕左边x轴偏移。since 2.3.8|
81 | |logoY|int|设置logo相对于标题栏下边缘y偏移|
82 | |logoConstraints|(centerX,centerY,width,height) |LOGO图片布局对象,统一设置约束条件,约束条件都是相对于整个屏幕布局|
83 |
84 | + Android授权页号码栏
85 |
86 | |方法|参数类型|说明|
87 | |:-----:|:----:|:----:|
88 | |numberColor|int|设置手机号码字体颜色|
89 | |numberSize|Number|设置手机号码字体大小(单位:sp)。|
90 | |numberY|int|设置号码栏相对于标题栏下边缘y偏移|
91 | |numberX|int|设置号码栏相对于屏幕左边x轴偏移。|
92 | |numberW|int|设置号码栏宽度。|
93 | |numberH|int|设置号码栏高度。|
94 |
95 | + iOS授权页号码栏
96 |
97 | |方法|参数类型|说明|
98 | |:-----:|:----:|:----:|
99 | |numberColor|int|设置手机号码字体颜色|
100 | |numberSize|Number|设置手机号码字体大小|
101 | |numberY|int|设置号码栏相对于标题栏下边缘y偏移|
102 | |numberX|int|设置号码栏相对于屏幕左边x轴偏移|
103 | |numberW|int|设置号码栏宽度|
104 | |numberH|int|设置号码栏高度|
105 | |numberConstraints|(centerX,centerY,width,height) |号码栏布局对象,统一设置约束条件,约束条件都是相对于整个屏幕布局|
106 |
107 |
108 | + Android授权页slogan
109 |
110 | |方法|参数类型|说明|
111 | |:-----:|:----:|:----:|
112 | |sloganY|int|设置 slogan 相对于标题栏下边缘y偏移。|
113 | |sloganX|int|设置 slogan 相对于屏幕左边x轴偏移。|
114 | |sloganTextSize|int|设置 slogan 字体大小。|
115 | |sloganHidden|boolean|设置 slogan 是否隐藏。|
116 | |sloganTextColor|int|设置移动 slogan 文字颜色。|
117 |
118 | + iOS授权页slogan
119 |
120 | |方法|参数类型|说明|
121 | |:-----:|:----:|:----:|
122 | |sloganY|int|设置 slogan 相对于标题栏下边缘y偏移。|
123 | |sloganX|int|设置 slogan 相对于屏幕左边x轴偏移。|
124 | |sloganTextSize|int|设置 slogan 字体大小。|
125 | |sloganHidden|boolean|设置 slogan 是否隐藏。|
126 | |sloganTextColor|int|设置移动 slogan 文字颜色。|
127 | |sloganConstraints|(centerX,centerY,width,height) |slogan布局对象,统一设置约束条件,约束条件都是相对于整个屏幕布局。|
128 |
129 |
130 | + Android授权页登录按钮
131 |
132 | |方法|参数类型|说明|
133 | |:-----:|:----:|:----:|
134 | |loginBtnText|String|设置登录按钮文字。|
135 | |loginBtnTextSize|int|设置登录按钮字体大小。|
136 | |loginBtnTextColor|int|设置登录按钮文字颜色。|
137 | |loginBtnImageSelector|String|设置授权登录按钮selector选择样式。|
138 | |loginBtnOffsetY|int|设置登录按钮相对于标题栏下边缘y偏移。|
139 | |loginBtnOffsetX|int|设置登录按钮相对于屏幕左边x轴偏移。|
140 | |loginBtnWidth|int|设置登录按钮宽度。|
141 | |loginBtnHeight|int|设置登录按钮高度。|
142 |
143 | + iOS授权页登录按钮
144 |
145 | |方法|参数类型|说明|
146 | |:-----:|:----:|:----:|
147 | |loginBtnText|String|设置登录按钮文字。|
148 | |loginBtnTextSize|int|设置登录按钮字体大小。|
149 | |loginBtnTextColor|int|设置登录按钮文字颜色|
150 | |loginBtnNormalImage|String|登录按钮正常图片|
151 | |loginBtnDisabledImage|String|设登录按钮不可点击图片|
152 | |loginBtnSelectedImage|String|设登录按钮选中图片|
153 | |loginBtnOffsetY|int|设置登录按钮相对于标题栏下边缘y偏移|
154 | |loginBtnOffsetX|int|设置登录按钮相对于屏幕左边x轴偏移。|
155 | |loginBtnW|int|设置登录按钮宽度。|
156 | |loginBtnH|int|设置登录按钮高度。|
157 | |logBtnConstraints|(centerX,centerY,width,height) |登录布局对象,统一设置约束条件,约束条件都是相对于整个屏幕布局。|
158 |
159 |
160 | + Android授权页隐私栏
161 |
162 | |方法|参数类型|说明|
163 | |:-----:|:----:|:----:|
164 | |privacyOne|String,String|设置开发者隐私条款1名称和URL(名称,url)|
165 | |privacyTwo|String,String|设置开发者隐私条款2名称和URL(名称,url)|
166 | |privacyColor|int,int|设置隐私条款名称颜色(基础文字颜色,协议文字颜色)|
167 | |privacyText|String,String,String,String|设置隐私条款名称外的文字。
如:登录即同意...和...、...并使用本机号码登录
参数1为:"登录即同意"。
参数2为:"和"。
参数3为:"、"。
参数4为:"并使用本机号码登录"。
|
168 | |privacyTextSize|int|设置隐私条款文字字体大小(单位:sp)。|
169 | |privacyTextGravityMode|string|隐私条款文本对齐方式,目前仅支持 left、center(默认左对齐)。|
170 | |privacyOffsetX|int|设置隐私条款相对于屏幕左边x轴偏移。|
171 | |privacyOffsetY|int|设置隐私条款相对于授权页面底部下边缘y偏移|
172 | |privacyW|int|设置隐私条款文字栏宽度。|
173 | |privacyH|int|隐私条款名称外的文字栏高度度(单位:dp)|
174 | |privacyBookSymbolEnable|boolean|设置隐私条款运营商协议名是否加书名号。|
175 | |privacyCheckboxHidden|boolean|设置隐私条款checkbox是否隐藏。|
176 | |privacyCheckboxSize|int|设置隐私条款checkbox尺寸。|
177 | |privacyCheckedImage|String|设置复选框选中时图片。|
178 | |privacyUncheckedImage|String|设置复选框未选中时图片。|
179 | |privacyCheckEnable|boolean|设置隐私条款默认选中状态,默认不选中。|
180 | |unAgreePrivacyHintToast| boolean| 值为true,隐私条款checkBox未选中时,登录按钮可以被点击 ,点击登录按钮会有toast提示,|
181 |
182 | + iOS授权页隐私栏
183 |
184 | |方法|参数类型|说明|
185 | |:-----:|:----:|:----:|
186 | |privacyOne|String,String|设置开发者隐私条款1名称和URL(名称,url)|
187 | |privacyTwo|String,String|设置开发者隐私条款2名称和URL(名称,url)|
188 | |privacyColor|int,int|设置隐私条款名称颜色(基础文字颜色,协议文字颜色)|
189 | |privacyText|String,String,String,String|设置隐私条款名称外的文字。
如:登录即同意...和...、...并使用本机号码登录
参数1为:"登录即同意"。
参数2为:"和"。
参数3为:"、"。
参数4为:"并使用本机号码登录"。
|
190 | |privacyTextSize|int|设置隐私条款文字字体大小(单位:sp)。|
191 | |privacyTextGravityMode|string|隐私条款文本对齐方式,目前仅支持 left、center(默认左对齐)。|
192 | |privacyX|int|设置隐私条款相对于屏幕左边x轴偏移。|
193 | |privacyY|int|设置隐私条款相对于授权页面底部下边缘y偏移|
194 | |privacyW|int|设置隐私条款文字栏宽度。|
195 | |privacyH|int|隐私条款名称外的文字栏高度度|
196 | |privacyConstraints|(centerX,centerY,width,height)|隐私条款label布局对象,统一设置约束条件,约束条件都是相对于整个屏幕布局,不可与privacyX,privacyY,,privacyW,privacyH同时使用|
197 | |checkViewConstraints| (centerX,centerY,width,height)|隐私条款checkBox布局对象,相对于整个屏幕布 |
198 | |privacyBookSymbolEnable|boolean|设置隐私条款运营商协议名是否加书名号。|
199 | |privacyCheckboxHidden|boolean|设置隐私条款checkbox是否隐藏。|
200 | |privacyCheckedImage|String|设置复选框选中时图片|
201 | |privacyUncheckedImage|String|设置复选框未选中时图片|
202 | |privacyCheckEnable|boolean|设置隐私条款默认选中状态,默认不选中。|
203 | |unAgreePrivacyCallBack| boolean| 值为true时, 当隐私条款checkBox未选中时,点击登录按钮时回调
204 | 当此参数存在时,未选中隐私条款的情况下,登录按钮可以被点击|
205 |
206 |
207 | + Android授权页隐私协议web页面
208 |
209 | |方法|参数类型|说明|
210 | |:-----:|:----:|:----:|
211 | |privacyWebNavColor|int|设置协议展示web页面导航栏背景颜色。|
212 | |privacyWebNavTitleSize|int|设置协议展示 web 页面导航栏标题文字大小(sp)|
213 | |privacyWebNavTitleColor|int|设置协议展示 web 页面导航栏标题文字颜色|
214 | |privacyWebNavReturnImage|String|协议展示web页面导航栏返回按钮图标|
215 |
216 | + iOS授权页隐私协议web页面
217 |
218 | |方法|参数类型|说明|
219 | |:-----:|:----:|:----:|
220 | |privacyWebNavColor|int|设置协议展示web页面导航栏背景颜色。|
221 | |privacyWebNavTitleSize|int|设置协议展示 web 页面导航栏标题文字大小(sp)|
222 | |privacyWebNavTitleColor|int|设置协议展示 web 页面导航栏标题文字颜色|
223 | |privacyWebNavReturnImage|String|协议展示web页面导航栏返回按钮图标|
224 |
225 | + Android授权页动画
226 |
227 | |方法|参数类型|说明|
228 | |:-----:|:----:|:----:|
229 | |privacyNeedStartAnim|boolean|设置拉起授权页时是否需要显示默认动画。默认展示。|
230 | |privacyNeedCloseAnim|boolean|设置关闭授权页时是否需要显示默认动画。默认展示。|
231 |
232 |
233 | + iOS授权页动画
234 |
235 | |方法|参数类型|说明|
236 | |:-----:|:----:|:----:|
237 | |privacyNeedStartAnim|boolean|设置拉起授权页时是否需要显示默认动画。默认展示。|
238 | |privacyNeedCloseAnim|boolean|设置关闭授权页时是否需要显示默认动画。默认展示。|
239 |
240 |
241 | + Android弹窗模式
242 |
243 | |方法|参数类型|说明|
244 | |:-----:|:----:|:----:|
245 | |privacyDialogTheme|int,int,int,int,boolean|设置授权页为弹窗模式(窗口宽度,窗口高度,窗口相对屏幕中心的x轴偏移量,窗口相对屏幕中心的y轴偏移量),单位dp。注:窗口不支持导航栏|
246 | |privacyNeedClose|boolean |弹窗是否需要关闭按钮|
247 | |privacyCloseTheme|int,int,int,int|弹窗关闭按钮偏移量,(按钮宽度,按钮高度,按钮相对屏幕中心的x轴偏移量,按钮相对屏幕中心的y轴偏移量) privacyNeedClose为true时,必须设置它的偏移量|
248 |
249 |
250 | + iOS弹窗模式
251 |
252 | |参数名称|参数类型|参数说明|
253 | |:-----:|:----:|:-----:|
254 | |showWindow|BOOL|是否弹窗,默认 no|
255 | |windowBackgroundImage|String|弹框内部背景图片|
256 | |windowBackgroundAlpha|float|弹窗外侧 透明度 0~1.0|
257 | |windowCornerRadius|float|弹窗圆角数值|
258 | |windowConstraints| 数组[float,float,float,float] |竖屏方向,弹窗布局对象(窗口宽度,窗口高度,窗口相对屏幕中心的x轴偏移量,窗口相对屏幕中心的y轴偏移量)|
259 | |windowHorizontalConstraints| 数组[float,float,float,float] |竖屏方向,弹窗布局对象(窗口宽度,窗口高度,窗口相对屏幕中心的x轴偏移量,窗口相对屏幕中心的y轴偏移量)|
260 | |windowCloseBtnConstraints|数组[float,float,float,float]|水平方向,弹窗布局对象(窗口宽度,窗口高度,窗口相对屏幕中心的x轴偏移量,窗口相对屏幕中心的y轴偏移量)|
261 | |windowCloseBtnHorizontalConstraints|数组[float,float,float,float]|水平方向,弹窗布局对象(窗口宽度,窗口高度,窗口相对屏幕中心的x轴偏移量,窗口相对屏幕中心的y轴偏移量)|
262 | |windowCloseBtnImgs|@[普通状态图片,高亮状态图片]|弹窗close按钮图片|
263 |
264 | + Android SDK授权页面添加自定义控件
265 |
266 | |方法|参数类型|说明|
267 | |:-----:|:----:|:----:|
268 | |customViewName|自定义view |在授权页面添加自定义rn视图|
269 |
270 | + iOS SDK授权页面添加自定义控件
271 |
272 | |方法|参数类型|说明|
273 | |:-----:|:----:|:----:|
274 | |customViewName|自定义view |在授权页面添加自定义rn视图|
275 |
276 |
277 |
278 |
279 |
--------------------------------------------------------------------------------