react-native-webview-bootpay 11.18.11 → 11.18.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/README.md +93 -83
  2. package/apple/BPCWebView.h +0 -19
  3. package/apple/BPCWebView.m +197 -336
  4. package/apple/BPCWebViewManager.h +0 -2
  5. package/apple/BPCWebViewManager.m +1 -25
  6. package/index.d.ts +5 -5
  7. package/ios/RNCWebView.xcodeproj/project.pbxproj +18 -18
  8. package/lib/WebView.android.d.ts +0 -3
  9. package/lib/WebView.android.d.ts.map +1 -1
  10. package/lib/WebView.android.js +4 -11
  11. package/lib/WebView.d.ts +2 -2
  12. package/lib/WebView.d.ts.map +1 -1
  13. package/lib/WebView.ios.d.ts +0 -1
  14. package/lib/WebView.ios.d.ts.map +1 -1
  15. package/lib/WebView.ios.js +7 -12
  16. package/lib/WebView.macos.d.ts.map +1 -1
  17. package/lib/WebView.macos.js +6 -10
  18. package/lib/WebView.windows.d.ts +2 -4
  19. package/lib/WebView.windows.d.ts.map +1 -1
  20. package/lib/WebView.windows.js +12 -18
  21. package/lib/WebViewShared.d.ts +0 -1
  22. package/lib/WebViewShared.d.ts.map +1 -1
  23. package/lib/WebViewTypes.d.ts +2 -113
  24. package/lib/WebViewTypes.d.ts.map +1 -1
  25. package/package.json +9 -10
  26. package/react-native-webview-bootpay.podspec +3 -1
  27. package/react-native.config.js +61 -47
  28. package/windows/ReactNativeWebView/ReactNativeWebView.vcxproj +20 -37
  29. package/windows/ReactNativeWebView/ReactPackageProvider.cpp +1 -5
  30. package/windows/ReactNativeWebView/ReactWebView.cpp +6 -2
  31. package/windows/ReactNativeWebView/ReactWebView.h +2 -3
  32. package/windows/ReactNativeWebView/ReactWebView.idl +1 -13
  33. package/windows/ReactNativeWebView/ReactWebViewManager.cpp +31 -36
  34. package/windows/ReactNativeWebView/packages.config +0 -2
  35. package/windows/ReactNativeWebView/pch.h +0 -6
  36. package/windows/ReactNativeWebView.sln +119 -81
  37. package/windows/WebViewBridgeComponent/PropertySheet.props +16 -0
  38. package/windows/{ReactNativeWebView → WebViewBridgeComponent}/WebBridge.cpp +1 -1
  39. package/windows/{ReactNativeWebView → WebViewBridgeComponent}/WebBridge.h +2 -2
  40. package/windows/{ReactNativeWebView → WebViewBridgeComponent}/WebBridge.idl +1 -1
  41. package/windows/WebViewBridgeComponent/WebViewBridgeComponent.def +3 -0
  42. package/windows/WebViewBridgeComponent/WebViewBridgeComponent.vcxproj +160 -0
  43. package/windows/WebViewBridgeComponent/WebViewBridgeComponent.vcxproj.filters +33 -0
  44. package/windows/WebViewBridgeComponent/packages.config +4 -0
  45. package/windows/WebViewBridgeComponent/pch.cpp +1 -0
  46. package/windows/WebViewBridgeComponent/pch.h +4 -0
  47. package/windows/WebViewBridgeComponent/readme.txt +23 -0
  48. package/android/.DS_Store +0 -0
  49. package/android/.gradle/6.8/executionHistory/executionHistory.bin +0 -0
  50. package/android/.gradle/6.8/executionHistory/executionHistory.lock +0 -0
  51. package/android/.gradle/6.8/fileChanges/last-build.bin +0 -0
  52. package/android/.gradle/6.8/fileHashes/fileHashes.bin +0 -0
  53. package/android/.gradle/6.8/fileHashes/fileHashes.lock +0 -0
  54. package/android/.gradle/6.8/gc.properties +0 -0
  55. package/android/.gradle/7.0-rc-1/dependencies-accessors/dependencies-accessors.lock +0 -0
  56. package/android/.gradle/7.0-rc-1/dependencies-accessors/gc.properties +0 -0
  57. package/android/.gradle/7.0-rc-1/executionHistory/executionHistory.lock +0 -0
  58. package/android/.gradle/7.0-rc-1/fileChanges/last-build.bin +0 -0
  59. package/android/.gradle/7.0-rc-1/fileHashes/fileHashes.lock +0 -0
  60. package/android/.gradle/7.0-rc-1/gc.properties +0 -0
  61. package/android/.gradle/7.1.1/dependencies-accessors/dependencies-accessors.lock +0 -0
  62. package/android/.gradle/7.1.1/dependencies-accessors/gc.properties +0 -0
  63. package/android/.gradle/7.1.1/executionHistory/executionHistory.lock +0 -0
  64. package/android/.gradle/7.1.1/fileChanges/last-build.bin +0 -0
  65. package/android/.gradle/7.1.1/fileHashes/fileHashes.lock +0 -0
  66. package/android/.gradle/7.1.1/gc.properties +0 -0
  67. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  68. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  69. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  70. package/android/.gradle/checksums/checksums.lock +0 -0
  71. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  72. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  73. package/android/.gradle/configuration-cache/gc.properties +0 -0
  74. package/android/.gradle/vcs-1/gc.properties +0 -0
  75. package/android/.idea/.gitignore +0 -3
  76. package/android/.idea/compiler.xml +0 -6
  77. package/android/.idea/gradle.xml +0 -19
  78. package/android/.idea/jarRepositories.xml +0 -35
  79. package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_0_0.xml +0 -13
  80. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_0_2_aar.xml +0 -16
  81. package/android/.idea/libraries/Gradle__androidx_arch_core_core_common_2_0_0.xml +0 -11
  82. package/android/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml +0 -13
  83. package/android/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml +0 -13
  84. package/android/.idea/libraries/Gradle__androidx_collection_collection_1_0_0.xml +0 -11
  85. package/android/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_0_0_aar.xml +0 -16
  86. package/android/.idea/libraries/Gradle__androidx_core_core_1_0_1_aar.xml +0 -16
  87. package/android/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml +0 -13
  88. package/android/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml +0 -13
  89. package/android/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml +0 -13
  90. package/android/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml +0 -16
  91. package/android/.idea/libraries/Gradle__androidx_fragment_fragment_1_0_0_aar.xml +0 -16
  92. package/android/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml +0 -13
  93. package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml +0 -13
  94. package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml +0 -13
  95. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_0_0.xml +0 -11
  96. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml +0 -13
  97. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml +0 -13
  98. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_0_0_aar.xml +0 -13
  99. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_0_0_aar.xml +0 -13
  100. package/android/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml +0 -13
  101. package/android/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml +0 -13
  102. package/android/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml +0 -16
  103. package/android/.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml +0 -13
  104. package/android/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml +0 -16
  105. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_0_1_aar.xml +0 -13
  106. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_0_0_aar.xml +0 -13
  107. package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_0_0_aar.xml +0 -13
  108. package/android/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml +0 -13
  109. package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_java_only_0_0_3.xml +0 -13
  110. package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_2_0_0_aar.xml +0 -15
  111. package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_2_0_0_aar.xml +0 -18
  112. package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_2_0_0_aar.xml +0 -18
  113. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_2_0_0_aar.xml +0 -18
  114. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_2_0_0_aar.xml +0 -18
  115. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_2_0_0_aar.xml +0 -15
  116. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagefilters_2_0_0_aar.xml +0 -15
  117. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagetranscoder_2_0_0_aar.xml +0 -15
  118. package/android/.idea/libraries/Gradle__com_facebook_infer_annotation_infer_annotation_0_11_2.xml +0 -13
  119. package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_62_2_aar.xml +0 -18
  120. package/android/.idea/libraries/Gradle__com_facebook_soloader_annotation_0_8_0_aar.xml +0 -15
  121. package/android/.idea/libraries/Gradle__com_facebook_soloader_nativeloader_0_8_0.xml +0 -13
  122. package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_8_0_aar.xml +0 -15
  123. package/android/.idea/libraries/Gradle__com_facebook_yoga_proguard_annotations_1_14_1.xml +0 -13
  124. package/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2.xml +0 -13
  125. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_1.xml +0 -13
  126. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_3_12_1.xml +0 -13
  127. package/android/.idea/libraries/Gradle__com_squareup_okio_okio_1_15_0.xml +0 -13
  128. package/android/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml +0 -13
  129. package/android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml +0 -13
  130. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_50.xml +0 -13
  131. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_50.xml +0 -13
  132. package/android/.idea/misc.xml +0 -9
  133. package/android/.idea/modules/android.iml +0 -124
  134. package/android/.idea/modules.xml +0 -8
  135. package/android/.idea/vcs.xml +0 -6
  136. package/android/.project +0 -34
  137. package/android/.settings/org.eclipse.buildship.core.prefs +0 -13
  138. package/android/build/.transforms/4e87ba7f47baac309fba5367e008cf44/results.bin +0 -1
  139. package/android/build/.transforms/4e87ba7f47baac309fba5367e008cf44/transformed/classes/classes.dex +0 -0
  140. package/android/build/.transforms/d5207f219c4292752e7af446f7cc2789/classes/classes.dex +0 -0
  141. package/android/build/.transforms/d5207f219c4292752e7af446f7cc2789.bin +0 -1
  142. package/android/build/generated/source/buildConfig/debug/kr/co/bootpay/webview/BuildConfig.java +0 -10
  143. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +0 -100
  144. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json +0 -18
  145. package/android/build/intermediates/aar_metadata/debug/aar-metadata.properties +0 -4
  146. package/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json +0 -1
  147. package/android/build/intermediates/compile_library_classes_jar/debug/classes.jar +0 -0
  148. package/android/build/intermediates/compile_r_class_jar/debug/R.jar +0 -0
  149. package/android/build/intermediates/compile_symbol_list/debug/R.txt +0 -1857
  150. package/android/build/intermediates/compiled_local_resources/debug/out/xml_file_provider_paths.xml.flat +0 -0
  151. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +0 -2
  152. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +0 -2
  153. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +0 -2
  154. package/android/build/intermediates/incremental/packageDebugResources/compile-file-map.properties +0 -2
  155. package/android/build/intermediates/incremental/packageDebugResources/merger.xml +0 -2
  156. package/android/build/intermediates/javac/debug/classes/kr/co/bootpay/webview/BPCWebChromeClient$1.class +0 -0
  157. package/android/build/intermediates/javac/debug/classes/kr/co/bootpay/webview/BPCWebChromeClient.class +0 -0
  158. package/android/build/intermediates/javac/debug/classes/kr/co/bootpay/webview/BPCWebView$1.class +0 -0
  159. package/android/build/intermediates/javac/debug/classes/kr/co/bootpay/webview/BPCWebView$BPCWebViewBridge.class +0 -0
  160. package/android/build/intermediates/javac/debug/classes/kr/co/bootpay/webview/BPCWebView$ProgressChangedFilter.class +0 -0
  161. package/android/build/intermediates/javac/debug/classes/kr/co/bootpay/webview/BPCWebView.class +0 -0
  162. package/android/build/intermediates/javac/debug/classes/kr/co/bootpay/webview/BPCWebViewClient.class +0 -0
  163. package/android/build/intermediates/javac/debug/classes/kr/co/bootpay/webview/BPCWebViewFileProvider.class +0 -0
  164. package/android/build/intermediates/javac/debug/classes/kr/co/bootpay/webview/BPCWebViewManager$1.class +0 -0
  165. package/android/build/intermediates/javac/debug/classes/kr/co/bootpay/webview/BPCWebViewManager$2.class +0 -0
  166. package/android/build/intermediates/javac/debug/classes/kr/co/bootpay/webview/BPCWebViewManager$3.class +0 -0
  167. package/android/build/intermediates/javac/debug/classes/kr/co/bootpay/webview/BPCWebViewManager$4.class +0 -0
  168. package/android/build/intermediates/javac/debug/classes/kr/co/bootpay/webview/BPCWebViewManager.class +0 -0
  169. package/android/build/intermediates/javac/debug/classes/kr/co/bootpay/webview/BPCWebViewModule$1.class +0 -0
  170. package/android/build/intermediates/javac/debug/classes/kr/co/bootpay/webview/BPCWebViewModule$2.class +0 -0
  171. package/android/build/intermediates/javac/debug/classes/kr/co/bootpay/webview/BPCWebViewModule$MimeType.class +0 -0
  172. package/android/build/intermediates/javac/debug/classes/kr/co/bootpay/webview/BPCWebViewModule$ShouldOverrideUrlLoadingLock$ShouldOverrideCallbackState.class +0 -0
  173. package/android/build/intermediates/javac/debug/classes/kr/co/bootpay/webview/BPCWebViewModule$ShouldOverrideUrlLoadingLock.class +0 -0
  174. package/android/build/intermediates/javac/debug/classes/kr/co/bootpay/webview/BPCWebViewModule.class +0 -0
  175. package/android/build/intermediates/javac/debug/classes/kr/co/bootpay/webview/BuildConfig.class +0 -0
  176. package/android/build/intermediates/javac/debug/classes/kr/co/bootpay/webview/WebViewConfig.class +0 -0
  177. package/android/build/intermediates/library_java_res/debug/res.jar +0 -0
  178. package/android/build/intermediates/library_manifest/debug/AndroidManifest.xml +0 -102
  179. package/android/build/intermediates/local_only_symbol_list/debug/R-def.txt +0 -3
  180. package/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +0 -200
  181. package/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml +0 -100
  182. package/android/build/intermediates/navigation_json/debug/navigation.json +0 -1
  183. package/android/build/intermediates/packaged_manifests/debug/output-metadata.json +0 -18
  184. package/android/build/intermediates/packaged_res/debug/xml/file_provider_paths.xml +0 -6
  185. package/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar +0 -0
  186. package/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt +0 -1377
  187. package/android/build/kotlin/compileDebugKotlin/build-history.bin +0 -0
  188. package/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab +0 -0
  189. package/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  190. package/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  191. package/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.len +0 -0
  192. package/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  193. package/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab_i +0 -0
  194. package/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  195. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  196. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  197. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  198. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  199. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  200. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  201. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  202. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  203. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  204. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  205. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  206. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  207. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  208. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  209. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/constants.tab +0 -0
  210. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  211. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  212. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  213. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  214. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  215. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
  216. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  217. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  218. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  219. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  220. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  221. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  222. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  223. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/proto.tab +0 -0
  224. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  225. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  226. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  227. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  228. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  229. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  230. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  231. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  232. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  233. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  234. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  235. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  236. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  237. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  238. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  239. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  240. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  241. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  242. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  243. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  244. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  245. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  246. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  247. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  248. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  249. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  250. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  251. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/counters.tab +0 -2
  252. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/file-to-id.tab +0 -0
  253. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  254. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  255. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/file-to-id.tab.len +0 -0
  256. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  257. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/file-to-id.tab_i +0 -0
  258. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  259. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/id-to-file.tab +0 -0
  260. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  261. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  262. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/id-to-file.tab.len +0 -0
  263. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  264. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/id-to-file.tab_i +0 -0
  265. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  266. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/lookups.tab +0 -0
  267. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/lookups.tab.keystream +0 -0
  268. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  269. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/lookups.tab.len +0 -0
  270. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/lookups.tab.values.at +0 -0
  271. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/lookups.tab_i +0 -0
  272. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/lookups.tab_i.len +0 -0
  273. package/android/build/kotlin/compileDebugKotlin/last-build.bin +0 -0
  274. package/android/build/outputs/logs/manifest-merger-debug-report.txt +0 -221
  275. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  276. package/android/build/tmp/compileDebugJavaWithJavac/source-classes-mapping.txt +0 -29
  277. package/android/build/tmp/kotlin-classes/debug/META-INF/react-native-webview-bootpay_debug.kotlin_module +0 -0
  278. package/android/build/tmp/kotlin-classes/debug/kr/co/bootpay/webview/BPCWebViewPackage.class +0 -0
  279. package/android/build/tmp/kotlin-classes/debug/kr/co/bootpay/webview/events/TopHttpErrorEvent$Companion.class +0 -0
  280. package/android/build/tmp/kotlin-classes/debug/kr/co/bootpay/webview/events/TopHttpErrorEvent.class +0 -0
  281. package/android/build/tmp/kotlin-classes/debug/kr/co/bootpay/webview/events/TopLoadingErrorEvent$Companion.class +0 -0
  282. package/android/build/tmp/kotlin-classes/debug/kr/co/bootpay/webview/events/TopLoadingErrorEvent.class +0 -0
  283. package/android/build/tmp/kotlin-classes/debug/kr/co/bootpay/webview/events/TopLoadingFinishEvent$Companion.class +0 -0
  284. package/android/build/tmp/kotlin-classes/debug/kr/co/bootpay/webview/events/TopLoadingFinishEvent.class +0 -0
  285. package/android/build/tmp/kotlin-classes/debug/kr/co/bootpay/webview/events/TopLoadingProgressEvent$Companion.class +0 -0
  286. package/android/build/tmp/kotlin-classes/debug/kr/co/bootpay/webview/events/TopLoadingProgressEvent.class +0 -0
  287. package/android/build/tmp/kotlin-classes/debug/kr/co/bootpay/webview/events/TopLoadingStartEvent$Companion.class +0 -0
  288. package/android/build/tmp/kotlin-classes/debug/kr/co/bootpay/webview/events/TopLoadingStartEvent.class +0 -0
  289. package/android/build/tmp/kotlin-classes/debug/kr/co/bootpay/webview/events/TopMessageEvent$Companion.class +0 -0
  290. package/android/build/tmp/kotlin-classes/debug/kr/co/bootpay/webview/events/TopMessageEvent.class +0 -0
  291. package/android/build/tmp/kotlin-classes/debug/kr/co/bootpay/webview/events/TopRenderProcessGoneEvent$Companion.class +0 -0
  292. package/android/build/tmp/kotlin-classes/debug/kr/co/bootpay/webview/events/TopRenderProcessGoneEvent.class +0 -0
  293. package/android/build/tmp/kotlin-classes/debug/kr/co/bootpay/webview/events/TopShouldStartLoadWithRequestEvent$Companion.class +0 -0
  294. package/android/build/tmp/kotlin-classes/debug/kr/co/bootpay/webview/events/TopShouldStartLoadWithRequestEvent.class +0 -0
  295. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  296. package/android/gradle/wrapper/gradle-wrapper.properties +0 -5
  297. package/android/gradlew +0 -185
  298. package/android/gradlew.bat +0 -89
  299. package/android/local.properties +0 -8
  300. package/android/src/.DS_Store +0 -0
  301. package/android/src/main/.DS_Store +0 -0
  302. package/android/src/main/java/.DS_Store +0 -0
  303. package/android/src/main/java/kr/.DS_Store +0 -0
  304. package/android/src/main/java/kr/co/.DS_Store +0 -0
  305. package/android/src/main/java/kr/co/bootpay/.DS_Store +0 -0
  306. package/ios/.DS_Store +0 -0
  307. package/ios/RNCWebView.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  308. package/ios/RNCWebView.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  309. package/ios/RNCWebView.xcodeproj/project.xcworkspace/xcuserdata/bootpay.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  310. package/ios/RNCWebView.xcodeproj/xcuserdata/bootpay.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
  311. package/lib/WebViewNativeComponent.android.d.ts +0 -4
  312. package/lib/WebViewNativeComponent.android.d.ts.map +0 -1
  313. package/lib/WebViewNativeComponent.android.js +0 -3
  314. package/lib/WebViewNativeComponent.ios.d.ts +0 -4
  315. package/lib/WebViewNativeComponent.ios.d.ts.map +0 -1
  316. package/lib/WebViewNativeComponent.ios.js +0 -3
  317. package/lib/WebViewNativeComponent.macos.d.ts +0 -4
  318. package/lib/WebViewNativeComponent.macos.d.ts.map +0 -1
  319. package/lib/WebViewNativeComponent.macos.js +0 -3
  320. package/lib/WebViewNativeComponent.windows.d.ts +0 -4
  321. package/lib/WebViewNativeComponent.windows.d.ts.map +0 -1
  322. package/lib/WebViewNativeComponent.windows.js +0 -3
  323. package/lib/index.d.ts +0 -4
  324. package/lib/index.d.ts.map +0 -1
  325. package/lib/index.js +0 -3
  326. package/windows/.gitignore +0 -353
  327. package/windows/ExperimentalFeatures.props +0 -12
  328. package/windows/ReactNativeWebView/ReactWebView2.cpp +0 -119
  329. package/windows/ReactNativeWebView/ReactWebView2.h +0 -43
  330. package/windows/ReactNativeWebView/ReactWebView2Manager.cpp +0 -147
  331. package/windows/ReactNativeWebView/ReactWebView2Manager.h +0 -54
