天天看点

项目记录13--版本更新完成

两天时间终于把版本更新搞出来了,太高兴了。已经支持Android的热跟新了。 

思路就是:在本地使用自己编写的自动生成版本工具生成version,新的版本放到服务器上。本地的版本xml和服务器的对比,将md5改变的找出来下载,里面要注意需要对大版本重新安装,还有检查网络,写入本地(沙盒),细节不少。

   /// <summary>

    /// 加载本地xml回调

    /// </summary>

    /// <param name="obj"></param>

    public void LoadLocalXmlCallBack(System.Object obj,bool isPath)

    {

        Debug.Log("LoadLocalXmlCallBack");

        string text = "";

        if (isPath == true)

            text = obj as string;

        else

        {

            WWW temp = obj as WWW;

            text = temp.text;

        }

        if (text.Length <= 0)

        {

            Debug.Log("加载本地Xml失败!!,请检查!!");        

        }

        else

        {

            Debug.Log("加载本地版本配置成功,正在解析本地Xml!!");

            ReadXMLVersion(text, LocalXmlInfo, isPath, false);

            Debug.Log("解析完成本地版本xml,检查合法性!!");

            if (LocalXmlInfo.m_DownRootPath == "" || LocalXmlInfo.m_Platform == "")

            {

                //如果是路径重新下载

                if (isPath)

                {

                    File.Delete(ResConfig.PersistentAsset(m_VersionXmlName));  //删除沙盒里面文件

                    LoadHelp.LoadLocalXmlCallBack call = new LoadHelp.LoadLocalXmlCallBack(LoadLocalXmlCallBack);

                    StartCoroutine(m_loadHelp.LoadLocalAsset(m_VersionXmlName, call));

                }

                else

                {

                    Debug.Log("load version xml error ...");

                    Debug.Log("load version xml error !");

                    Application.Quit();

                }

                return;

            }

            //下载服务器上的xml

            Debug.Log("下载服务器上面的版本信息xml!!");

            string urlPath = LocalXmlInfo.m_DownRootPath + "//" + PlatformUtil.GetPlatformName() + "//" + m_VersionXmlName;

            LoadHelp.LoadServerAssetCallBack serverCall = new LoadHelp.LoadServerAssetCallBack(LoadServerXmlCallBack);

            StartCoroutine(m_loadHelp.LoadServerAsset(urlPath, m_VersionXmlName, serverCall,true));

        }

    }