本方法适合小包,会直接下载apk,然后覆盖安装,如果想系统的实现app热更新,还请使用目前流行的Lua等方法。
unity版本2019.4.36
android studio版本2021.1.1
一、Unity部分代码
1.检测服务器是否有新版本
IEnumerator IEDetectVersion()
{
localVersion = PlayerPrefs.GetFloat("appVersion", 0);//获取本地缓存的app版本
var vversionurl = "http://59.111.105.78:82/";
UnityWebRequest www = UnityWebRequest.Get(vversionurl);
yield return www.SendWebRequest();
if (www.isHttpError || www.isNetworkError)
{
print(www.error);
}
else
{
var vtxt = www.downloadHandler.text;
serverVersion = float.Parse(vtxt);//获取服务器app版本
if (serverVersion > localVersion)
{
progressPanel.gameObject.SetActive(false);//隐藏下载进度条
dialogPanel.gameObject.SetActive(true);//显示提示更新面板
ShowPanel(localVersion, serverVersion);//显示更新面板
}
else
{
Globals.Instance.takePicture.RequestUseCamera();//其他操作
}
}
}
2.下载并更新app
IEnumerator DownLoadApk()
{
dialogPanel.SetActive(false);//隐藏提示更新面板
progressPanel.SetActive(true);//显示下载进度条
var vapkurl = "http://59.111.105.78:82/111.apk";//apk下载地址