@@ -18,13 +18,11 @@
18
18
  #import "objc/runtime.h"
19
19
 
20
20
  static NSTimer *keyboardTimer;
21
- static NSString *const HistoryShimName = @"ReactNativeHistoryShim";
22
- static NSString *const MessageHandlerName = @"ReactNativeWebView";
21
+ static NSString *const HistoryShimName = @"ReactNativeHistoryShimBootpay";
22
+ static NSString *const MessageHandlerName = @"BootpayRNWebView";
23
23
  static NSURLCredential* clientAuthenticationCredential;
24
24
  static NSDictionary* customCertificatesForHost;
25
25
 
26
- NSString *const CUSTOM_SELECTOR = @"_CUSTOM_SELECTOR_";
27
-
28
26
  #if !TARGET_OS_OSX
29
27
  // runtime trick to remove WKWebView keyboard default toolbar
30
28
  // see: http://stackoverflow.com/questions/19033292/ios-7-uiwebview-keyboard-issue/19042279#19042279
@@ -53,9 +51,9 @@ NSString *const CUSTOM_SELECTOR = @"_CUSTOM_SELECTOR_";
53
51
  @end
54
52
  @implementation BPCWKWebView
55
53
  - (void)scrollWheel:(NSEvent *)theEvent {
56
- BPCWebView *BPCWebView = (BPCWebView *)[self superview];
57
- RCTAssert([BPCWebView isKindOfClass:[BPCWebView class]], @"superview must be an BPCWebView");
58
- if (![BPCWebView scrollEnabled]) {
54
+ BPCWebView *bpcWebView = (BPCWebView *)[self superview];
55
+ RCTAssert([bpcWebView isKindOfClass:[bpcWebView class]], @"superview must be an BPCWebView");
56
+ if (![bpcWebView scrollEnabled]) {
59
57
  [[self nextResponder] scrollWheel:theEvent];
60
58
  return;
61
59
  }
@@ -149,9 +147,6 @@ NSString *const CUSTOM_SELECTOR = @"_CUSTOM_SELECTOR_";
149
147
  _savedAutomaticallyAdjustsScrollIndicatorInsets = NO;
150
148
  #endif
151
149
  _enableApplePay = NO;
152
- #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 150000 /* iOS 15 */
153
- _mediaCapturePermissionGrantType = BPCWebViewPermissionGrantType_Prompt;
154
- #endif
155
150
  }
156
151
 
157
152
  #if !TARGET_OS_OSX
@@ -193,126 +188,45 @@ NSString *const CUSTOM_SELECTOR = @"_CUSTOM_SELECTOR_";
193
188
  return self;
194
189
  }
