zoukankan      html  css  js  c++  java
  • Egret打包App Android热更新(4.1.0)

    官网教程: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后缀变化情况下,修改图片,图片名称和大小不变,图片是否会更新? 会。 

  • 相关阅读:
    API
    API
    for in
    event flow
    object
    Report of program history
    正则表达式
    伪类与伪元素
    Position
    js学习之原型(补充)
  • 原文地址:https://www.cnblogs.com/gamedaybyday/p/7535671.html
Copyright © 2011-2022 走看看