我可以: 邀请好友来看>>
ZOL论坛 > 手机论坛 > 手机综合讨论论坛 > 开云手机APP官方5x55,VIP安卓和IOS版本升级更新
帖子很冷清,卤煮很失落!求安慰
返回列表
签到
手机签到经验翻倍!
快来扫一扫!

开云手机APP官方5x55,VIP安卓和IOS版本升级更新

32浏览 / 0回复

开云罓5x55丶...

开云罓5x55丶vip

0
精华
7
帖子

等  级:Lv.1
经  验:129
  • Z金豆: 13

    千万礼品等你来兑哦~快点击这里兑换吧~

  • 城  市:北京
  • 注  册:2023-09-17
  • 登  录:2023-09-19
发表于 2023-09-17 13:21:51
电梯直达 确定
楼主

准备


window电脑


java jdk (包含了java jre)下载安装


android sdk下载安装


android studio下载安装


gradle下载


一台带sim卡的android手机


nodejs下载安装


 npm install -g cordava 安装


 


1、运行app,拉取版本控制文件 https://xxx.com/project/update.json


/* 格式如下 MD5_8标示8位数的md5值*/

/* version:全量更新的tag,如果本地与version不一样,就做全量更新*/

/* last_version:最新的版本*/

/* pres_version:有增量包的版本,不超过10个*/

{

  version:20230101

  last_version:"MD5_8"

}

1.

2.

3.

4.

5.

6.

7.

8.

需要app端实现 下载增量包或全量包,更新h5版本


1、如果version与本地不同,则下载全量包 ${down_path}${last_version}.zip


2、如果version与本地相同,则判断last_version


3、如果last_version与本地不同,首先下载增量包 ${down_path}${pre_version}-${last_version}.zip,


4、如果增量包存在,则完成更新下载


5、如果增量包不存在,则下载全量包${down_path}${last_version}.zip


6、如果全量包存在,则完成更新下载


7、如果全量包不存在,则更新下载失败,客户端继续使用旧版本


 碰到的问题


访问本地assets目录下的json文件,解析成json


String CACHEPATH = "update.json";//assets目录下的缓存文件

        String UPDATEPATH = "http://caoke90.gitee.io/suiplugin/update.json";//每次更新的文件

        String DOWNDIR = "https://example.com/project/dist/";//zip所在的远程目录


        String pre_res_version="";

        String pre_h5_version="";

        try {

            // 1. 读取Android应用程序资源JSON文件

            InputStreamReader isr = new InputStreamReader(getAssets().open(CACHEPATH), "UTF-8");

            BufferedReader br = new BufferedReader(isr);

            String line;

            StringBuilder builder = new StringBuilder();

            while ((line = br.readLine()) != null) {

                builder.append(line);

            }

            br.close();

            isr.close();

            JSONObject cacheJSON = new JSONObject(builder.toString());//builder读取了JSON中的数据。

            //直接传入JSONObject来构造一个实例

            pre_res_version = cacheJSON.getString("res_version");

            pre_h5_version = cacheJSON.getString("h5_version");

        }

        catch (Exception e) {

           Log.i("updateH5Assets","assets目录不存在"+CACHEPATH);

        }

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

 


https请求json报错:


1、使用okhttp3,src目录AndroidManifest.xml文件manifest中添加下一行,配置允许请求网络


1.

2、src目录下build.gradle文件中添加依赖,用gradle下载


implementation 'com.squareup.okhttp3:okhttp:4.9.0'

1.

3、请求https报错,设置信任所有的证书,定义了单例Ajax,Ajax.getText("https://www.cnblogs.com/caoke/p/17209909.html")


4、下载zip包,解压到cache目录下www目录异常,读取本地json文件,报错json文件,定义了工具类UtilsApi,本地h5文件的更新功能有了




 


 


5、在index.html页面点击a标签打开test.html,发现报错,添加webviewClient解决


 到目前为止:实现了h5的版本更新功能。


入口文件:MainActivity.java




View Code


h5更新功能:UtilsApi.java




View Code


接口请求:Ajax.java




View Code


 


JS调用Android基本有下面三种方式,主要用到第2个


webView.addjInterface()

WebViewClient.shouldOverrideUrlLoading()

WebChromeClient.onJsaleet()/onJsConfirm()/onJsPrompt() 方法分别回调拦截JS对话框aleet()、confirm()、prompt()消息


Android调用JS,主要用到第1个


webView.loadUrl();

webView.evaluatej()


通过数据格式消息体,实现两端的听、说通信

1.

public class Message {

    public String responseId;

    public String responseData;

    public String callbackId;

    public String data;

    public String handlerName;

}

1.

2.

3.

4.

5.

6.

7.

callbackId等于responseId

1.

根据jsbrige1.0.4框架版本,实现了通信方案

1.

前端js调用java

1.

1、js端带着请求格式Message{handlerName,callbackId,data},用ifreme.src通知java开始接受数据

1.

2、java端loadUrl调用j:WebViewjBridge._fetchQueue();

1.

3、js端拼接数据,

1.

messagingifreme.src = CUSTOM_PROTOCOL_SCHEME + '://return/_fetchQueue/' + encodeURIComponent(messageQueueString);

1.

3、java端在shouldOverrideUrlLoading中接受数据集合,flushMessageQueue函数中处理请求或者回复

1.

java调用前端js


1、页面不存在时记录要说的,页面在就直接发送数据


2、函数将数据转成请求格式Message{handlerName,callbackId,data}的数据,然后发送出去

1.

2.

3.

4.

5.

2、java端loadUrl调用j:WebViewjBridge._handleMessageFromNative('%s');

1.

3、js端在_dispatchMessageFromNative函数中处理请求或者回复,回复格式Message{responseId,responseData}

1.



View Code

-----------------------------------

h5app升级版本 ios h5怎么更新

https://blog.51cto.com/u_16099174/6699554


高级模式
论坛精选大家都在看24小时热帖7天热帖大家都在问最新回答

针对ZOL论坛您有任何使用问题和建议 您可以 联系论坛管理员查看帮助  或  给我提意见

快捷回复 APP下载 返回列表