195
190
 
196
- #if !TARGET_OS_OSX
197
- - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
198
- // Only allow long press gesture
199
- if ([otherGestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]]) {
200
- return YES;
201
- }else{
202
- return NO;
203
- }
204
- }
205
-
206
- // Listener for long presses
207
- - (void)startLongPress:(UILongPressGestureRecognizer *)pressSender
208
- {
209
- // When a long press ends, bring up our custom UIMenu
210
- if(pressSender.state == UIGestureRecognizerStateEnded) {
211
- if (!self.menuItems || self.menuItems.count == 0) {
212
- return;
213
- }
214
- UIMenuController *menuController = [UIMenuController sharedMenuController];
215
- NSMutableArray *menuControllerItems = [NSMutableArray arrayWithCapacity:self.menuItems.count];
216
-
217
- for(NSDictionary *menuItem in self.menuItems) {
218
- NSString *menuItemLabel = [RCTConvert NSString:menuItem[@"label"]];
219
- NSString *menuItemKey = [RCTConvert NSString:menuItem[@"key"]];
220
- NSString *sel = [NSString stringWithFormat:@"%@%@", CUSTOM_SELECTOR, menuItemKey];
221
- UIMenuItem *item = [[UIMenuItem alloc] initWithTitle: menuItemLabel
222
- action: NSSelectorFromString(sel)];
223
-
224
- [menuControllerItems addObject: item];
225
- }
226
-
227
- menuController.menuItems = menuControllerItems;
228
- [menuController setMenuVisible:YES animated:YES];
229
- }
230
- }
231
-
232
- #endif // !TARGET_OS_OSX
233
-
234
191
  - (void)dealloc
