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)