翻页显示数据

场景:比如像,手机翻书,翻到下一页,考试答题,翻到下一题, 总之:原理就是data组件切换到下一行显示数据,data.next() ,但是又想有contents组件页面切换的效果! 解决方法: contents中添加两个content,并且content页面的布局是一模一样的!都是正常的可视组件,绑定data组件字段,显示当前行数据。 比如点击事件中调用 contents.prev() 或者 contents.next(); 在contents组件的onActiveChange 事件中,判断 event.type 是向前翻页还是向后翻页,("prev"是向前, "next"是向后) 从而决定 调用data.prev() 还是 data.next()方法! 这样就可以实现切换页面的同时有切换数据! 看上去的效果就是发切换到上一页 或者 下一页! 并且实现起来很简单! 注意:(contents手动滑动翻页,无法区分是prev和next,可以自己接管touch事件,判断滑动的方向,实现代码逻辑http://docs.wex5.com/wex5-app-question-list-2071/)

实现单页应用页面不缓存,每次打开都重新加载

1.在index.w 定义shellImp 的js代码中,初始化完毕后执行代码: justep.Shell.setIsSinglePage(true) 或者 this.shellImpl.isSinglePage = true; 2.或者直接修改源码:/UI2/system/lib/portal/shellImpl.js 将这行代码 this.isSinglePage = false; 修改为 this.isSinglePage = true; 然后重新合并资源\tools\dist\dist.bat 即可生效

list中通过bind-if 或bind-visible属性做到,根据不同字段类型生成/显示不同样式

1.比如button组件放在list中某个div上!在div的bind-if属性上判断这个字段的值是否符合条件, 比如:val('字段') ==1 那么这个div里面的dom节点(button 组件)只有在符合条件的时候才会生成!否则运行时就没有这个dom节点的!这也是动态生成啊!其他组件也是类似的方法控制组件是否需要动态生成! 这中思路还可以实现,在list每一行中放置多种显示模板,每种显示风格都不一样,通过bind-if绑定字段来控制哪种风格的模板显示,就可以做到list中每行显示的风格都不一样! 2.如果字段变化!不需要页面立即生效!而是下一次打开页面的时候才生效的!那么就使用bind-if 如果是立马生效,请使用bind-visible属性可以! 这两个的区别就是,一个是没有生成dom节点!另一个是生成了!但是隐藏了!当字段变化后就可以立马显示! 动手试试就知道了!

二维码扫描URL在不同的设备中访问不同的地址打开页面

场景,比如某个页面的URL生成的二维码,通过手机浏览器扫描的时候直接打开这个通用的web应用的URL,微信扫一扫扫描的时候,打开的是微信公众号中配置的页面! 1.在页面的onload事件中,判断当前设备是什么?参考:http://docs.wex5.com/wex5-app-question-list-2006/ 2.如果是浏览器则直接正常运行即可,如果是微信中访问的,则需要重新拼接URL字符串,格式是: 比如完整url , 域名osc16-vip.cloudx5.com一定要是自己公众号备案的 https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxb3efde94a26e25fe&redirect_uri=http://osc16-vip.cloudx5.com/v-MfUfAv-zh_CN-/weixinAply/index1.w&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect 然后使用window.location.href = 此URL 重新调整即可打开公众号格式的页面!因为这样打开的页面才可以获取用户信息,或其他能力

长按事件中弹出popOver,并且点击空白处popOver消失

因为长按事件会触发点击事件,而点击空白处popOver消失,这样就导致无法长按弹出popOver了! 解决方案 在touchStart中 将popOver 的 dismissible 属性设置为false model.comp("popMenu1").dismissible=false 在touchEnd中 将popOver 的 dismissible 属性设置为true model.comp("popMenu1").dismissible=true

list中每一行点击,在当前行弹出popMenu组件

在list的点击事件中获取当前行的dom节点,可以参考http://docs.wex5.com/wex5-ui-question-list-2061 然后通过popMenu.set({'anchor':dom});就可以指定在当前的dom节点周围显示popOver 比如在button的点击事件中弹出popMenu,代码如下 var pop = this.comp("popMenu"); var dom = event.source.domNode; pop.set({'anchor':dom}); pop.show();

app中获取当前位置信息

获取当前位置坐标的方法:http://docs.wex5.com/cordova-plugin-geolocation/ 旧版本的时候,定位插件依赖百度插件,Android 可以直接获取地理位置信息! 而ios只能获取GPS 的经纬度,需要将经纬度信息传递到后台,调用百度API获取位置信息! 而新版本Android也不能直接获取百度定位的信息了!应该ios一样的!还是需要将经纬度传递到后台action ,然后调用百度地图API获取地理位置信息! 参考:/Baas/justep/takeout.service.m queryAddr /Baas/justep/Takeout.java 看外卖案例提供的方法!传递经纬度到后台,获取地理位置的详细信息   或者js直接请求百度API 调用百度地图API http://api.map.baidu.com/geocoder?location=" + lat + "," + lon + "&output=json&key=8CmRzvUum1x3E40yCkfhwmMi" 可以通过经纬度进行位置检索,返回的数据有详细位置信息。   var me = this; function successCallback(position) { var lat [...]