235
192
  {
236
193
  [[NSNotificationCenter defaultCenter] removeObserver:self];
237
194
  }
238
195
 
239
- - (void)tappedMenuItem:(NSString *)eventType
196
+ /**
197
+ * See https://stackoverflow.com/questions/25713069/why-is-wkwebview-not-opening-links-with-target-blank/25853806#25853806 for details.
198
+ */
199
+ - (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures
240
200
  {
241
- // Get the selected text
242
- // NOTE: selecting text in an iframe or shadow DOM will not work
243
- [self.webView evaluateJavaScript: @"window.getSelection().toString()" completionHandler: ^(id result, NSError *error) {
244
- if (error != nil) {
245
- RCTLogWarn(@"%@", [NSString stringWithFormat:@"Error evaluating injectedJavaScript: This is possibly due to an unsupported return type. Try adding true to the end of your injectedJavaScript string. %@", error]);
246
- } else {
247
- if (self.onCustomMenuSelection) {
248
- NSPredicate *filter = [NSPredicate predicateWithFormat:@"key contains[c] %@ ",eventType];
249
- NSArray *filteredMenuItems = [self.menuItems filteredArrayUsingPredicate:filter];
250
- NSDictionary *selectedMenuItem = filteredMenuItems[0];
251
- NSString *label = [RCTConvert NSString:selectedMenuItem[@"label"]];
252
- self.onCustomMenuSelection(@{
253
- @"key": eventType,
254
- @"label": label,
255
- @"selectedText": result
256
- });
257
- } else {
258
- RCTLogWarn(@"Error evaluating onCustomMenuSelection: You must implement an `onCustomMenuSelection` callback when using custom menu items");
259
- }
260
- }
261
- }];
262
- }
201
+ //팝업관련
202
+ NSLog(@"------ popup url: %@", navigationAction.request.URL.absoluteString);
263
203
 
264
- // Overwrite method that interprets which action to call upon UIMenu Selection
265
- // https://developer.apple.com/documentation/objectivec/nsobject/1571960-methodsignatureforselector
266
- - (NSMethodSignature *)methodSignatureForSelector:(SEL)sel
267
- {
268
- NSMethodSignature *existingSelector = [super methodSignatureForSelector:sel];
269
- if (existingSelector) {
270
- return existingSelector;
271
- }
272
- return [super methodSignatureForSelector:@selector(tappedMenuItem:)];
273
- }
204
+ if([navigationAction.request.URL.absoluteString rangeOfString:@"bootpay.co.kr"].location == NSNotFound) {
205
+ NSLog(@"111");
274
206
 
275
- // Needed to forward messages to other objects
276
- // https://developer.apple.com/documentation/objectivec/nsobject/1571955-forwardinvocation
277
- - (void)forwardInvocation:(NSInvocation *)invocation
278
- {
279
- NSString *sel = NSStringFromSelector([invocation selector]);
280
- NSRange match = [sel rangeOfString:CUSTOM_SELECTOR];
281
- if (match.location == 0) {
282
- [self tappedMenuItem:[sel substringFromIndex:17]];
207
+ //원래 로직
208
+ if (!navigationAction.targetFrame.isMainFrame) {
209
+ [webView loadRequest:navigationAction.request];
210
+ }
211
+ return nil;
283
212
  } else {
284
- [super forwardInvocation:invocation];
285
- }
286
- }
287
213
 
288
- // Allows the instance to respond to UIMenuController Actions
289
- - (BOOL)canBecomeFirstResponder
290
- {
291
- return YES;
292
- }
214
+ NSLog(@"222");
293
215
 
294
- // Control which items show up on the UIMenuController
295
- - (BOOL)canPerformAction:(SEL)action withSender:(id)sender
296
- {
297
- NSString *sel = NSStringFromSelector(action);
298
- // Do any of them have our custom keys?
299
- NSRange match = [sel rangeOfString:CUSTOM_SELECTOR];
216
+ WKWebView *popupView = [[WKWebView alloc] initWithFrame:webView.bounds configuration:configuration];
300
217
 
301
- if (match.location == 0) {
302
- return YES;
303
- }
304
- return NO;
218
+ popupView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
219
+ popupView.navigationDelegate = self;
220
+ popupView.UIDelegate = self;
221
+ [webView addSubview:popupView];
222
+
223
+ return popupView;
224
+ }
305
225
  }
306
226
 
307
- /**
308
- * See https://stackoverflow.com/questions/25713069/why-is-wkwebview-not-opening-links-with-target-blank/25853806#25853806 for details.
309
- */
310
- - (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures
311
- {
312
- if (!navigationAction.targetFrame.isMainFrame) {
313
- [webView loadRequest:navigationAction.request];
314
- }
315
- return nil;
227
+
228
+ - (void)webViewDidClose:(WKWebView *)webView {
229
+ [webView removeFromSuperview];
316
230
  }
317
231
 
318
232
  - (WKWebViewConfiguration *)setUpWkWebViewConfig
@@ -335,14 +249,6 @@ NSString *const CUSTOM_SELECTOR = @"_CUSTOM_SELECTOR_";
335
249
  [prefs setValue:@TRUE forKey:@"javaScriptCanOpenWindowsAutomatically"];
336
250
  _prefsUsed = YES;
337
251
  }
338
- #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 140500 /* iOS 14.5 */
339
- if (@available(iOS 14.5, *)) {
340
- if (!_textInteractionEnabled) {
341
- [prefs setValue:@FALSE forKey:@"textInteractionEnabled"];
342
- _prefsUsed = YES;
343
- }
344
- }
345
- #endif
346
252
  if (_prefsUsed) {
347
253
  wkWebViewConfig.preferences = prefs;
348
254
  }
@@ -430,7 +336,9 @@ NSString *const CUSTOM_SELECTOR = @"_CUSTOM_SELECTOR_";
430
336
  [_webView addObserver:self forKeyPath:@"estimatedProgress" options:NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew context:nil];
431
337
  _webView.allowsBackForwardNavigationGestures = _allowsBackForwardNavigationGestures;
432
338
 
433
- _webView.customUserAgent = _userAgent;
339
+ if (_userAgent) {
340
+ _webView.customUserAgent = _userAgent;
341
+ }
434
342
  #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 110000 /* __IPHONE_11_0 */
435
343
  if ([_webView.scrollView respondsToSelector:@selector(setContentInsetAdjustmentBehavior:)]) {
436
344
  _webView.scrollView.contentInsetAdjustmentBehavior = _savedContentInsetAdjustmentBehavior;
@@ -447,18 +355,6 @@ NSString *const CUSTOM_SELECTOR = @"_CUSTOM_SELECTOR_";
447
355
  [self setKeyboardDisplayRequiresUserAction: _savedKeyboardDisplayRequiresUserAction];
448
356
  [self visitSource];
449
357
  }
450
- #if !TARGET_OS_OSX
451
- // Allow this object to recognize gestures
452
- if (self.menuItems != nil) {
453
- UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(startLongPress:)];
454
- longPress.delegate = self;
455
-
456
- longPress.minimumPressDuration = 0.4f;
457
- longPress.numberOfTouchesRequired = 1;
458
- longPress.cancelsTouchesInView = YES;
459
- [self addGestureRecognizer:longPress];
460
- }
461
- #endif // !TARGET_OS_OSX
462
358
  }
