예제 #1
0
    // 获取版本号
    IEnumerator GetResVersion(DelegateGetResVersion delFun)
    {
        LogMgr.UnityLog("ger version form " + m_resServerUrl + "/" + VersionFileName);
        WWW wwwVersionFile = new WWW(m_resServerUrl + "/" + VersionFileName);

        yield return(wwwVersionFile);

        if (null != wwwVersionFile.error)
        {
            LogMgr.UnityLog(wwwVersionFile.error);
            delFun(false);
        }
        else
        {
            if (!int.TryParse(wwwVersionFile.text, out m_remoteVersion))
            {
                delFun(false);
            }
            else
            {
                delFun(true);
            }
        }
    }
예제 #2
0
    // 获取版本号
    IEnumerator GetResVersion(DelegateGetResVersion delFun)
    {
        // 读取本地版本号文件
        m_localVersion = -1;
        int    appVersion           = -1;
        string localVersionFilePath = LocalVersionPath + "/" + VersionFileName;         // 本地下载的版本号文件 android在data/包名下	ios在Document/
        string AppVersionFilePath   = GetAppDataUrl(AppVersionFolder, VersionFileName); //包体里的版本号文件

        if (File.Exists(localVersionFilePath))
        {
            LogModule.DebugLog("read local version:" + localVersionFilePath.ToString());
            if (!Utils.GetFileInt(localVersionFilePath, out m_localVersion))
            {
                LogModule.ErrorLog("parse version error");
            }
        }

        WWW wwwAppVersionFile = new WWW(AppVersionFilePath);

        yield return(wwwAppVersionFile);

        if (!string.IsNullOrEmpty(wwwAppVersionFile.error))
        {
            LogModule.DebugLog("read app version:" + AppVersionFilePath.ToString() + " error:" + wwwAppVersionFile.error);
        }
        else
        {
            if (!int.TryParse(wwwAppVersionFile.text, out appVersion))
            {
                LogModule.ErrorLog("parse app path version error");
            }
        }

        if (appVersion > m_localVersion)        //包体版本号大于本地下载,如新包覆盖安装,则清除本地下载记录
        {
            // clean read path
            LogModule.DebugLog("app version is bigger than local, clean local path");
            Utils.DeleteFolder(LocalVersionPath);
            Utils.DeleteFolder(BundleManager.LocalPathRoot);
            m_localVersion = appVersion;
        }

        // 读取远程版本号文件
        LogModule.DebugLog("ger version form " + m_resServerUrl + "/" + VersionFileName);
        WWW wwwVersionFile = null;

        yield return(StartCoroutine(DownloadHelper.GetCDNWWW(m_resServerUrl + "/" + VersionFileName, value => wwwVersionFile = value)));

        if (!string.IsNullOrEmpty(wwwVersionFile.error))
        {
            LogModule.ErrorLog(wwwVersionFile.error);
            delFun(false);
        }
        else
        {
            if (!int.TryParse(wwwVersionFile.text, out m_remoteVersion))
            {
                delFun(false);
            }
            else
            {
                LogModule.DebugLog("get version form " + m_resServerUrl + "/" + ResLevelIndexFileName);
                WWW wwwResLevelIndexFile = null;
                yield return(StartCoroutine(DownloadHelper.GetCDNWWW(m_resServerUrl + "/" + ResLevelIndexFileName, value => wwwResLevelIndexFile = value)));

                if (!string.IsNullOrEmpty(wwwResLevelIndexFile.error))
                {
                    LogModule.ErrorLog(wwwResLevelIndexFile.error);
                    delFun(false);
                }
                else
                {
                    delFun(true);
                }
            }
        }
    }