博主一直都是做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. 微信h5页面禁止下拉露出网页来源

    1.可以给document的touchmove事件禁止掉就行了 document.querySelector('body').addEventListener('touchmove', functio ...

  2. ProcessExplore 最新版

    http://files.cnblogs.com/files/zhangdongsheng/ProcessExplorer.zip

  3. 通过js给android控件WebView设padding

    项目中有个界面是用来显示一个网页的,很简单,放个WebView就ok了,可是返回按钮放在哪 ,ui的设计是在底部显示一个半透明的条,左边有一个返回按钮.这个条显示在内容上面.我有一个担心,就是要是最下 ...

  4. php : 基础(5)

    函数 函数的定义: 形式: function 函数名 ( [$形参1] [,$形参2] [,.... ] ){ //函数体...... } 说明: 定义时使用的形参,其实就是一个变量--只能在该函数内 ...

  5. Comparator

    1.java.util.Comparator 一个实现了comparator接口的对象能够对比不同的对象.它不能用于同一个类的不同实例的对比,但是可以用于其他的类的实例做对比.必须实现java.uti ...

  6. Solr Cloud - SolrCloud

    关于 Solr Cloud Zookeeper 入门,介绍 原理 原封不动转自 http://wiki.apache.org/solr/SolrCloud/ ,文章的内存有些过时,但是了解原理. Th ...

  7. Gvim常用命令

    这是一篇较全的vim命令.特记录下来,有稍作修改说明.摘http://hi.baidu.com/ui176/item/b00ae7c0eeaba52847d5c0c5 Vim常用命令 跳到指定的行号: ...

  8. jquery.nicescroll完美滚动条使用方法

    配置参数 当调用"niceScroll"你可以传递一些参数来定制视觉方面: cursorcolor - 十六进制改变光标颜色,默认值是"#000000" cur ...

  9. 2016年12月31日 学习java 第一天

    6个月没写代码了 现在从头开是学 又遇到了很基础的问题 以前配环境变量的时候  配过classpath  其实不要配classpath  因为运行的时候会优先去classpath去找 class文件  ...

  10. IntelliJ IDEA中Maven项目的默认JDK版本

    在IntelliJ IDEA 15中使用Maven时,IDEA将默认的编译版本.源码版本设置为jdk5.编译项目的时候出现警告:"Warning:Java: 源值1.5已过时, 将在未来所有 ...