463
359
 
464
360
  // Update webview property when the component prop changes.
@@ -683,39 +579,38 @@ NSString *const CUSTOM_SELECTOR = @"_CUSTOM_SELECTOR_";
683
579
  }
684
580
  [_webView loadHTMLString:html baseURL:baseURL];
685
581
  return;
686
- }
687
- // Add cookie for subsequent resource requests sent by page itself, if cookie was set in headers on WebView
688
- NSString *headerCookie = [RCTConvert NSString:_source[@"headers"][@"cookie"]];
582
+ }
583
+ //Add cookie for subsequent resource requests sent by page itself, if cookie was set in headers on WebView
584
+ NSString *headerCookie = [RCTConvert NSString:_source[@"headers"][@"cookie"]];
689
585
  if(headerCookie) {
690
586
  NSDictionary *headers = [NSDictionary dictionaryWithObjectsAndKeys:headerCookie,@"Set-Cookie",nil];
691
587
  NSURL *urlString = [NSURL URLWithString:_source[@"uri"]];
692
588
  NSArray *httpCookies = [NSHTTPCookie cookiesWithResponseHeaderFields:headers forURL:urlString];
693
- [self writeCookiesToWebView:httpCookies completion:nil];
589
+ for (NSHTTPCookie *httpCookie in httpCookies) {
590
+ [_webView.configuration.websiteDataStore.httpCookieStore setCookie:httpCookie completionHandler:nil];
591
+ }
694
592
  }
695
593
 
696
594
  NSURLRequest *request = [self requestForSource:_source];
697
-
698
- [self syncCookiesToWebView:^{
699
- // Because of the way React works, as pages redirect, we actually end up
700
- // passing the redirect urls back here, so we ignore them if trying to load
701
- // the same url. We'll expose a call to 'reload' to allow a user to load
702
- // the existing page.
703
- if ([request.URL isEqual:_webView.URL]) {
704
- return;
705
- }
706
- if (!request.URL) {
707
- // Clear the webview
708
- [_webView loadHTMLString:@"" baseURL:nil];
709
- return;
710
- }
711
- if (request.URL.host) {
712
- [_webView loadRequest:request];
713
- }
714
- else {
715
- NSURL* readAccessUrl = _allowingReadAccessToURL ? [RCTConvert NSURL:_allowingReadAccessToURL] : request.URL;
716
- [_webView loadFileURL:request.URL allowingReadAccessToURL:readAccessUrl];
717
- }
718
- }];
595
+ // Because of the way React works, as pages redirect, we actually end up
596
+ // passing the redirect urls back here, so we ignore them if trying to load
597
+ // the same url. We'll expose a call to 'reload' to allow a user to load
598
+ // the existing page.
599
+ if ([request.URL isEqual:_webView.URL]) {
600
+ return;
601
+ }
602
+ if (!request.URL) {
603
+ // Clear the webview
604
+ [_webView loadHTMLString:@"" baseURL:nil];
605
+ return;
606
+ }
607
+ if (request.URL.host) {
608
+ [_webView loadRequest:request];
609
+ }
610
+ else {
611
+ NSURL* readAccessUrl = _allowingReadAccessToURL ? [RCTConvert NSURL:_allowingReadAccessToURL] : request.URL;
612
+ [_webView loadFileURL:request.URL allowingReadAccessToURL:readAccessUrl];
613
+ }
719
614
  }
720
615
 
721
616
  #if !TARGET_OS_OSX
@@ -831,12 +726,6 @@ NSString *const CUSTOM_SELECTOR = @"_CUSTOM_SELECTOR_";
831
726
  }
832
727
  #endif // !TARGET_OS_OSX
833
728
 
834
- - (void)setUserAgent:(NSString*)userAgent
835
- {
836
- _userAgent = userAgent;
837
- _webView.customUserAgent = userAgent;
838
- }
839
-
840
729
  - (void)setScrollEnabled:(BOOL)scrollEnabled
841
730
  {
842
731
  _scrollEnabled = scrollEnabled;
@@ -972,15 +861,6 @@ NSString *const CUSTOM_SELECTOR = @"_CUSTOM_SELECTOR_";
972
861
  }
973
862
  }
974
863
  }
975
- if ([[challenge protectionSpace] authenticationMethod] == NSURLAuthenticationMethodHTTPBasic) {
976
- NSString *username = [_basicAuthCredential valueForKey:@"username"];
977
- NSString *password = [_basicAuthCredential valueForKey:@"password"];
978
- if (username && password) {
979
- NSURLCredential *credential = [NSURLCredential credentialWithUser:username password:password persistence:NSURLCredentialPersistenceNone];
980
- completionHandler(NSURLSessionAuthChallengeUseCredential, credential);
981
- return;
982
- }
983
- }
984
864
  completionHandler(NSURLSessionAuthChallengePerformDefaultHandling, nil);
985
865
  }
986
866
 
@@ -1075,32 +955,6 @@ NSString *const CUSTOM_SELECTOR = @"_CUSTOM_SELECTOR_";
1075
955
  #endif // !TARGET_OS_OSX
1076
956
  }
1077
957
 
1078
- #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 150000 /* iOS 15 */
1079
- /**
1080
- * Media capture permissions (prevent multiple prompts)
1081
- */
1082
- - (void) webView:(WKWebView *)webView
1083
- requestMediaCapturePermissionForOrigin:(WKSecurityOrigin *)origin
1084
- initiatedByFrame:(WKFrameInfo *)frame
1085
- type:(WKMediaCaptureType)type
1086
- decisionHandler:(void (^)(WKPermissionDecision decision))decisionHandler {
1087
- if (_mediaCapturePermissionGrantType == BPCWebViewPermissionGrantType_GrantIfSameHost_ElsePrompt || _mediaCapturePermissionGrantType == BPCWebViewPermissionGrantType_GrantIfSameHost_ElseDeny) {
1088
- if ([origin.host isEqualToString:webView.URL.host]) {
1089
- decisionHandler(WKPermissionDecisionGrant);
1090
- } else {
1091
- WKPermissionDecision decision = _mediaCapturePermissionGrantType == BPCWebViewPermissionGrantType_GrantIfSameHost_ElsePrompt ? WKPermissionDecisionPrompt : WKPermissionDecisionDeny;
1092
- decisionHandler(decision);
1093
- }
1094
- } else if (_mediaCapturePermissionGrantType == BPCWebViewPermissionGrantType_Deny) {
1095
- decisionHandler(WKPermissionDecisionDeny);
1096
- } else if (_mediaCapturePermissionGrantType == BPCWebViewPermissionGrantType_Grant) {
1097
- decisionHandler(WKPermissionDecisionGrant);
1098
- } else {
1099
- decisionHandler(WKPermissionDecisionPrompt);
1100
- }
1101
- }
1102
- #endif
1103
-
1104
958
  #if !TARGET_OS_OSX
