From 28e9af603d44f9daebde3e240fe572af3c0f40d5 Mon Sep 17 00:00:00 2001 From: pollyzhang Date: Tue, 27 Dec 2022 17:34:23 +0800 Subject: [PATCH] feat(core): dynamic loading support custom protocols --- .../sdk/src/main/jni/include/loader/adr_loader.h | 4 ++-- android/sdk/src/main/jni/src/loader/adr_loader.cc | 13 ++++--------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/android/sdk/src/main/jni/include/loader/adr_loader.h b/android/sdk/src/main/jni/include/loader/adr_loader.h index fd9a6c5d48d..edf46ca953b 100644 --- a/android/sdk/src/main/jni/include/loader/adr_loader.h +++ b/android/sdk/src/main/jni/include/loader/adr_loader.h @@ -101,8 +101,8 @@ class ADRLoader : public hippy::base::UriLoader { bool LoadByAsset(const unicode_string_view& file_path, const std::function& cb, bool is_auto_fill = false); - bool LoadByHttp(const unicode_string_view& uri, - const std::function& cb); + bool LoadByJni(const unicode_string_view& uri, + const std::function& cb); std::shared_ptr bridge_; AAssetManager* aasset_manager_; diff --git a/android/sdk/src/main/jni/src/loader/adr_loader.cc b/android/sdk/src/main/jni/src/loader/adr_loader.cc index 42b1574a6c8..c161e29fcf4 100644 --- a/android/sdk/src/main/jni/src/loader/adr_loader.cc +++ b/android/sdk/src/main/jni/src/loader/adr_loader.cc @@ -64,9 +64,6 @@ bool ADRLoader::RequestUntrustedContent(const unicode_string_view& uri, std::u16string schema_str = schema.utf16_value(); if (schema_str == u"file") { return LoadByFile(path, cb); - } else if (schema_str == u"http" || schema_str == u"https" || - schema_str == u"debug") { - return LoadByHttp(uri, cb); } else if (schema_str == u"asset") { if (aasset_manager_) { return LoadByAsset(path, cb, false); @@ -75,9 +72,7 @@ bool ADRLoader::RequestUntrustedContent(const unicode_string_view& uri, cb(u8string()); return false; } else { - TDF_BASE_DLOG(ERROR) << "schema error, schema = " << schema; - cb(u8string()); - return false; + return LoadByJni(uri, cb); } } @@ -110,7 +105,7 @@ bool ADRLoader::RequestUntrustedContent(const unicode_string_view& uri, [p = std::move(promise)](u8string bytes) mutable { p.set_value(std::move(bytes)); }); - bool ret = LoadByHttp(uri, cb); + bool ret = LoadByJni(uri, cb); content = read_file_future.get(); return ret; } else if (schema_str == u"asset") { @@ -162,8 +157,8 @@ bool ADRLoader::LoadByAsset(const unicode_string_view& path, return true; } -bool ADRLoader::LoadByHttp(const unicode_string_view& uri, - const std::function& cb) { +bool ADRLoader::LoadByJni(const unicode_string_view& uri, + const std::function& cb) { std::shared_ptr instance = JNIEnvironment::GetInstance(); JNIEnv* j_env = instance->AttachCurrentThread();