showPage 页面第一次打开自动退出,第二次打开就正常了!

门户页面制作的时候!index.w中 存在windowContainer组件,静态指定了main.w 主页! 打开页面的时候,显示主页没问题!可是第一次跳转其他页的时候justep.Shell.showPage('页面')   会闪退回主页!第二次打开就正常了! 解决方法: 原因是index.js中没有写justep.Shell.showPage('main') 如果门户页使用静态的windowContainer组件指定了主页的话!必须在js(可以是onLoad事件中)中调用justep.Shell.showPage('main') 跳转到主页,才可以的!

Android和ios 版本更新,同时发布资源,但是ios还没有审核通过怎么办?

重新打包编译资源后 生成的资源里面,有一个配置文件 appMetadata_in_server.json 是一个json结构的文件,部署的时候手动修改一下这个配置文件 中的appInfo  iosApp version 这个版本号改成旧的(上一次编译的版本)!,那么苹果暂时就不会提示更新了! 等审核通过以后,再手动修改它,改成新版本!就可以了! (注意:苹果打包版本更新的地址是:指定AppStore 的下载页面!需要用户自己下载安装)

list组件渲染完毕后执行js代码!

list组件只有一个事件是onAfterRender  ,list组件每行渲染完毕都会触发一次这个事件的! 如果想实现的逻辑是整个list渲染完毕后,再去执行,怎么办呢? 解决方法: 在onAfterRender  中 写一个判断条件 判断list中生成的dom节点 数量(比如li标签的个数)和data.coutn() 是否相等?? 如果相等,就说明list渲染完毕了! onAfterRender   事件中判断代码格式大约是: if($("li").length ==  data.coutn()){ //执行list渲染完成后的代码逻辑 }

模式1或模式2打包真机调试

真机调试的文档是参考:http://docs.wex5.com/android-and-ios-device-debugging/ 一般情况,模式3打包就可以真机调试了, 一些特殊情况下,需要模式1或者模式2打包进行真机调试 模式1打包的时候,默认不支持真机调试,需要修改一下配置 /Native/templates/advanced/platforms/android/AndroidManifest.xml <application>里加了一行这个配置 android:debuggable="true" 就可以进行真机调试了   cordova的说明文档有介绍:http://cordova.apache.org/docs/en/6.x/guide/next/index.html#page-toc-source

app中的音频播放

1.使用插件:cordova-plugin-media   参考http://docs.wex5.com/cordova-plugin-media/ 案例:/audio/mainActivity.w 2.使用audio 标签实现,比如w源码中 添加audio标签 <audio xid="bgMusic"> <source src="music.mp3" type="audio/mp3"></source> </audio> 或者 <audio xid="bgMusic" src="music.mp3" controls="controls"></audio> js中获取audio dom节点使用 js原生的方法播放音频 Model.prototype.button3Click = function(event){ var audio = this.getElementByXid("bgMusic"); //播放(继续播放) audio.play(); [...]

文件上传的实现方法

1.使用attachmentSimple组件,当然服务器端接收文件的写法应该参考:/Baas/justep/SimpleFileStore.java http://docs.wex5.com/wex5-ui-question-list-2100 然后设置attachmentSimple 指向你的服务器! 2.如果你的服务器端sevlet 接口已经写好了,不是通过attachmentSimple 上传的!可以通过标准的ajax 去上传图片,比如参考:http://bbs.wex5.com/forum.php?mo ... 1&pid=165340769 这样input type=file就能上传了! 这种方法可以上网查! 3.app中还可以使用corodva插件实现文件上传!指定你写的servlet 接口即可 http://bbs.wex5.com/forum.php?mod=viewthread&tid=68669 http://bbs.wex5.com/forum.php?mo ... 8&pid=165225779

扩展空间的用法

在一些特殊情况下,开发者需要重写系统自带的源码,比如重新system目录下的某些组件源码,或者重新portal  下面的门户样式 等。 这个时候,不要直接去修改它的源码,因为这种做法,后期版本升级会很难维护的,因为你早已忘记自己修改了哪些资源?这些资源在版本升级后,有没有更新?  会造成各种冲突。。。 解决方法: 使用扩展空间的方式修改系统自带的源码,比如你想修改:\UI2\portal\sample\index.w 的文件 你就应该在UI2下 新建一个目录portal_X    将这个文件拷贝到扩展空间的相同目录结构下:\UI2\portal_X\sample\index.w    进行修改, 其他所有功能的扩展空间,文件修改也是这样做的!就是在UI2下  创建一个相同名称的文件夹  +  _X   命名,然后把要修改的文件拷贝到  _X 扩展的相同目录下, 运行的时候,扩展空间会自动覆盖原始空间的资源! 这样就保证了修改系统原始文件后,当x5版本更新后,也能知道哪些文件是自己改动过的,以便重新调整代码 (当然,自己创建的UI2下的应用,也支持扩展空间) 注意:由于java 和 jar包无法在扩展空间编译,所以,java 和 jar包只是名义上的放在扩展空间,真正运行的时候,可以把扩展空间的资源全部覆盖到原始空间去,这样既可以进行资源维护,也可以正常发布运行了,(就是如果扩展有java,必须覆盖到原始空间才能正常运行)

data组件设置各种规则后,通过js代码判断规则是否符合条件

1.js代码进行提示 data.isValid() 是判断data组件的规则是否都满条件 data.getInvalidInfo() 表示那些不符合规则的提示信息, var data = this.comp('data'); var isValid = data.isValid(); if(!isValid){ throw new Error (data.getInvalidInfo()); } 2.页面动态绑定提示信息 有些需求的页面是要 实时显示输入数据是否符合规则的 可以在页面上添加一个提示信息的标签 标签 bind-validationMessage 属性 绑定某个data组件字段的值! 当这个值输入不符合规则的时候! 设置绑定的标签就会动态显示,不符合规则的提示信息 , 3.案例:点击下载rule 查询出来的数据必须编辑后才生效的! 或者是新增的数据可以直接生效!data组件行状态如果是none,则规则不生效! [...]