1105
959
  /**
1106
960
  * topViewController
@@ -1131,129 +985,169 @@ NSString *const CUSTOM_SELECTOR = @"_CUSTOM_SELECTOR_";
1131
985
  }
1132
986
 
1133
987
 
1134
- - (BOOL) isItunesURL:(NSString*) url {
1135
- NSString *itunesRegexp = @"\\/\\/itunes\\.apple\\.com\\/";
1136
- NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", itunesRegexp];
1137
- return [predicate evaluateWithObject: url];
988
+ - (NSString*) getQueryStringParameter:(NSString*)url :(NSString*)param {
989
+ NSMutableDictionary *queryStringDictionary = [[NSMutableDictionary alloc] init];
990
+ NSArray *urlComponents = [url componentsSeparatedByString:@"&"];
991
+
992
+ for (NSString *keyValuePair in urlComponents)
993
+ {
994
+ NSArray *pairComponents = [keyValuePair componentsSeparatedByString:@"="];
995
+ NSString *key = [[pairComponents firstObject] stringByRemovingPercentEncoding];
996
+ NSString *value = [[pairComponents lastObject] stringByRemovingPercentEncoding];
997
+
998
+ if([param isEqualToString:key]) {
999
+ return value;
1000
+ }
1001
+ }
1002
+
1003
+ return @"";
1138
1004
  }
1139
1005
 
1140
- - (void) goInstallApp:(WKNavigationAction *)navigationAction {
1141
- NSString * url = navigationAction.request.URL.absoluteString;
1142
- NSString * itunesUrl = @"";
1143
- if([url hasPrefix:@"kftc-bankpay"]) {
1006
+ - (void) startAppToApp:(NSURL*) url {
1007
+ UIApplication *application = [UIApplication sharedApplication];
1008
+
1009
+ // if (@available(iOS 10.0, *)) {
1010
+ // [application openURL:url options:@{} completionHandler:nil];
1011
+ // } else {
1012
+ // [application openURL:url];
1013
+ // }
1014
+
1015
+ if (@available(iOS 10.0, *)) {
1016
+ [application openURL:url options:@{} completionHandler: ^(BOOL success) {
1017
+ if(success == false) {
1018
+ [self startItunesToInstall:url];
1019
+ }
1020
+ }];
1021
+ } else {
1022
+ [application openURL:url];
1023
+ }
1024
+ }
1025
+
1026
+
1027
+ - (void) startItunesToInstall:(NSURL*) url {
1028
+ NSString *sUrl = url.absoluteString;
1029
+ NSString *itunesUrl = @"";
1030
+
1031
+ if([sUrl hasPrefix: @"kfc-bankpay"]) {
1144
1032
  itunesUrl = @"https://apps.apple.com/kr/app/%EB%B1%85%ED%81%AC%ED%8E%98%EC%9D%B4-%EA%B8%88%EC%9C%B5%EA%B8%B0%EA%B4%80-%EA%B3%B5%EB%8F%99-%EA%B3%84%EC%A2%8C%EC%9D%B4%EC%B2%B4-%EA%B2%B0%EC%A0%9C-%EC%A0%9C%EB%A1%9C%ED%8E%98%EC%9D%B4/id398456030";
1145
- } else if([url hasPrefix:@"ispmobile"]) {
1146
- itunesUrl = @"https://apps.apple.com/kr/app/isp-%ED%8E%98%EC%9D%B4%EB%B6%81/id369125087";
1147
- } else if([url hasPrefix:@"hdcardappcardansimclick"]) {
1033
+ } else if([sUrl hasPrefix: @"ispmobile"]) {
1034
+ itunesUrl = @"https://apps.apple.com/kr/app/isp/id369125087";
1035
+ } else if([sUrl hasPrefix: @"hdcardappcardansimclick"] || [sUrl hasPrefix: @"smhyundaiansimclick"]) {
1148
1036
  itunesUrl = @"https://apps.apple.com/kr/app/%ED%98%84%EB%8C%80%EC%B9%B4%EB%93%9C/id702653088";
1149
- } else if([url hasPrefix:@"shinhan-sr-ansimclick"]) {
1037
+ } else if([sUrl hasPrefix: @"shinhan-sr-ansimclick"] || [sUrl hasPrefix: @"smshinhanansimclick"]) {
1150
1038
  itunesUrl = @"https://apps.apple.com/kr/app/%EC%8B%A0%ED%95%9C%ED%8E%98%EC%9D%B4%ED%8C%90/id572462317";
1151
- } else if([url hasPrefix:@"kb-acp"]) {
1039
+ } else if([sUrl hasPrefix: @"kb-acp"]) {
1152
1040
  itunesUrl = @"https://apps.apple.com/kr/app/kb-pay/id695436326";
1153
- } else if([url hasPrefix:@"mpocket.online.ansimclick"]) {
1041
+ } else if([sUrl hasPrefix: @"liivbank"]) {
1042
+ itunesUrl = @"https://apps.apple.com/kr/app/%EB%A6%AC%EB%B8%8C/id1126232922";
1043
+ } else if([sUrl hasPrefix: @"mpocket.online.ansimclick"] || [sUrl hasPrefix: @"ansimclickscard"] || [sUrl hasPrefix: @"ansimclickipcollect"] || [sUrl hasPrefix: @"samsungpay"] || [sUrl hasPrefix: @"scardcertiapp"]) {
1154
1044
  itunesUrl = @"https://apps.apple.com/kr/app/%EC%82%BC%EC%84%B1%EC%B9%B4%EB%93%9C/id535125356";
1155
- } else if([url hasPrefix:@"lottesmartpay"]) {
1045
+ } else if([sUrl hasPrefix: @"lottesmartpay"]) {
1156
1046
  itunesUrl = @"https://apps.apple.com/us/app/%EB%A1%AF%EB%8D%B0%EC%B9%B4%EB%93%9C-%EC%95%B1%EC%B9%B4%EB%93%9C/id688047200";
1157
- } else if([url hasPrefix:@"lotteappcard"]) {
1158
- itunesUrl = @"https://apps.apple.com/us/app/%EB%A1%AF%EB%8D%B0%EC%B9%B4%EB%93%9C-%EC%95%B1%EC%B9%B4%EB%93%9C/id688047200";
1159
- } else if([url hasPrefix:@"cloudpay"]) {
1160
- itunesUrl = @"https://apps.apple.com/kr/app/%ED%95%98%EB%82%98%EC%9B%90%ED%81%90-%EC%B9%B4%EB%93%9C-%ED%95%98%EB%82%98%EC%B9%B4%EB%93%9C/id427543371";
1161
- } else if([url hasPrefix:@"nhappvardansimclick"]) {
1047
+ } else if([sUrl hasPrefix: @"lotteappcard"]) {
1048
+ itunesUrl = @"https://apps.apple.com/kr/app/%EB%94%94%EC%A7%80%EB%A1%9C%EC%B9%B4-%EB%A1%AF%EB%8D%B0%EC%B9%B4%EB%93%9C/id688047200";
1049
+ } else if([sUrl hasPrefix: @"newsmartpib"]) {
1050
+ itunesUrl = @"https://apps.apple.com/kr/app/%EC%9A%B0%EB%A6%AC-won-%EB%B1%85%ED%82%B9/id1470181651";
1051
+ } else if([sUrl hasPrefix: @"com.wooricard.wcard"]) {
1052
+ itunesUrl = @"https://apps.apple.com/kr/app/%EC%9A%B0%EB%A6%ACwon%EC%B9%B4%EB%93%9C/id1499598869";
1053
+ } else if([sUrl hasPrefix: @"citispay"] || [sUrl hasPrefix: @"citicardappkr"] || [sUrl hasPrefix: @"citimobileapp"]) {
1054
+ itunesUrl = @"https://apps.apple.com/kr/app/%EC%94%A8%ED%8B%B0%EB%AA%A8%EB%B0%94%EC%9D%BC/id1179759666";
1055
+ } else if([sUrl hasPrefix: @"shinsegaeeasypayment"]) {
1056
+ itunesUrl = @"https://apps.apple.com/kr/app/ssgpay/id666237916";
1057
+ } else if([sUrl hasPrefix: @"cloudpay"]) {
1058
+ itunesUrl = @"https://apps.apple.com/kr/app/%ED%95%98%EB%82%98%EC%B9%B4%EB%93%9C-%EC%9B%90%ED%81%90%ED%8E%98%EC%9D%B4/id847268987";
1059
+ } else if([sUrl hasPrefix: @"hanawalletmembers"]) {
1060
+ itunesUrl = @"https://apps.apple.com/kr/app/n-wallet/id492190784";
1061
+ } else if([sUrl hasPrefix: @"nhappvardansimclick"]) {
1162
1062
  itunesUrl = @"https://apps.apple.com/kr/app/%EC%98%AC%EC%9B%90%ED%8E%98%EC%9D%B4-nh%EC%95%B1%EC%B9%B4%EB%93%9C/id1177889176";
1163
- } else if([url hasPrefix:@"nhallonepayansimclick"]) {
1063
+ } else if([sUrl hasPrefix: @"nhallonepayansimclick"] || [sUrl hasPrefix: @"nhappcardansimclick"] || [sUrl hasPrefix: @"nhallonepayansimclick"] || [sUrl hasPrefix: @"nonghyupcardansimclick"]) {
1164
1064
  itunesUrl = @"https://apps.apple.com/kr/app/%EC%98%AC%EC%9B%90%ED%8E%98%EC%9D%B4-nh%EC%95%B1%EC%B9%B4%EB%93%9C/id1177889176";
1165
- } else if([url hasPrefix:@"citispay"]) {
1166
- itunesUrl = @"https://apps.apple.com/kr/app/%EC%94%A8%ED%8B%B0%EB%AA%A8%EB%B0%94%EC%9D%BC/id1179759666";
1167
- } else if([url hasPrefix:@"payco"]) {
1168
- itunesUrl = @"https://apps.apple.com/kr/app/payco-%ED%8E%98%EC%9D%B4%EC%BD%94-%ED%98%9C%ED%83%9D%EA%B9%8C%EC%A7%80-%EB%98%91%EB%98%91%ED%95%9C-%EA%B0%84%ED%8E%B8%EA%B2%B0%EC%A0%9C/id924292102";
1169
- } else if([url hasPrefix:@"naversearchapp"]) {
1065
+ } else if([sUrl hasPrefix: @"payco"]) {
1066
+ itunesUrl = @"https://apps.apple.com/kr/app/payco/id924292102";
1067
+ } else if([sUrl hasPrefix: @"lpayapp"] || [sUrl hasPrefix: @"lmslpay"]) {
1068
+ itunesUrl = @"https://apps.apple.com/kr/app/l-point-with-l-pay/id473250588";
1069
+ } else if([sUrl hasPrefix: @"naversearchapp"]) {
1170
1070
  itunesUrl = @"https://apps.apple.com/kr/app/%EB%84%A4%EC%9D%B4%EB%B2%84-naver/id393499958";
1071
+ } else if([sUrl hasPrefix: @"tauthlink"]) {
1072
+ itunesUrl = @"https://apps.apple.com/kr/app/pass-by-skt/id1141258007";
1073
+ } else if([sUrl hasPrefix: @"uplusauth"] || [sUrl hasPrefix: @"upluscorporation"] ) {
1074
+ itunesUrl = @"https://apps.apple.com/kr/app/pass-by-u/id1147394645";
1075
+ } else if([sUrl hasPrefix: @"ktauthexternalcall"]) {
1076
+ itunesUrl = @"https://apps.apple.com/kr/app/pass-by-kt/id1134371550";
1077
+ } else if([sUrl hasPrefix: @"supertoss"]) {
1078
+ itunesUrl = @"https://apps.apple.com/kr/app/%ED%86%A0%EC%8A%A4/id839333328";
1079
+ } else if([sUrl hasPrefix: @"kakaotalk"]) {
1080
+ itunesUrl = @"https://apps.apple.com/kr/app/kakaotalk/id362057947";
1081
+ } else if([sUrl hasPrefix: @"chaipayment"]) {
1082
+ itunesUrl = @"https://apps.apple.com/kr/app/%EC%B0%A8%EC%9D%B4/id1459979272";
1083
+ } else if([sUrl hasPrefix: @"ukbanksmartbanknonloginpay"]) {
1084
+ itunesUrl = @"https://itunes.apple.com/kr/developer/%EC%BC%80%EC%9D%B4%EB%B1%85%ED%81%AC/id1178872626?mt=8";
1171
1085
  }
1172
- if([itunesUrl length] > 0) {
1173
- [self openAppURLString: itunesUrl];
1174
- }
1175
- }
1176
-
1177
-
1178
- - (void) startAppToApp:(NSURL*)url {
1179
- UIApplication *application = [UIApplication sharedApplication];
1180
- if (@available(iOS 10.0, *)) {
1181
- [application openURL:url options:@{} completionHandler:nil];
1182
- } else {
1183
- [application openURL:url];
1184
- }
1185
- }
1186
-
1187
- - (void) openAppURL:(WKNavigationAction *)navigationAction {
1188
- if (@available(iOS 10.0, *)) {
1189
- [[UIApplication sharedApplication] openURL:navigationAction.request.URL options:@{} completionHandler:^(BOOL success) {}];
1190
- } else {
1191
- [[UIApplication sharedApplication] openURL:navigationAction.request.URL];
1086
+
1087
+ if(itunesUrl.length > 0) {
1088
+ NSURL *appstore = [NSURL URLWithString: itunesUrl];
1089
+ [self startAppToApp: appstore];
1192
1090
  }
1193
1091
  }
1194
1092
 
1195
- - (void) openAppURLString:(NSString *)url {
1196
- if (@available(iOS 10.0, *)) {
1197
- [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url] options:@{} completionHandler:^(BOOL success) {}];
1198
- } else {
1199
- [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
1200
- }
1093
+ - (BOOL) isItunesURL:(NSString*) urlString {
1094
+ NSRange match = [urlString rangeOfString: @"itunes.apple.com"];
1095
+ return match.location != NSNotFound;
1201
1096
  }
1202
1097
 
1203
1098
 
1204
-
1205
- - (void) navigationOriginRN:(WKWebView *)webView
1099
+ - (void) navigationOriginRN:(WKWebView *)webView
1206
1100
  decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction
1207
1101
  decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
1208
1102
  {
1209
- static NSDictionary<NSNumber *, NSString *> *navigationTypes;
1210
- static dispatch_once_t onceToken;
1211
-
1212
- dispatch_once(&onceToken, ^{
1213
- navigationTypes = @{
1214
- @(WKNavigationTypeLinkActivated): @"click",
1215
- @(WKNavigationTypeFormSubmitted): @"formsubmit",
1216
- @(WKNavigationTypeBackForward): @"backforward",
1217
- @(WKNavigationTypeReload): @"reload",
1218
- @(WKNavigationTypeFormResubmitted): @"formresubmit",
1219
- @(WKNavigationTypeOther): @"other",
1220
- };
1221
- });
1222
-
1223
- WKNavigationType navigationType = navigationAction.navigationType;
1224
- NSURLRequest *request = navigationAction.request;
1225
- BOOL isTopFrame = [request.URL isEqual:request.mainDocumentURL];
1226
-
1227
- if (_onShouldStartLoadWithRequest) {
1228
- NSMutableDictionary<NSString *, id> *event = [self baseEvent];
1229
- [event addEntriesFromDictionary: @{
1230
- @"url": (request.URL).absoluteString,
1231
- @"mainDocumentURL": (request.mainDocumentURL).absoluteString,
1232
- @"navigationType": navigationTypes[@(navigationType)],
1233
- @"isTopFrame": @(isTopFrame)
1234
- }];
1235
- if (![self.delegate webView:self
1236
- shouldStartLoadForRequest:event
1237
- withCallback:_onShouldStartLoadWithRequest]) {
1238
- decisionHandler(WKNavigationActionPolicyCancel);
1239
- return;
1240
- }
1241
- }
1103
+ static NSDictionary<NSNumber *, NSString *> *navigationTypes;
1104
+ static dispatch_once_t onceToken;
1105
+
1106
+ dispatch_once(&onceToken, ^{
1107
+ navigationTypes = @{
1108
+ @(WKNavigationTypeLinkActivated): @"click",
1109
+ @(WKNavigationTypeFormSubmitted): @"formsubmit",
1110
+ @(WKNavigationTypeBackForward): @"backforward",
1111
+ @(WKNavigationTypeReload): @"reload",
1112
+ @(WKNavigationTypeFormResubmitted): @"formresubmit",
1113
+ @(WKNavigationTypeOther): @"other",
1114
+ };
1115
+ });
1116
+
1117
+ WKNavigationType navigationType = navigationAction.navigationType;
1118
+ NSURLRequest *request = navigationAction.request;
1119
+ BOOL isTopFrame = [request.URL isEqual:request.mainDocumentURL];
1242
1120
 
1243
- if (_onLoadingStart) {
1244
- // We have this check to filter out iframe requests and whatnot
1245
- if (isTopFrame) {
1121
+ if (_onShouldStartLoadWithRequest) {
1246
1122
  NSMutableDictionary<NSString *, id> *event = [self baseEvent];
1247
1123
  [event addEntriesFromDictionary: @{
1248
1124
  @"url": (request.URL).absoluteString,
1249
- @"navigationType": navigationTypes[@(navigationType)]
1125
+ @"mainDocumentURL": (request.mainDocumentURL).absoluteString,
1126
+ @"navigationType": navigationTypes[@(navigationType)],
1127
+ @"isTopFrame": @(isTopFrame)
1250
1128
  }];
1251
- _onLoadingStart(event);
1129
+ if (![self.delegate webView:self
1130
+ shouldStartLoadForRequest:event
1131
+ withCallback:_onShouldStartLoadWithRequest]) {
1132
+ decisionHandler(WKNavigationActionPolicyCancel);
1133
+ return;
1134
+ }
1252
1135
  }
1253
- }
1254
1136
 
1255
- // Allow all navigation by default
1256
- decisionHandler(WKNavigationActionPolicyAllow);
1137
+ if (_onLoadingStart) {
1138
+ // We have this check to filter out iframe requests and whatnot
1139
+ if (isTopFrame) {
1140
+ NSMutableDictionary<NSString *, id> *event = [self baseEvent];
1141
+ [event addEntriesFromDictionary: @{
1142
+ @"url": (request.URL).absoluteString,
1143
+ @"navigationType": navigationTypes[@(navigationType)]
1144
+ }];
1145
+ _onLoadingStart(event);
1146
+ }
1147
+ }
1148
+
1149
+ // Allow all navigation by default
1150
+ decisionHandler(WKNavigationActionPolicyAllow);
1257
1151
  }
1258
1152
 
1259
1153
  /**
@@ -1406,15 +1300,6 @@ NSString *const CUSTOM_SELECTOR = @"_CUSTOM_SELECTOR_";
1406
1300
  - (void)webView:(WKWebView *)webView
1407
1301
  didFinishNavigation:(WKNavigation *)navigation
1408
1302
  {
1409
- if(_sharedCookiesEnabled && @available(iOS 11.0, *)) {
1410
- // Write all cookies from WKWebView back to sharedHTTPCookieStorage
1411
- [webView.configuration.websiteDataStore.httpCookieStore getAllCookies:^(NSArray* cookies) {
1412
- for (NSHTTPCookie *cookie in cookies) {
1413
- [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
1414
- }
1415
- }];
1416
- }
1417
-
1418
1303
  if (_ignoreSilentHardwareSwitch) {
1419
1304
  [self forceIgnoreSilentHardwareSwitch:true];
1420
1305
  }
@@ -1448,6 +1333,7 @@ NSString *const CUSTOM_SELECTOR = @"_CUSTOM_SELECTOR_";
1448
1333
  */
