expo-gaode-map 2.2.5-next.2 → 2.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$1$1.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$1$31$checkPermission$1.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$1$32$checkPermission$1.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$1.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$10.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$12.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$13.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$15.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$3.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$4.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$6.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$7.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$9.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunctionWithPromise$3.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$10.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$12.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$14.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$16.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$18.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$2.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$20.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$22.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$24.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$26.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$28.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$30.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$32.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$34.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$36.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$38.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$4.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$40.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$42.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$6.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$8.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$1.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$10.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$2.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$3.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$4.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$5.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$6.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$7.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$8.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$9.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$OnDestroy$1.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule.dex +0 -0
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/modules/SDKInitializer.dex +0 -0
- package/android/build/.transforms/f22f1c580f717ccac1d35494aceb34b7/transformed/classes/classes_dex/classes.dex +0 -0
- package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$1$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$1$31$checkPermission$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$1$32$checkPermission$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$10.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$12.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$13.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$15.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$3.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$4.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$6.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$7.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$9.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunctionWithPromise$3.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$10.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$12.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$14.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$16.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$18.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$2.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$20.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$22.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$24.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$26.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$28.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$30.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$32.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$34.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$36.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$38.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$4.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$40.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$42.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$6.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$8.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$10.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$2.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$3.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$4.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$5.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$6.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$7.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$8.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$9.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$OnDestroy$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/modules/SDKInitializer.class +0 -0
- package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.s +1 -1
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.s +1 -1
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s +1 -1
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.s +1 -1
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +1 -1
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
- package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$1$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$1$31$checkPermission$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$1$32$checkPermission$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$10.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$12.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$13.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$15.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$3.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$4.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$6.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$7.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunction$9.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$AsyncFunctionWithPromise$3.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$10.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$12.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$14.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$16.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$18.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$2.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$20.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$22.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$24.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$26.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$28.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$30.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$32.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$34.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$36.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$38.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$4.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$40.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$42.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$6.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$Function$8.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$10.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$2.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$3.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$4.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$5.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$6.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$7.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$8.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$FunctionWithoutArgs$9.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$lambda$38$$inlined$OnDestroy$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/modules/SDKInitializer.class +0 -0
- package/android/src/main/java/expo/modules/gaodemap/ExpoGaodeMapModule.kt +10 -52
- package/android/src/main/java/expo/modules/gaodemap/modules/SDKInitializer.kt +0 -48
- package/build/ExpoGaodeMapModule.d.ts +1 -1
- package/build/ExpoGaodeMapModule.js.map +1 -1
- package/ios/ExpoGaodeMapModule.swift +10 -61
- package/package.json +7 -3
- package/android/build/.transforms/79e5f1504f216bdae2079192244b6add/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/gaodemap/ExpoGaodeMapModule$definition$1$2$1.dex +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$1$2$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/gaodemap/ExpoGaodeMapModule$definition$1$2$1.class +0 -0
|
@@ -31,14 +31,12 @@ class ExpoGaodeMapModule : Module() {
|
|
|
31
31
|
// 初始化预加载管理器(注册内存监听)
|
|
32
32
|
MapPreloadManager.initialize(context)
|
|
33
33
|
|
|
34
|
-
//
|
|
35
|
-
|
|
36
|
-
// 尝试从 AndroidManifest.xml 读取并设置 API Key
|
|
37
|
-
val apiKey = context.packageManager
|
|
34
|
+
// 尝试从 AndroidManifest.xml 读取并设置 API Key
|
|
35
|
+
val apiKey = context.packageManager
|
|
38
36
|
.getApplicationInfo(context.packageName, android.content.pm.PackageManager.GET_META_DATA)
|
|
39
37
|
.metaData?.getString("com.amap.api.v2.apikey")
|
|
40
38
|
|
|
41
|
-
|
|
39
|
+
if (!apiKey.isNullOrEmpty()) {
|
|
42
40
|
try {
|
|
43
41
|
com.amap.api.maps.MapsInitializer.setApiKey(apiKey)
|
|
44
42
|
com.amap.api.location.AMapLocationClient.setApiKey(apiKey)
|
|
@@ -55,50 +53,21 @@ class ExpoGaodeMapModule : Module() {
|
|
|
55
53
|
} else {
|
|
56
54
|
android.util.Log.w("ExpoGaodeMap", "⚠️ AndroidManifest.xml 未找到 API Key,跳过自动预加载")
|
|
57
55
|
}
|
|
58
|
-
|
|
56
|
+
|
|
59
57
|
} catch (e: Exception) {
|
|
60
58
|
android.util.Log.w("ExpoGaodeMap", "恢复隐私状态时出现问题: ${e.message}")
|
|
61
59
|
}
|
|
62
60
|
|
|
63
|
-
// ====================
|
|
61
|
+
// ==================== 隐私协议 ====================
|
|
64
62
|
|
|
65
63
|
/**
|
|
66
64
|
* 更新隐私合规状态
|
|
67
|
-
*
|
|
68
|
-
*
|
|
65
|
+
* 不用主动调用,下个版本删除
|
|
66
|
+
*
|
|
69
67
|
*/
|
|
70
68
|
Function("updatePrivacyCompliance") { hasAgreed: Boolean ->
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
// 🚀 用户首次同意隐私协议后,自动启动预加载
|
|
75
|
-
if (hasAgreed) {
|
|
76
|
-
// 在用户同意后,如果尚未设置 API Key,则尝试从 AndroidManifest.xml 读取并设置
|
|
77
|
-
try {
|
|
78
|
-
val apiKey = context.packageManager
|
|
79
|
-
.getApplicationInfo(context.packageName, android.content.pm.PackageManager.GET_META_DATA)
|
|
80
|
-
.metaData?.getString("com.amap.api.v2.apikey")
|
|
81
|
-
|
|
82
|
-
if (!apiKey.isNullOrEmpty()) {
|
|
83
|
-
com.amap.api.maps.MapsInitializer.setApiKey(apiKey)
|
|
84
|
-
com.amap.api.location.AMapLocationClient.setApiKey(apiKey)
|
|
85
|
-
android.util.Log.d("ExpoGaodeMap", "✅ 从 AndroidManifest.xml 读取并设置 API Key 成功")
|
|
86
|
-
} else {
|
|
87
|
-
android.util.Log.w("ExpoGaodeMap", "⚠️ AndroidManifest.xml 未找到 API Key,后续需通过 initSDK 提供 androidKey")
|
|
88
|
-
}
|
|
89
|
-
} catch (e: Exception) {
|
|
90
|
-
android.util.Log.w("ExpoGaodeMap", "读取 API Key 失败: ${e.message}")
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// 延迟启动预加载
|
|
94
|
-
android.os.Handler(android.os.Looper.getMainLooper()).postDelayed({
|
|
95
|
-
if (!MapPreloadManager.hasPreloadedMapView() &&
|
|
96
|
-
!(MapPreloadManager.getStatus()["isPreloading"] as Boolean)) {
|
|
97
|
-
android.util.Log.i("ExpoGaodeMap", "🚀 用户同意隐私协议,自动启动预加载")
|
|
98
|
-
MapPreloadManager.startPreload(context, poolSize = 1)
|
|
99
|
-
}
|
|
100
|
-
}, 1000)
|
|
101
|
-
}
|
|
69
|
+
val context = appContext.reactContext!!
|
|
70
|
+
SDKInitializer.restorePrivacyState(context)
|
|
102
71
|
}
|
|
103
72
|
|
|
104
73
|
// ==================== SDK 初始化 ====================
|
|
@@ -137,12 +106,7 @@ class ExpoGaodeMapModule : Module() {
|
|
|
137
106
|
* 开始连续定位
|
|
138
107
|
*/
|
|
139
108
|
Function("start") {
|
|
140
|
-
|
|
141
|
-
if (!SDKInitializer.isPrivacyAgreed()) {
|
|
142
|
-
android.util.Log.w("ExpoGaodeMap", "用户未同意隐私协议,无法开始定位")
|
|
143
|
-
throw expo.modules.kotlin.exception.CodedException("用户未同意隐私协议,无法开始定位")
|
|
144
|
-
}
|
|
145
|
-
|
|
109
|
+
|
|
146
110
|
getLocationManager().start()
|
|
147
111
|
}
|
|
148
112
|
|
|
@@ -166,12 +130,6 @@ class ExpoGaodeMapModule : Module() {
|
|
|
166
130
|
* @return 位置信息对象
|
|
167
131
|
*/
|
|
168
132
|
AsyncFunction("getCurrentLocation") { promise: expo.modules.kotlin.Promise ->
|
|
169
|
-
// 检查隐私协议状态
|
|
170
|
-
if (!SDKInitializer.isPrivacyAgreed()) {
|
|
171
|
-
promise.reject("PRIVACY_NOT_AGREED", "用户未同意隐私协议,无法获取位置", null)
|
|
172
|
-
return@AsyncFunction
|
|
173
|
-
}
|
|
174
|
-
|
|
175
133
|
getLocationManager().getCurrentLocation(promise)
|
|
176
134
|
}
|
|
177
135
|
|
|
@@ -20,72 +20,24 @@ object SDKInitializer {
|
|
|
20
20
|
private var privacyAgreed = true
|
|
21
21
|
|
|
22
22
|
private const val PREFS_NAME = "expo_gaode_map_prefs"
|
|
23
|
-
// private const val KEY_PRIVACY_AGREED = "privacy_agreed"
|
|
24
23
|
|
|
25
24
|
private fun prefs(context: Context): SharedPreferences =
|
|
26
25
|
context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
|
|
27
26
|
|
|
28
|
-
/**
|
|
29
|
-
* 更新隐私合规状态
|
|
30
|
-
* 必须在用户同意隐私协议后调用
|
|
31
|
-
*
|
|
32
|
-
* @param context 应用上下文
|
|
33
|
-
* @param hasAgreed 用户是否已同意隐私协议
|
|
34
|
-
* @deprecated 废弃
|
|
35
|
-
*/
|
|
36
|
-
fun updatePrivacyCompliance(context: Context, hasAgreed: Boolean) {
|
|
37
|
-
// privacyAgreed = hasAgreed
|
|
38
|
-
//
|
|
39
|
-
// // 先更新隐私信息显示状态
|
|
40
|
-
// MapsInitializer.updatePrivacyShow(context, true, true)
|
|
41
|
-
// AMapLocationClient.updatePrivacyShow(context, true, true)
|
|
42
|
-
//
|
|
43
|
-
// // 根据用户选择更新同意状态
|
|
44
|
-
// if (hasAgreed) {
|
|
45
|
-
// MapsInitializer.updatePrivacyAgree(context, true)
|
|
46
|
-
// AMapLocationClient.updatePrivacyAgree(context, true)
|
|
47
|
-
// android.util.Log.d("ExpoGaodeMap", "✅ 用户已同意隐私协议,可以使用 SDK")
|
|
48
|
-
// } else {
|
|
49
|
-
// MapsInitializer.updatePrivacyAgree(context, false)
|
|
50
|
-
// AMapLocationClient.updatePrivacyAgree(context, false)
|
|
51
|
-
// android.util.Log.w("ExpoGaodeMap", "⚠️ 用户未同意隐私协议,SDK 功能将受限")
|
|
52
|
-
// }
|
|
53
27
|
|
|
54
|
-
// 持久化状态,供下次启动自动恢复
|
|
55
|
-
// try {
|
|
56
|
-
// prefs(context).edit().putBoolean(KEY_PRIVACY_AGREED, hasAgreed).apply()
|
|
57
|
-
// } catch (e: Exception) {
|
|
58
|
-
// android.util.Log.w("ExpoGaodeMap", "持久化隐私状态失败: ${e.message}")
|
|
59
|
-
// }
|
|
60
|
-
}
|
|
61
28
|
|
|
62
|
-
/**
|
|
63
|
-
* 从本地存储恢复隐私合规状态(在应用启动或模块加载时调用)
|
|
64
|
-
* 若无记录则保持默认 false,不抛出异常。
|
|
65
|
-
*/
|
|
66
29
|
fun restorePrivacyState(context: Context) {
|
|
67
30
|
try {
|
|
68
|
-
// val saved = prefs(context).getBoolean(KEY_PRIVACY_AGREED, false)
|
|
69
|
-
|
|
70
31
|
// 同步到 SDK
|
|
71
32
|
MapsInitializer.updatePrivacyShow(context, true, true)
|
|
72
33
|
AMapLocationClient.updatePrivacyShow(context, true, true)
|
|
73
34
|
MapsInitializer.updatePrivacyAgree(context, privacyAgreed)
|
|
74
35
|
AMapLocationClient.updatePrivacyAgree(context, privacyAgreed)
|
|
75
|
-
|
|
76
|
-
android.util.Log.d("ExpoGaodeMap", "🔁 已从缓存恢复隐私状态: $ privacyAgreed = saved")
|
|
77
36
|
} catch (e: Exception) {
|
|
78
37
|
android.util.Log.w("ExpoGaodeMap", "恢复隐私状态失败: ${e.message}")
|
|
79
38
|
}
|
|
80
39
|
}
|
|
81
40
|
|
|
82
|
-
/**
|
|
83
|
-
* 检查隐私协议是否已同意
|
|
84
|
-
*
|
|
85
|
-
* @return 是否已同意隐私协议
|
|
86
|
-
*/
|
|
87
|
-
fun isPrivacyAgreed(): Boolean = privacyAgreed
|
|
88
|
-
|
|
89
41
|
/**
|
|
90
42
|
* 初始化高德地图和定位 SDK
|
|
91
43
|
*
|
|
@@ -47,7 +47,7 @@ declare class ExpoGaodeMapModule extends NativeModule<ExpoGaodeMapModuleEvents>
|
|
|
47
47
|
* 更新隐私合规状态
|
|
48
48
|
* 必须在用户同意隐私协议后调用
|
|
49
49
|
* @param hasAgreed 用户是否已同意隐私协议
|
|
50
|
-
* @deprecated
|
|
50
|
+
* @deprecated 已经弃用,原生里默认为已同意,不再需要调用
|
|
51
51
|
*/
|
|
52
52
|
updatePrivacyCompliance(hasAgreed: boolean): void;
|
|
53
53
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoGaodeMapModule.js","sourceRoot":"","sources":["../src/ExpoGaodeMapModule.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * 高德地图原生模块\n * 提供 SDK 初始化、定位、权限管理等功能\n */\n\nimport { NativeModule, requireNativeModule } from 'expo';\nimport type { ExpoGaodeMapModuleEvents } from './ExpoGaodeMap.types';\nimport type {\n LatLng,\n CoordinateType,\n Coordinates,\n ReGeocode,\n LocationMode,\n LocationAccuracy,\n LocationListener,\n} from './types';\nimport { ErrorHandler, ErrorLogger } from './utils/ErrorHandler';\n\n/**\n * SDK 配置参数\n */\nexport interface SDKConfig {\n /** Android 平台的高德地图 API Key */\n androidKey?: string;\n /** iOS 平台的高德地图 API Key */\n iosKey?: string;\n /** web api key 如果要使用expo-gaode-map-web-api相关的功能,需要配置web api key*/\n webKey?: string;\n}\n\n/**\n * 权限状态(增强版,支持 Android 14+ 和 iOS 17+)\n */\nexport interface PermissionStatus {\n /** 是否已授权(前台位置权限) */\n granted: boolean;\n \n // iOS 专用字段\n /** iOS 权限状态字符串 */\n status?: 'notDetermined' | 'restricted' | 'denied' | 'authorizedAlways' | 'authorizedWhenInUse' | 'unknown';\n \n // Android 专用字段\n /** Android 精确位置权限 */\n fineLocation?: boolean;\n /** Android 粗略位置权限 */\n coarseLocation?: boolean;\n /** Android 后台位置权限(Android 10+) */\n backgroundLocation?: boolean;\n /** 是否应显示权限说明(Android) */\n shouldShowRationale?: boolean;\n /** 权限是否被永久拒绝(Android) */\n isPermanentlyDenied?: boolean;\n /** 是否为 Android 14+(Android) */\n isAndroid14Plus?: boolean;\n \n // 其他字段\n /** 额外的消息说明 */\n message?: string;\n}\n\n/**\n * 高德地图原生模块类声明\n */\ndeclare class ExpoGaodeMapModule extends NativeModule<ExpoGaodeMapModuleEvents> {\n // ==================== 隐私合规管理 ====================\n \n /**\n * 更新隐私合规状态\n * 必须在用户同意隐私协议后调用\n * @param hasAgreed 用户是否已同意隐私协议\n * @deprecated 已经弃用,原生里默认为已同意,不用调\n */\n updatePrivacyCompliance(hasAgreed: boolean): void;\n \n // ==================== SDK 初始化 ====================\n \n /**\n * 初始化高德地图 SDK\n * @param config SDK 配置参数,包含 Android 和 iOS 的 API Key\n */\n initSDK(config: SDKConfig): void;\n \n /**\n * 获取高德地图 SDK 版本号\n * @returns SDK 版本字符串\n */\n getVersion(): string;\n \n // ==================== 定位控制 ====================\n \n /**\n * 开始连续定位\n * 启动后会持续接收位置更新,通过 onLocationUpdate 事件回调\n */\n start(): void;\n \n /**\n * 停止定位\n * 停止接收位置更新\n */\n stop(): void;\n \n /**\n * 检查是否正在定位\n * @returns Promise<boolean> 是否正在定位\n */\n isStarted(): Promise<boolean>;\n \n /**\n * 获取当前位置(单次定位)\n * @returns Promise<Coordinates | ReGeocode> 位置信息,包含坐标和可选的逆地理编码信息\n */\n getCurrentLocation(): Promise<Coordinates | ReGeocode>;\n \n /**\n * 坐标转换\n * 将其他坐标系的坐标转换为高德地图使用的 GCJ-02 坐标系\n * @param coordinate 需要转换的坐标\n * @param type 原坐标系类型\n * @returns Promise<LatLng> 转换后的 GCJ-02 坐标\n */\n coordinateConvert(coordinate: LatLng, type: CoordinateType): Promise<LatLng>;\n \n // ==================== 定位配置 ====================\n \n /**\n * 设置是否返回逆地理编码信息\n * @param isReGeocode true: 返回地址信息; false: 只返回坐标\n */\n setLocatingWithReGeocode(isReGeocode: boolean): void;\n \n /**\n * 设置定位模式(Android)\n * @param mode 定位模式:0-低功耗, 1-仅设备, 2-高精度\n */\n setLocationMode(mode: LocationMode): void;\n \n /**\n * 设置定位间隔(毫秒)\n * @param interval 定位间隔时间,单位毫秒,默认 2000ms\n */\n setInterval(interval: number): void;\n \n /**\n * 设置是否单次定位(Android)\n * @param isOnceLocation true: 单次定位; false: 连续定位\n */\n setOnceLocation(isOnceLocation: boolean): void;\n \n /**\n * 设置是否使用设备传感器(Android)\n * @param sensorEnable true: 使用传感器; false: 不使用\n */\n setSensorEnable(sensorEnable: boolean): void;\n \n /**\n * 设置是否允许 WiFi 扫描(Android)\n * @param wifiScan true: 允许; false: 不允许\n */\n setWifiScan(wifiScan: boolean): void;\n \n /**\n * 设置是否 GPS 优先(Android)\n * @param gpsFirst true: GPS 优先; false: 网络优先\n */\n setGpsFirst(gpsFirst: boolean): void;\n \n /**\n * 设置是否等待 WiFi 列表刷新(Android)\n * @param onceLocationLatest true: 等待; false: 不等待\n */\n setOnceLocationLatest(onceLocationLatest: boolean): void;\n \n /**\n * 设置逆地理编码语言\n * @param language 语言代码,如 \"zh-CN\", \"en\"\n */\n setGeoLanguage(language: string): void;\n \n /**\n * 设置是否使用缓存策略(Android)\n * @param locationCacheEnable true: 使用缓存; false: 不使用\n */\n setLocationCacheEnable(locationCacheEnable: boolean): void;\n \n /**\n * 设置网络请求超时时间(Android)\n * @param httpTimeOut 超时时间,单位毫秒\n */\n setHttpTimeOut(httpTimeOut: number): void;\n \n /**\n * 设置期望的定位精度(iOS)\n * @param accuracy 精度级别:0-最佳, 1-10米, 2-100米, 3-1公里, 4-3公里\n */\n setDesiredAccuracy(accuracy: LocationAccuracy): void;\n \n /**\n * 设置定位超时时间(秒)\n * @param timeout 超时时间,单位秒,默认 10 秒\n */\n setLocationTimeout(timeout: number): void;\n \n /**\n * 设置逆地理编码超时时间(秒)\n * @param timeout 超时时间,单位秒,默认 5 秒\n */\n setReGeocodeTimeout(timeout: number): void;\n \n /**\n * 设置距离过滤器(米)(iOS)\n * 只有移动超过指定距离才会更新位置\n * @param distance 距离阈值,单位米\n */\n setDistanceFilter(distance: number): void;\n \n /**\n * 设置是否自动暂停位置更新(iOS)\n * @param pauses true: 自动暂停; false: 不暂停\n */\n setPausesLocationUpdatesAutomatically(pauses: boolean): void;\n \n /**\n * 设置是否允许后台定位(iOS)\n * @param allows true: 允许; false: 不允许\n */\n setAllowsBackgroundLocationUpdates(allows: boolean): void;\n \n /**\n * 设置定位协议\n * @param protocol 协议类型\n */\n setLocationProtocol(protocol: string): void;\n \n // ==================== 方向更新 (iOS) ====================\n \n /**\n * 开始更新设备方向(罗盘朝向)\n * 通过 onHeadingUpdate 事件接收方向更新\n * @platform ios\n */\n startUpdatingHeading(): void;\n \n /**\n * 停止更新设备方向\n * @platform ios\n */\n stopUpdatingHeading(): void;\n \n // ==================== 权限管理(增强版) ====================\n \n /**\n * 检查前台位置权限状态(增强版,支持 Android 14+ 适配)\n * @returns Promise<PermissionStatus> 详细的权限状态信息\n */\n checkLocationPermission(): Promise<PermissionStatus>;\n \n /**\n * 请求前台位置权限(增强版,支持 Android 14+ 适配)\n * @returns Promise<PermissionStatus> 请求后的权限状态\n */\n requestLocationPermission(): Promise<PermissionStatus>;\n \n /**\n * 请求后台位置权限(Android 10+、iOS)\n * 注意:必须在前台权限已授予后才能请求\n * @returns Promise<PermissionStatus> 请求后的权限状态\n */\n requestBackgroundLocationPermission(): Promise<PermissionStatus>;\n \n /**\n * 打开应用设置页面\n * 引导用户手动授予权限(当权限被永久拒绝时使用)\n */\n openAppSettings(): void;\n \n // ==================== 地图预加载 ====================\n \n /**\n * 开始预加载地图实例\n * 在后台预先初始化地图视图,提升首次显示速度\n * @param config 预加载配置对象\n * @param config.poolSize 预加载的地图实例数量,默认 2\n */\n startMapPreload(config: { poolSize?: number }): void;\n \n /**\n * 获取预加载状态\n * @returns 预加载状态信息,包含池大小、是否正在预加载等\n */\n getMapPreloadStatus(): {\n poolSize: number;\n isPreloading: boolean;\n maxPoolSize: number;\n };\n \n /**\n * 清空预加载池\n * 释放所有预加载的地图实例\n */\n clearMapPreloadPool(): void;\n \n /**\n * 检查是否有可用的预加载实例\n * @returns 是否有可用的预加载地图实例\n */\n hasPreloadedMapView(): boolean;\n \n // ==================== 便捷方法 ====================\n \n /**\n * 添加定位监听器(便捷方法)\n * 封装了 addListener,提供更简洁的 API\n * @param listener 定位回调函数\n * @returns 订阅对象,调用 remove() 取消监听\n */\n addLocationListener(listener: LocationListener): { remove: () => void };\n}\n\n// 获取原生模块实例 - 添加容错处理\nlet nativeModule: ExpoGaodeMapModule | null = null;\n\ntry {\n nativeModule = requireNativeModule<ExpoGaodeMapModule>('ExpoGaodeMap');\n} catch (error) {\n const moduleError = ErrorHandler.nativeModuleUnavailable();\n ErrorLogger.log(moduleError);\n}\n\n// 记录最近一次 initSDK 的配置(含 webKey)\nlet _sdkConfig: SDKConfig | null = null;\nlet _isSDKInitialized = false;\n\n// 扩展原生模块,添加便捷方法\nconst ExpoGaodeMapModuleWithHelpers = {\n ...(nativeModule || {}),\n\n /**\n * 初始化 SDK,并缓存配置(包含 webKey)\n */\n initSDK(config: SDKConfig): void {\n if (!nativeModule) {\n throw ErrorHandler.nativeModuleUnavailable();\n }\n\n // 验证 API Key 配置\n if (!config.androidKey && !config.iosKey) {\n throw ErrorHandler.invalidApiKey('both');\n }\n\n try {\n _sdkConfig = config ?? null;\n nativeModule.initSDK(config);\n _isSDKInitialized = true;\n ErrorLogger.warn('SDK 初始化成功', { config });\n } catch (error: any) {\n _isSDKInitialized = false;\n throw ErrorHandler.wrapNativeError(error, 'SDK 初始化');\n }\n },\n\n /**\n * 检查 SDK 是否已通过 JS 调用 initSDK() 初始化\n * 注意:即使返回 false,原生端可能已通过 Config Plugin 自动初始化\n */\n isSDKInitialized(): boolean {\n return _isSDKInitialized;\n },\n\n /**\n * 开始连续定位\n * 注意:如果使用 Config Plugin 配置了 API Key,无需调用 initSDK()\n */\n start(): void {\n if (!nativeModule) {\n throw ErrorHandler.nativeModuleUnavailable();\n }\n try {\n nativeModule.start();\n } catch (error: any) {\n throw ErrorHandler.wrapNativeError(error, '开始定位');\n }\n },\n\n /**\n * 停止定位\n */\n stop(): void {\n if (!nativeModule) {\n throw ErrorHandler.nativeModuleUnavailable();\n }\n try {\n nativeModule.stop();\n } catch (error: any) {\n throw ErrorHandler.wrapNativeError(error, '停止定位');\n }\n },\n\n /**\n * 获取当前位置(单次定位)\n * 注意:如果使用 Config Plugin 配置了 API Key,无需调用 initSDK()\n */\n async getCurrentLocation(): Promise<Coordinates | ReGeocode> {\n if (!nativeModule) {\n throw ErrorHandler.nativeModuleUnavailable();\n }\n try {\n return await nativeModule.getCurrentLocation();\n } catch (error: any) {\n throw ErrorHandler.locationFailed(error?.message);\n }\n },\n\n /**\n * 检查位置权限状态\n */\n async checkLocationPermission(): Promise<PermissionStatus> {\n if (!nativeModule) {\n throw ErrorHandler.nativeModuleUnavailable();\n }\n try {\n return await nativeModule.checkLocationPermission();\n } catch (error: any) {\n throw ErrorHandler.wrapNativeError(error, '检查权限');\n }\n },\n\n /**\n * 请求前台位置权限(增强版)\n */\n async requestLocationPermission(): Promise<PermissionStatus> {\n if (!nativeModule) {\n throw ErrorHandler.nativeModuleUnavailable();\n }\n try {\n const result = await nativeModule.requestLocationPermission();\n if (!result.granted) {\n ErrorLogger.warn('前台位置权限未授予', result);\n }\n return result;\n } catch (error: any) {\n throw ErrorHandler.wrapNativeError(error, '请求前台权限');\n }\n },\n\n /**\n * 请求后台位置权限\n * 注意:必须在前台权限已授予后才能请求\n */\n async requestBackgroundLocationPermission(): Promise<PermissionStatus> {\n if (!nativeModule) {\n throw ErrorHandler.nativeModuleUnavailable();\n }\n try {\n const result = await nativeModule.requestBackgroundLocationPermission();\n if (!result.granted) {\n ErrorLogger.warn('后台位置权限未授予', result);\n }\n return result;\n } catch (error: any) {\n throw ErrorHandler.wrapNativeError(error, '请求后台权限');\n }\n },\n\n /**\n * 打开应用设置页面\n * 引导用户手动授予权限\n */\n openAppSettings(): void {\n if (!nativeModule) {\n throw ErrorHandler.nativeModuleUnavailable();\n }\n try {\n nativeModule.openAppSettings();\n } catch (error: any) {\n throw ErrorHandler.wrapNativeError(error, '打开设置');\n }\n },\n\n /**\n * 添加定位监听器(便捷方法)\n * 自动订阅 onLocationUpdate 事件,提供容错处理\n * @param listener 定位回调函数\n * @returns 订阅对象,调用 remove() 取消监听\n * 注意:如果使用 Config Plugin 配置了 API Key,无需调用 initSDK()\n */\n addLocationListener(listener: LocationListener): { remove: () => void } {\n if (!nativeModule) {\n throw ErrorHandler.nativeModuleUnavailable();\n }\n // 使用可选链和空值合并,确保即使模块不可用也不会崩溃\n return nativeModule?.addListener?.('onLocationUpdate', listener) || {\n remove: () => {},\n };\n },\n};\n\n/**\n* 获取最近一次 initSDK 的配置\n*/\nexport function getSDKConfig(): SDKConfig | null {\n return _sdkConfig;\n}\n\n/**\n* 获取用于 Web API 的 webKey(若未初始化或未提供则返回 undefined)\n*/\nexport function getWebKey(): string | undefined {\n return _sdkConfig?.webKey;\n}\n\nexport default ExpoGaodeMapModuleWithHelpers as unknown as ExpoGaodeMapModule;\n"]}
|
|
1
|
+
{"version":3,"file":"ExpoGaodeMapModule.js","sourceRoot":"","sources":["../src/ExpoGaodeMapModule.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * 高德地图原生模块\n * 提供 SDK 初始化、定位、权限管理等功能\n */\n\nimport { NativeModule, requireNativeModule } from 'expo';\nimport type { ExpoGaodeMapModuleEvents } from './ExpoGaodeMap.types';\nimport type {\n LatLng,\n CoordinateType,\n Coordinates,\n ReGeocode,\n LocationMode,\n LocationAccuracy,\n LocationListener,\n} from './types';\nimport { ErrorHandler, ErrorLogger } from './utils/ErrorHandler';\n\n/**\n * SDK 配置参数\n */\nexport interface SDKConfig {\n /** Android 平台的高德地图 API Key */\n androidKey?: string;\n /** iOS 平台的高德地图 API Key */\n iosKey?: string;\n /** web api key 如果要使用expo-gaode-map-web-api相关的功能,需要配置web api key*/\n webKey?: string;\n}\n\n/**\n * 权限状态(增强版,支持 Android 14+ 和 iOS 17+)\n */\nexport interface PermissionStatus {\n /** 是否已授权(前台位置权限) */\n granted: boolean;\n \n // iOS 专用字段\n /** iOS 权限状态字符串 */\n status?: 'notDetermined' | 'restricted' | 'denied' | 'authorizedAlways' | 'authorizedWhenInUse' | 'unknown';\n \n // Android 专用字段\n /** Android 精确位置权限 */\n fineLocation?: boolean;\n /** Android 粗略位置权限 */\n coarseLocation?: boolean;\n /** Android 后台位置权限(Android 10+) */\n backgroundLocation?: boolean;\n /** 是否应显示权限说明(Android) */\n shouldShowRationale?: boolean;\n /** 权限是否被永久拒绝(Android) */\n isPermanentlyDenied?: boolean;\n /** 是否为 Android 14+(Android) */\n isAndroid14Plus?: boolean;\n \n // 其他字段\n /** 额外的消息说明 */\n message?: string;\n}\n\n/**\n * 高德地图原生模块类声明\n */\ndeclare class ExpoGaodeMapModule extends NativeModule<ExpoGaodeMapModuleEvents> {\n // ==================== 隐私合规管理 ====================\n \n /**\n * 更新隐私合规状态\n * 必须在用户同意隐私协议后调用\n * @param hasAgreed 用户是否已同意隐私协议\n * @deprecated 已经弃用,原生里默认为已同意,不再需要调用\n */\n updatePrivacyCompliance(hasAgreed: boolean): void;\n \n // ==================== SDK 初始化 ====================\n \n /**\n * 初始化高德地图 SDK\n * @param config SDK 配置参数,包含 Android 和 iOS 的 API Key\n */\n initSDK(config: SDKConfig): void;\n \n /**\n * 获取高德地图 SDK 版本号\n * @returns SDK 版本字符串\n */\n getVersion(): string;\n \n // ==================== 定位控制 ====================\n \n /**\n * 开始连续定位\n * 启动后会持续接收位置更新,通过 onLocationUpdate 事件回调\n */\n start(): void;\n \n /**\n * 停止定位\n * 停止接收位置更新\n */\n stop(): void;\n \n /**\n * 检查是否正在定位\n * @returns Promise<boolean> 是否正在定位\n */\n isStarted(): Promise<boolean>;\n \n /**\n * 获取当前位置(单次定位)\n * @returns Promise<Coordinates | ReGeocode> 位置信息,包含坐标和可选的逆地理编码信息\n */\n getCurrentLocation(): Promise<Coordinates | ReGeocode>;\n \n /**\n * 坐标转换\n * 将其他坐标系的坐标转换为高德地图使用的 GCJ-02 坐标系\n * @param coordinate 需要转换的坐标\n * @param type 原坐标系类型\n * @returns Promise<LatLng> 转换后的 GCJ-02 坐标\n */\n coordinateConvert(coordinate: LatLng, type: CoordinateType): Promise<LatLng>;\n \n // ==================== 定位配置 ====================\n \n /**\n * 设置是否返回逆地理编码信息\n * @param isReGeocode true: 返回地址信息; false: 只返回坐标\n */\n setLocatingWithReGeocode(isReGeocode: boolean): void;\n \n /**\n * 设置定位模式(Android)\n * @param mode 定位模式:0-低功耗, 1-仅设备, 2-高精度\n */\n setLocationMode(mode: LocationMode): void;\n \n /**\n * 设置定位间隔(毫秒)\n * @param interval 定位间隔时间,单位毫秒,默认 2000ms\n */\n setInterval(interval: number): void;\n \n /**\n * 设置是否单次定位(Android)\n * @param isOnceLocation true: 单次定位; false: 连续定位\n */\n setOnceLocation(isOnceLocation: boolean): void;\n \n /**\n * 设置是否使用设备传感器(Android)\n * @param sensorEnable true: 使用传感器; false: 不使用\n */\n setSensorEnable(sensorEnable: boolean): void;\n \n /**\n * 设置是否允许 WiFi 扫描(Android)\n * @param wifiScan true: 允许; false: 不允许\n */\n setWifiScan(wifiScan: boolean): void;\n \n /**\n * 设置是否 GPS 优先(Android)\n * @param gpsFirst true: GPS 优先; false: 网络优先\n */\n setGpsFirst(gpsFirst: boolean): void;\n \n /**\n * 设置是否等待 WiFi 列表刷新(Android)\n * @param onceLocationLatest true: 等待; false: 不等待\n */\n setOnceLocationLatest(onceLocationLatest: boolean): void;\n \n /**\n * 设置逆地理编码语言\n * @param language 语言代码,如 \"zh-CN\", \"en\"\n */\n setGeoLanguage(language: string): void;\n \n /**\n * 设置是否使用缓存策略(Android)\n * @param locationCacheEnable true: 使用缓存; false: 不使用\n */\n setLocationCacheEnable(locationCacheEnable: boolean): void;\n \n /**\n * 设置网络请求超时时间(Android)\n * @param httpTimeOut 超时时间,单位毫秒\n */\n setHttpTimeOut(httpTimeOut: number): void;\n \n /**\n * 设置期望的定位精度(iOS)\n * @param accuracy 精度级别:0-最佳, 1-10米, 2-100米, 3-1公里, 4-3公里\n */\n setDesiredAccuracy(accuracy: LocationAccuracy): void;\n \n /**\n * 设置定位超时时间(秒)\n * @param timeout 超时时间,单位秒,默认 10 秒\n */\n setLocationTimeout(timeout: number): void;\n \n /**\n * 设置逆地理编码超时时间(秒)\n * @param timeout 超时时间,单位秒,默认 5 秒\n */\n setReGeocodeTimeout(timeout: number): void;\n \n /**\n * 设置距离过滤器(米)(iOS)\n * 只有移动超过指定距离才会更新位置\n * @param distance 距离阈值,单位米\n */\n setDistanceFilter(distance: number): void;\n \n /**\n * 设置是否自动暂停位置更新(iOS)\n * @param pauses true: 自动暂停; false: 不暂停\n */\n setPausesLocationUpdatesAutomatically(pauses: boolean): void;\n \n /**\n * 设置是否允许后台定位(iOS)\n * @param allows true: 允许; false: 不允许\n */\n setAllowsBackgroundLocationUpdates(allows: boolean): void;\n \n /**\n * 设置定位协议\n * @param protocol 协议类型\n */\n setLocationProtocol(protocol: string): void;\n \n // ==================== 方向更新 (iOS) ====================\n \n /**\n * 开始更新设备方向(罗盘朝向)\n * 通过 onHeadingUpdate 事件接收方向更新\n * @platform ios\n */\n startUpdatingHeading(): void;\n \n /**\n * 停止更新设备方向\n * @platform ios\n */\n stopUpdatingHeading(): void;\n \n // ==================== 权限管理(增强版) ====================\n \n /**\n * 检查前台位置权限状态(增强版,支持 Android 14+ 适配)\n * @returns Promise<PermissionStatus> 详细的权限状态信息\n */\n checkLocationPermission(): Promise<PermissionStatus>;\n \n /**\n * 请求前台位置权限(增强版,支持 Android 14+ 适配)\n * @returns Promise<PermissionStatus> 请求后的权限状态\n */\n requestLocationPermission(): Promise<PermissionStatus>;\n \n /**\n * 请求后台位置权限(Android 10+、iOS)\n * 注意:必须在前台权限已授予后才能请求\n * @returns Promise<PermissionStatus> 请求后的权限状态\n */\n requestBackgroundLocationPermission(): Promise<PermissionStatus>;\n \n /**\n * 打开应用设置页面\n * 引导用户手动授予权限(当权限被永久拒绝时使用)\n */\n openAppSettings(): void;\n \n // ==================== 地图预加载 ====================\n \n /**\n * 开始预加载地图实例\n * 在后台预先初始化地图视图,提升首次显示速度\n * @param config 预加载配置对象\n * @param config.poolSize 预加载的地图实例数量,默认 2\n */\n startMapPreload(config: { poolSize?: number }): void;\n \n /**\n * 获取预加载状态\n * @returns 预加载状态信息,包含池大小、是否正在预加载等\n */\n getMapPreloadStatus(): {\n poolSize: number;\n isPreloading: boolean;\n maxPoolSize: number;\n };\n \n /**\n * 清空预加载池\n * 释放所有预加载的地图实例\n */\n clearMapPreloadPool(): void;\n \n /**\n * 检查是否有可用的预加载实例\n * @returns 是否有可用的预加载地图实例\n */\n hasPreloadedMapView(): boolean;\n \n // ==================== 便捷方法 ====================\n \n /**\n * 添加定位监听器(便捷方法)\n * 封装了 addListener,提供更简洁的 API\n * @param listener 定位回调函数\n * @returns 订阅对象,调用 remove() 取消监听\n */\n addLocationListener(listener: LocationListener): { remove: () => void };\n}\n\n// 获取原生模块实例 - 添加容错处理\nlet nativeModule: ExpoGaodeMapModule | null = null;\n\ntry {\n nativeModule = requireNativeModule<ExpoGaodeMapModule>('ExpoGaodeMap');\n} catch (error) {\n const moduleError = ErrorHandler.nativeModuleUnavailable();\n ErrorLogger.log(moduleError);\n}\n\n// 记录最近一次 initSDK 的配置(含 webKey)\nlet _sdkConfig: SDKConfig | null = null;\nlet _isSDKInitialized = false;\n\n// 扩展原生模块,添加便捷方法\nconst ExpoGaodeMapModuleWithHelpers = {\n ...(nativeModule || {}),\n\n /**\n * 初始化 SDK,并缓存配置(包含 webKey)\n */\n initSDK(config: SDKConfig): void {\n if (!nativeModule) {\n throw ErrorHandler.nativeModuleUnavailable();\n }\n\n // 验证 API Key 配置\n if (!config.androidKey && !config.iosKey) {\n throw ErrorHandler.invalidApiKey('both');\n }\n\n try {\n _sdkConfig = config ?? null;\n nativeModule.initSDK(config);\n _isSDKInitialized = true;\n ErrorLogger.warn('SDK 初始化成功', { config });\n } catch (error: any) {\n _isSDKInitialized = false;\n throw ErrorHandler.wrapNativeError(error, 'SDK 初始化');\n }\n },\n\n /**\n * 检查 SDK 是否已通过 JS 调用 initSDK() 初始化\n * 注意:即使返回 false,原生端可能已通过 Config Plugin 自动初始化\n */\n isSDKInitialized(): boolean {\n return _isSDKInitialized;\n },\n\n /**\n * 开始连续定位\n * 注意:如果使用 Config Plugin 配置了 API Key,无需调用 initSDK()\n */\n start(): void {\n if (!nativeModule) {\n throw ErrorHandler.nativeModuleUnavailable();\n }\n try {\n nativeModule.start();\n } catch (error: any) {\n throw ErrorHandler.wrapNativeError(error, '开始定位');\n }\n },\n\n /**\n * 停止定位\n */\n stop(): void {\n if (!nativeModule) {\n throw ErrorHandler.nativeModuleUnavailable();\n }\n try {\n nativeModule.stop();\n } catch (error: any) {\n throw ErrorHandler.wrapNativeError(error, '停止定位');\n }\n },\n\n /**\n * 获取当前位置(单次定位)\n * 注意:如果使用 Config Plugin 配置了 API Key,无需调用 initSDK()\n */\n async getCurrentLocation(): Promise<Coordinates | ReGeocode> {\n if (!nativeModule) {\n throw ErrorHandler.nativeModuleUnavailable();\n }\n try {\n return await nativeModule.getCurrentLocation();\n } catch (error: any) {\n throw ErrorHandler.locationFailed(error?.message);\n }\n },\n\n /**\n * 检查位置权限状态\n */\n async checkLocationPermission(): Promise<PermissionStatus> {\n if (!nativeModule) {\n throw ErrorHandler.nativeModuleUnavailable();\n }\n try {\n return await nativeModule.checkLocationPermission();\n } catch (error: any) {\n throw ErrorHandler.wrapNativeError(error, '检查权限');\n }\n },\n\n /**\n * 请求前台位置权限(增强版)\n */\n async requestLocationPermission(): Promise<PermissionStatus> {\n if (!nativeModule) {\n throw ErrorHandler.nativeModuleUnavailable();\n }\n try {\n const result = await nativeModule.requestLocationPermission();\n if (!result.granted) {\n ErrorLogger.warn('前台位置权限未授予', result);\n }\n return result;\n } catch (error: any) {\n throw ErrorHandler.wrapNativeError(error, '请求前台权限');\n }\n },\n\n /**\n * 请求后台位置权限\n * 注意:必须在前台权限已授予后才能请求\n */\n async requestBackgroundLocationPermission(): Promise<PermissionStatus> {\n if (!nativeModule) {\n throw ErrorHandler.nativeModuleUnavailable();\n }\n try {\n const result = await nativeModule.requestBackgroundLocationPermission();\n if (!result.granted) {\n ErrorLogger.warn('后台位置权限未授予', result);\n }\n return result;\n } catch (error: any) {\n throw ErrorHandler.wrapNativeError(error, '请求后台权限');\n }\n },\n\n /**\n * 打开应用设置页面\n * 引导用户手动授予权限\n */\n openAppSettings(): void {\n if (!nativeModule) {\n throw ErrorHandler.nativeModuleUnavailable();\n }\n try {\n nativeModule.openAppSettings();\n } catch (error: any) {\n throw ErrorHandler.wrapNativeError(error, '打开设置');\n }\n },\n\n /**\n * 添加定位监听器(便捷方法)\n * 自动订阅 onLocationUpdate 事件,提供容错处理\n * @param listener 定位回调函数\n * @returns 订阅对象,调用 remove() 取消监听\n * 注意:如果使用 Config Plugin 配置了 API Key,无需调用 initSDK()\n */\n addLocationListener(listener: LocationListener): { remove: () => void } {\n if (!nativeModule) {\n throw ErrorHandler.nativeModuleUnavailable();\n }\n // 使用可选链和空值合并,确保即使模块不可用也不会崩溃\n return nativeModule?.addListener?.('onLocationUpdate', listener) || {\n remove: () => {},\n };\n },\n};\n\n/**\n* 获取最近一次 initSDK 的配置\n*/\nexport function getSDKConfig(): SDKConfig | null {\n return _sdkConfig;\n}\n\n/**\n* 获取用于 Web API 的 webKey(若未初始化或未提供则返回 undefined)\n*/\nexport function getWebKey(): string | undefined {\n return _sdkConfig?.webKey;\n}\n\nexport default ExpoGaodeMapModuleWithHelpers as unknown as ExpoGaodeMapModule;\n"]}
|
|
@@ -16,10 +16,6 @@ public class ExpoGaodeMapModule: Module {
|
|
|
16
16
|
private var locationManager: LocationManager?
|
|
17
17
|
/// 权限管理器实例
|
|
18
18
|
private var permissionManager: PermissionManager?
|
|
19
|
-
/// 隐私协议是否已同意(模块级别跟踪)
|
|
20
|
-
/// private static var privacyAgreed: Bool = false
|
|
21
|
-
/// 隐私同意持久化 Key
|
|
22
|
-
// private static let privacyDefaultsKey = "expo_gaode_map_privacy_agreed"
|
|
23
19
|
|
|
24
20
|
// MARK: - 私有辅助方法
|
|
25
21
|
|
|
@@ -85,51 +81,20 @@ public class ExpoGaodeMapModule: Module {
|
|
|
85
81
|
|
|
86
82
|
// 4. 自动启动预加载(可选)
|
|
87
83
|
self.tryStartPreload(delay: 2.0, poolSize: 1)
|
|
88
|
-
|
|
89
|
-
// 先确保隐私信息展示状态
|
|
90
|
-
// MAMapView.updatePrivacyShow(AMapPrivacyShowStatus.didShow, privacyInfo: AMapPrivacyInfoStatus.didContain)
|
|
91
|
-
|
|
92
|
-
// 从 UserDefaults 恢复上次的同意状态(默认 false)
|
|
93
|
-
// let saved = UserDefaults.standard.bool(forKey: ExpoGaodeMapModule.privacyDefaultsKey)
|
|
94
|
-
// ExpoGaodeMapModule.privacyAgreed = saved
|
|
95
|
-
// if saved {
|
|
96
|
-
// // 同步到 SDK
|
|
97
|
-
// MAMapView.updatePrivacyAgree(AMapPrivacyAgreeStatus.didAgree)
|
|
98
|
-
// print("🔁 ExpoGaodeMap: 已从缓存恢复隐私同意状态: true")
|
|
99
|
-
|
|
100
|
-
// // 尝试设置 API Key 并启动预加载(延迟2秒)
|
|
101
|
-
// self.trySetupApiKeyFromPlist()
|
|
102
|
-
// self.tryStartPreload(delay: 2.0, poolSize: 1)
|
|
103
|
-
// } else {
|
|
104
|
-
// print("ℹ️ ExpoGaodeMap: 未发现已同意记录,等待用户同意后再使用 SDK")
|
|
105
|
-
// }
|
|
106
84
|
}
|
|
107
85
|
|
|
108
|
-
|
|
109
|
-
|
|
86
|
+
|
|
110
87
|
/**
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
* @deprecated 废弃
|
|
88
|
+
* 更新隐私协议状态
|
|
89
|
+
* 不再需要主动调用,下个版本删除
|
|
114
90
|
*/
|
|
115
91
|
Function("updatePrivacyCompliance") { (hasAgreed: Bool) in
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
// // 同步到 SDK
|
|
123
|
-
// MAMapView.updatePrivacyAgree(AMapPrivacyAgreeStatus.didAgree)
|
|
124
|
-
// print("✅ ExpoGaodeMap: 用户已同意隐私协议,可以使用 SDK(状态已持久化)")
|
|
125
|
-
|
|
126
|
-
// // 尝试设置 API Key 并启动预加载(延迟1秒)
|
|
127
|
-
// self.trySetupApiKeyFromPlist()
|
|
128
|
-
// self.tryStartPreload(delay: 1.0, poolSize: 1)
|
|
129
|
-
// } else {
|
|
130
|
-
// MAMapView.updatePrivacyAgree(AMapPrivacyAgreeStatus.notAgree)
|
|
131
|
-
// print("⚠️ ExpoGaodeMap: 用户未同意隐私协议,SDK 功能将受限(状态已持久化)")
|
|
132
|
-
// }
|
|
92
|
+
MAMapView.updatePrivacyShow(
|
|
93
|
+
AMapPrivacyShowStatus.didShow,
|
|
94
|
+
privacyInfo: AMapPrivacyInfoStatus.didContain
|
|
95
|
+
)
|
|
96
|
+
MAMapView.updatePrivacyAgree(AMapPrivacyAgreeStatus.didAgree)
|
|
97
|
+
|
|
133
98
|
}
|
|
134
99
|
// ==================== SDK 初始化 ====================
|
|
135
100
|
|
|
@@ -138,13 +103,6 @@ public class ExpoGaodeMapModule: Module {
|
|
|
138
103
|
* @param config 配置字典,包含 iosKey
|
|
139
104
|
*/
|
|
140
105
|
Function("initSDK") { (config: [String: String]) in
|
|
141
|
-
// 检查是否已同意隐私协议
|
|
142
|
-
// if !ExpoGaodeMapModule.privacyAgreed {
|
|
143
|
-
// print("⚠️ ExpoGaodeMap: 用户未同意隐私协议,无法初始化 SDK")
|
|
144
|
-
|
|
145
|
-
// return
|
|
146
|
-
// }
|
|
147
|
-
|
|
148
106
|
// 1) 优先使用传入的 iosKey;2) 否则回退读取 Info.plist 的 AMapApiKey
|
|
149
107
|
let providedKey = config["iosKey"]?.trimmingCharacters(in: .whitespacesAndNewlines)
|
|
150
108
|
var finalKey: String? = (providedKey?.isEmpty == false) ? providedKey : nil
|
|
@@ -185,11 +143,6 @@ public class ExpoGaodeMapModule: Module {
|
|
|
185
143
|
* 开始连续定位
|
|
186
144
|
*/
|
|
187
145
|
Function("start") {
|
|
188
|
-
// 检查隐私协议状态
|
|
189
|
-
// if !ExpoGaodeMapModule.privacyAgreed {
|
|
190
|
-
// print("⚠️ ExpoGaodeMap: 用户未同意隐私协议,无法开始定位")
|
|
191
|
-
// return
|
|
192
|
-
// }
|
|
193
146
|
|
|
194
147
|
// 检查是否已设置 API Key
|
|
195
148
|
if AMapServices.shared().apiKey == nil || AMapServices.shared().apiKey?.isEmpty == true {
|
|
@@ -219,11 +172,7 @@ public class ExpoGaodeMapModule: Module {
|
|
|
219
172
|
* 返回位置信息和逆地理编码结果
|
|
220
173
|
*/
|
|
221
174
|
AsyncFunction("getCurrentLocation") { (promise: Promise) in
|
|
222
|
-
|
|
223
|
-
// if !ExpoGaodeMapModule.privacyAgreed {
|
|
224
|
-
// promise.reject("PRIVACY_NOT_AGREED", "用户未同意隐私协议,无法获取位置")
|
|
225
|
-
// return
|
|
226
|
-
// }
|
|
175
|
+
|
|
227
176
|
|
|
228
177
|
// 检查是否已设置 API Key
|
|
229
178
|
if AMapServices.shared().apiKey == nil || AMapServices.shared().apiKey?.isEmpty == true {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-gaode-map",
|
|
3
|
-
"version": "2.2.5
|
|
3
|
+
"version": "2.2.5",
|
|
4
4
|
"description": "一个功能完整的高德地图 React Native 组件库,基于 Expo Modules 开发,提供地图显示、定位、覆盖物等功能。",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -19,13 +19,17 @@
|
|
|
19
19
|
"ExpoGaodeMap",
|
|
20
20
|
"高德地图"
|
|
21
21
|
],
|
|
22
|
-
"repository":
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "https://github.com/TomWq/expo-gaode-map",
|
|
25
|
+
"directory": "packages/core"
|
|
26
|
+
},
|
|
23
27
|
"bugs": {
|
|
24
28
|
"url": "https://github.com/TomWq/expo-gaode-map/issues"
|
|
25
29
|
},
|
|
26
30
|
"author": "<TomWq>(https://github.com/TomWq)",
|
|
27
31
|
"license": "MIT",
|
|
28
|
-
"homepage": "https://github.com/TomWq/expo-gaode-map
|
|
32
|
+
"homepage": "https://github.com/TomWq/expo-gaode-map/tree/main/packages/core",
|
|
29
33
|
"dependencies": {
|
|
30
34
|
"supercluster": "^8.0.1"
|
|
31
35
|
},
|
|
Binary file
|