官网教程:http://developer.egret.com/cn/github/egret-docs/Native/native/hotUpdate/index.html

 详细可看官网教程,我这里只是记录下实际操作过程,留个记录...

 

主要流程:

1 设置app加载模式

2 设置php文件

3 每次打新包,只需要上传服务器后,再修改php的game_code版本号,当app本地和php的game_code名称不一致时,就能实现热更新。

 

1 设置加载模式

默认为0。设置为1,表示启动app时,回去请求php,对比“ game_code.zip ”名称是否一致,不一致,就进行更新。 

 

修改case 1处为自己的php地址。 

 

关于game_code.zip名字

app本地是设置在主文件中

服务器设置在php里,具体见2 php文件部分。

 

2 php文件

修改$ip为自己php地址,我php访问链接是 “http://www.biliking.com/demo/hotupdate/hotupdate.php”,所以设置应该是”http://www.biliking.com/demo/hotupdate/”,不要忘了最后的斜杠。

再次每次发布新包后,修改 define('CASE_NAME','666')的版本号,我这里是666。

<?php
define('CASE_NAME', '666');
function startsWith($string, $pattern) {
    return $pattern === "" || strrpos($string, $pattern, -strlen($string)) !== FALSE;
}
$json = array();  //不存在就false;
if (!startsWith(CASE_NAME, 'http://')) {
    $ip = "http://www.biliking.com/demo/hotupdate/";
    $root = $ip  . CASE_NAME ."/game_code_".CASE_NAME. ".zip";
    $update = $ip  . CASE_NAME;
    $json["code_url"] = $root;
    $json["update_url"] = $update;
} else {
    $json["code_url"] = CASE_NAME;
    $json["update_url"] = dirname(CASE_NAME);
}
echo(json_encode($json));
?>

  

可以在浏览器中直接输入php访问地址,查看返回信息是否正确。如果格式不正确,是没法热更的。

注意发布的新包,需要新建一个版本号一致的文件夹,放在该文件夹内。而不是直接放在php同级目录下。

 

 

 3 关于热更新的屎黄色界面

有热更的时候,会有一个存在一小段时间的屎黄色界面,初步推断,那是个填满界面的进度条。

这个可以不管,因为之前为了防止加载黑屏,会在顶层放一张图片,这张图片也会盖住这个屎黄色界面。

 

4 一些测试

4.1  game_code后缀不变情况下,修改代码是否会热更新?  不会。

4.1 game_code后缀不变情况下,修改图片是否会热更新?  不会。

4.2 game_code后缀变化情况下,修改图片,图片名称和大小不变,图片是否会更新? 会。 

 

posted on 2017-09-17 15:09  gamedaybyday  阅读(1005)  评论(0编辑  收藏  举报