1449
1334
  NSURLRequest *request = [self requestForSource:self.source];
1450
1335
 
1336
+
1451
1337
  if (request.URL && !_webView.URL.absoluteString.length) {
1452
1338
  [_webView loadRequest:request];
1453
1339
  } else {
@@ -1560,33 +1446,6 @@ NSString *const CUSTOM_SELECTOR = @"_CUSTOM_SELECTOR_";
1560
1446
  }
1561
1447
  }
1562
1448
 
1563
- - (void)writeCookiesToWebView:(NSArray<NSHTTPCookie *>*)cookies completion:(void (^)(void))completion {
1564
- // The required cookie APIs only became available on iOS 11
1565
- if(_sharedCookiesEnabled && @available(iOS 11.0, *)) {
1566
- dispatch_async(dispatch_get_main_queue(), ^{
1567
- dispatch_group_t group = dispatch_group_create();
1568
- for (NSHTTPCookie *cookie in cookies) {
1569
- dispatch_group_enter(group);
1570
- [_webView.configuration.websiteDataStore.httpCookieStore setCookie:cookie completionHandler:^{
1571
- dispatch_group_leave(group);
1572
- }];
1573
- }
1574
- dispatch_group_notify(group, dispatch_get_main_queue(), ^{
1575
- if (completion) {
1576
- completion();
1577
- }
1578
- });
1579
- });
1580
- } else if (completion) {
1581
- completion();
1582
- }
1583
- }
1584
-
1585
- - (void)syncCookiesToWebView:(void (^)(void))completion {
1586
- NSArray<NSHTTPCookie *> *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
1587
- [self writeCookiesToWebView:cookies completion:completion];
1588
- }
1589
-
1590
1449
  - (void)resetupScripts:(WKWebViewConfiguration *)wkWebViewConfig {
1591
1450
  [wkWebViewConfig.userContentController removeAllUserScripts];
1592
1451
  [wkWebViewConfig.userContentController removeScriptMessageHandlerForName:MessageHandlerName];
@@ -1631,7 +1490,9 @@ NSString *const CUSTOM_SELECTOR = @"_CUSTOM_SELECTOR_";
1631
1490
  if(!_incognito && !_cacheEnabled) {
1632
1491
  wkWebViewConfig.websiteDataStore = [WKWebsiteDataStore nonPersistentDataStore];
1633
1492
  }
1634
- [self syncCookiesToWebView:nil];
1493
+ for (NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) {
1494
+ [wkWebViewConfig.websiteDataStore.httpCookieStore setCookie:cookie completionHandler:nil];
1495
+ }
1635
1496
  } else {
1636
1497
  NSMutableString *script = [NSMutableString string];
1637
1498