项目记录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(textLocalXmlInfoisPathfalse);
            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_VersionXmlNamecall));
                }
                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(urlPathm_VersionXmlNameserverCall,true));
        }
           
    }

你可能感兴趣的:(项目记录13--版本更新完成)