From 07952df53abefdabbfc7f0eff802ec95c3f48581 Mon Sep 17 00:00:00 2001 From: cebgcontract <99630598+cebgcontract@users.noreply.github.com> Date: Tue, 20 Dec 2022 13:55:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9iOS=E4=B8=8Ajs=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E9=80=BB=E8=BE=91,=20=E4=BC=98=E5=85=88=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E6=B8=B8=E6=88=8F=E7=83=AD=E6=9B=B4=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cocos/platform/apple/CCFileUtils-apple.h | 1 + cocos/platform/apple/CCFileUtils-apple.mm | 15 +++++++++++++++ cocos/scripting/js-bindings/manual/jsb_global.cpp | 6 ++++-- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/cocos/platform/apple/CCFileUtils-apple.h b/cocos/platform/apple/CCFileUtils-apple.h index 8e9da63..95e0f26 100644 --- a/cocos/platform/apple/CCFileUtils-apple.h +++ b/cocos/platform/apple/CCFileUtils-apple.h @@ -50,6 +50,7 @@ public: virtual ~FileUtilsApple(); /* override functions */ virtual std::string getWritablePath() const override; + virtual std::string getExtFileDirectory() const override; virtual std::string getFullPathForDirectoryAndFilename(const std::string& directory, const std::string& filename) const override; virtual ValueMap getValueMapFromFile(const std::string& filename) override; diff --git a/cocos/platform/apple/CCFileUtils-apple.mm b/cocos/platform/apple/CCFileUtils-apple.mm index e71e029..b2a26aa 100644 --- a/cocos/platform/apple/CCFileUtils-apple.mm +++ b/cocos/platform/apple/CCFileUtils-apple.mm @@ -243,6 +243,21 @@ std::string FileUtilsApple::getWritablePath() const return strRet; } +std::string FileUtilsApple::getExtFileDirectory() const +{ + if (_writablePath.length()) + { + return _writablePath; + } + + // save to document folder + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); + NSString *documentsDirectory = [paths objectAtIndex:0]; + std::string strRet = [documentsDirectory UTF8String]; + strRet.append("/"); + return strRet; +} + bool FileUtilsApple::isFileExistInternal(const std::string& filePath) const { if (filePath.empty()) diff --git a/cocos/scripting/js-bindings/manual/jsb_global.cpp b/cocos/scripting/js-bindings/manual/jsb_global.cpp index 4298a44..15a1c49 100644 --- a/cocos/scripting/js-bindings/manual/jsb_global.cpp +++ b/cocos/scripting/js-bindings/manual/jsb_global.cpp @@ -231,16 +231,18 @@ void jsb_init_file_operation_delegate() se::ScriptEngine::getInstance()->setFileOperationDelegate(delegate); } + std::vector searchPaths; + // iOS: /var/mobile/Containers/Data/Application/guid/Documents std::string path = FileUtils::getInstance()->getWritablePath(); +#if CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID std::string extPath = FileUtils::getInstance()->getExtFileDirectory(); extPath += "luaframework/"; path += "luaframework/"; - std::vector searchPaths; searchPaths.push_back(extPath); +#endif // CC_PLATFORM_ANDROID searchPaths.push_back(path); searchPaths.push_back(""); FileUtils::getInstance()->setSearchPaths(searchPaths); -// FileUtils::getInstance()->addSearchResolutionsOrder(path, true); } bool jsb_enable_debugger(const std::string& debuggerServerAddr, uint32_t port, bool isWaitForConnect)