博主一直都是做web开发,前段时间有个小想法,想给自己做个android小应用(很小,功能特别简单)。

了解到可以用js直接做,貌似很简单,选用了wex5(基于codova插件)来直接开发。

  最终发现比直接用java踩到的坑还多,这里总结下:

1、在w文件中写的css会被做加工,可能产生问题。

  我在里面写了个h5动画效果,单独代码抽出来可以使用,放到wex5中就是不能生效,百思不得其解,我一直以为是哪里写错,或者和哪个效果产生冲突,想了两个晚上,还是没思路。把页面源码抓出来发给朋友帮忙看,朋友一下子就说明问题所在“某某地方应该要有px单位”。当真没想到,竟然是被编译软件去除掉的,我完全不敢设想是编译软件问题,还一直在寻找自己写的代码中的错误。

解决方法:把css写在单独的css文件里面(不和w文件同名),然后用资源引入,例如:<require xid="require1" url="css!$UI/xiangmu/animation"></require>

2、跨域问题。

  wex5的页面,在调试的时候都是指向例如127.0.0.1:8080域名,而自己使用的后端服务域名假设为example.com,ajax访问是需要跨域的,我以为这都是前提,不能修改。于是做了很多工作来解决跨域问题:

    I、服务端添加允许跨域访问的头(为了跟web比较像,放弃使用jsonp形式);

    II、返回sessionId(跨域访问,cookie带不过来,使用ajax返回头读不到);

    III、修改express-session中间件,使能直接query传递sessionID(这是express-session的一个坑,cookie带了加密,而我又不能直接读到cookie结果,所以只能修改它,这个方法很糟糕,很丑)

  整个开发过程,让人很难受,浪费很多时间,方法却依然如此丑。

解决办法:看了wex5文档里面,建议ajax请求使用插件带的request请求方法,就无需跨域(还是那么丑)

    我目前选择使用的是修改调试域名,直接使用自己的example.com域名,然后服务端对应wex5页面的更新请求全部使用304(not modify)返回。

总结:wex5并不是我所想象的能迅速开发出应用的(我以为就行浏览器功能加了本地页面,加了一些api)。整个技术栈还是比较深的。为了降低学习成本,我略过了官方文档,然而却带来的是自己屡次碰壁,把时间花在了各种旁门左道上面。

使用wex5得到的一些教训的更多相关文章

  1. WeX5学习笔记

    目录 WeX5学习笔记... 1 1.轻松看透WeX5产品能力和技术... 1 2.WeX5可以怎么玩?... 3 一.纯本地App. 3 二.关联一个网站,希望默认就打开某页... 4 三.UI设计 ...

  2. 新人入职100天,聊聊自己的经验&教训

    这篇文章讲了什么? 如题,本屌入职100天之后的经验和教训,具体包含: 对开发的一点感悟. 对如何提问的一点见解. 对Google开发流程的吐槽. 如果你 打算去国外工作. 对Google的开发流程感 ...

  3. 。。。欢乐捕鱼App WeX5 连接打包代理服务失败,请检查代理服务地址是否正确。。。

    今天学习了WeX5,第一次使用,使用它打包一个Web App 欢乐捕鱼的时候,在最终打包生成Native App的时候突然报错了,说:"连接打包代理服务失败,请检查代理服务地址是否正确&qu ...

  4. wex5 实战 图片触摸放大移动插件easyzoom的使用与集成

    一 前言 客户的需求就是上帝的召唤. 作为一个开发人员,或者软件从业者,客户的要求就是准则. 遇到一个客户,让我做一个图片放大,但是移动拖拽要定位精准.之前研究过一个hammer插件,多次尝试放大后的 ...

  5. wex5 实战 框架拓展之2 事件派发与data刷新

    一 前言 讲完公共data,相信大家对框架级的data组件级绑定有了更新的认识,接下来我们继续深入,以求研究明白wex5的框架能力. 在一个web项目中,其实有一个data, 是基础框架必须的data ...

  6. wex5 实战 框架拓展之1 公共data组件(Data)

    一 前言 wex5作为开发利器,框架本身的集成能力与拓展能力可谓简单强大.在学习过程中,对框架的拓展能力,需要通过实践来丰富.今天,我以实际工作中的实例,先来看一看,框架上的公共data组件的实现与用 ...

  7. wex5 实战 手指触屏插件 hammer的集成与优劣

    前言 前几天,给客户做了一个图片点击放大,很简单,客户说能不能双手指缩放图片呢? 想到了hammer,不管好用不好用,总得试. 网上居然没有像样的中文文档和成熟案例,有的文写的鬼都看不懂.还是自已动手 ...

  8. wex5 实战 用户点评与提交设计技巧

    最近遇到很多同学做毕业设计,其中有一项是用户点评与提交.功能并不复杂,同学们又不会,做为一个完整的功能,如果用wex5来设计开发,事半功倍.今天就以景区实战来向大家展示wex5的高效与强大.半天可以设 ...

  9. wex5 实战 省市县三级联动与地址薄同步

    无论是商城,还是快递,都要用到省市县三级联动,和地址薄,今天就以实战来制作,难点有3个: 1:三级联动,有wex5组件实现,相对简单,实战里对行数据进行了拼接 2:  地址薄选项,利用inputSel ...

随机推荐

  1. P与NP问题

    Polynomial Nondeterministic Polynomial P问题: 一个问题可以在多项式时间复杂度内解决 NP问题: 一个问题可以在多项式时间内证实或者证伪 NP-Hard问题: ...

  2. MySQL 5.7 解压版安装配置

    测试环境 系统:Windows 10专业版 版本:MySQL Server 5.7.14   提纲 修改配置文件 初始化 安装服务.启动服务 修改root密码   步骤 1.解压安装包 在MySQL官 ...

  3. jQuery innerWidth outerWidth(false/true)

    outerWidth默认为false

  4. Asp.NET利用ClientScript.RegisterStartupScript("")的同学,请注意!

    如果你想要在aspx.cs 文件用利用 ClientScript.RegisterStartupScript(""); 方法动态在DOM中执行脚本(比如想要将后置代码中的验证结果信 ...

  5. Spring的注解方式实现AOP

    Spring对AOP的实现提供了很好的支持.下面我们就使用Spring的注解来完成AOP做一个例子. 首先,为了使用Spring的AOP注解功能,必须导入如下几个包.aspectjrt.jar,asp ...

  6. jquery ajax 方法及各参数详解

    1.$.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息. 参数列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type ...

  7. linux环境初始化 用户问题

    linux 初始化系统配置(centos6) (2013-04-03 13:19:15) 转载▼   分类: linux 这篇博文是从别处转来的,原文地址http://zhoualine.iteye. ...

  8. sprint one

    产品backlog Id Name Imp Est How to demo 1 各个角色账号登录功能 30 20 建立数据库,数据库中存储一些角色的初始账号以便测试,输入账号密码,系统在数据库中查找账 ...

  9. react.js

    注释:      React JSX需要的注释格式是:      {/*....*/}      WebStorm默认的是:      /*.....*/   作为子节点 {/*...*/} 作为内联 ...

  10. python简介和入门

    一.什么是python? python是一种面向对象.解释型的计算机语言,它的特点是语法简洁.优雅.简单易学. 二.解释型语言和编译型语言 编译型语言--就是先把写好的程序翻译成计算机语言然后执行,就 ...