使用AppCan自带的升级功能实现移动端升级

1.需要在AppCan项目的config.xml文件中设置“更新地址”,即在执行uexWidget.checkUpdate();时访问的后台页面地址,比如:

  http://192.168.0.10:8888/XXXX/servlet/CheckUpdateServlet

2.在后台CheckUpdateServlet.java文件中

  A.获取移动端自带的两个参数:ver,platform

  String oldVer = request.getParameter("ver");   //目前移动端app的版本号,如:00.00.0000
  String platform = request.getParameter("platform");   //移动端类型,ios:0,android:1

  B.根据官方的格式,准备最新app的数据,xml格式:  

  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  DocumentBuilder db = dbf.newDocumentBuilder();
  Document doc = db.newDocument();
  Element node = doc.createElement("results");

  Element node1 = doc.createElement("updateFileName");
  node1.setTextContent("xxx");  //移动端安装文件的文件名
  node.appendChild(node1);

  Element node2 = doc.createElement("updateFileUrl");
  node2.setTextContent("xxxx");  //Android:移动端安装文件在服务器上的地址,ios:移动端安装文件在AppStore中的地址
  node.appendChild(node2);

  Element node3 = doc.createElement("fileSize");
  node3.setTextContent("10000");  //移动端安装文件的大小
  node.appendChild(node3);

  Element node4 = doc.createElement("version");
  node4.setTextContent("00.00.0001");  //移动端安装文件最新版本号
  node.appendChild(node4);

  doc.appendChild(node);

  OutputFormat xmlout = new OutputFormat(doc);
  /** 设置编码方式 */
  xmlout.setEncoding("UTF-8");
  /** 保留原有的换行 */
  xmlout.setPreserveSpace(true);
  /** 采用换行缩进 */
  xmlout.setIndenting(true);
  StringWriter sw = new StringWriter();

  XMLSerializer xmlSerilizer = new XMLSerializer(sw,xmlout);
  xmlSerilizer.serialize(doc);
  retValue = sw.toString();

3.前台移动端处理服务器返回数据:

//AppCan根据后台返回的xml数据,自动转换信息

uexWidget.cbCheckUpdate = function(opCode, dataType, jsonData) {

  var obj = eval('(' + jsonData + ')');
  var tips = '';

  if (obj.result == 0) {

    updateurl = obj.url;
    var mycars = ['稍后', '更新'];
    uexWindow.confirm('', '当前有新版本,是否更新?', mycars);
  } else if (obj.result == 1) {

    tips = "Current version is the newest";
  } else if (obj.result == 2) {

  tips = "Unknow error";
  } else if (obj.result == 3) {

  tips = "Params error";
  }
}

原文地址:https://www.cnblogs.com/xingkai/p/4867301.html