About hecr

该作者尚未填入任何详情
So far hecr has created 10 blog entries.

BeX5介绍–推送功能

BeX5从V3.2.1版本开始,内置支持了推送功能,支持将消息推送到多端:Android App, IOS App, 微信。 推送案例源码:message 运行效果            案例说明 消息内容 消息接收者:标识消息发送给哪些用户,可以是一个组织的FID或人的ID; 消息标题:显示在手机app通知栏或微信中的内容; 消息类型:默认值是default,对于这类消息,当点击通知栏中的消息标题时,会自动启动手机app,并打开消息中url指定的功能页面;用户可以在发送消息时,指定自己的消息类型,并在接收消息时,根据自定义类型进行处理; 消息页面:消息关联的功能页面,即当点击消息标题时,被打开的功能页面。 如何发送消息 Model.prototype.sendClick = function(event){ var sendData = this.comp("sendData"); if (sendData.isValid()){ var params = new biz.Request.ActionParam(); params.setString("targets", [...]

WeX5资源更新机制(V3.3之前,包括V3.3)

使用WeX5开发出的应用有三种部署方式: 部署方式一:页面等应用资源打包到本地app,通过本地app直接访问(编译方式一) 资源不支持更新能力,如果要更新资源,必须更新App。 部署方式二:页面等应用资源部署到标准Web服务器,通过浏览器或本地app壳访问(编译方式一) 资源会自动更新。 更新机制:应用访问的第一个页面是index.html,在index.html中,会按以下顺序获取首页的地址: 第一步:从服务端获取最新的首页地址(即读取indexUrl_in_server.xml内容); 第二步:如果第一步没有获取到,从localStorage中获取上次使用的首页地址; 第三步:如果第二步没有获取到,直接使用生成index.html时所指定的首页; 每次应用资源编译后,结果类似如下结构: 其中indexUrl_in_server.txt中指向当前版本的首页地址,在地址中带上的当前应用的版本号信息。 应用部署注意事项: 将编译的资源, 在Native/xx应用/www下的资源复制到Web服务器中; 如果Web服务器是Apache, 需要修改%APACHE_HOME%/conf/mime.types,  将其中的 text/html                       html htm 改为 text/html                       html [...]

BeX5中.a路由规则

在BeX5中,功能树上会出现类似$UI/.../.../xx.a的url, 其中“.a”是一种特殊的url,“.a”通过以下规则,最终定位到具体的.w文件: 1. 如果登录的门户是5.3之前的门户 如果客户端是手机: 查找.w文件的顺序是 第一步:查找/mobileUI下相应的.w文件; 第二步:查找/UI2下相应的.m.w文件; 第三步:查找/UI2下相应的.w文件; 如果客户端是PC: 查找.w文件的顺序是 第一步:查找/UI下的.w文件; 第二步:查找/UI2下相应的.w文件; 2. 如果登录的门户是5.3(包括5.3)以后的门户 如果客户端是手机: 查找.w文件的顺序是 第一步:查找/UI2下相应的.m.w文件; 第二步:查找/UI2下相应的.w文件; 第三步:查找/mobileUI下相应的.w文件; 如果客户端是PC: 查找.w文件的顺序是 第一步:查找/UI2下相应的.w文件; 第二步:查找/UI下相应的.w文件; 本文由WeX5君整理,WeX5一款开源免费的html5开发工具,H5 App开发就用WeX5! 阅读其他app 开发相关文章:http://doc.wex5.com/?p=3443

WeX5界面模块化的使用—如何显示声明依赖

WeX5有下面三种部署运行方式。 部署方式一:页面等应用资源打包到本地app,通过本地app直接访问(编译方式一); 部署方式二:页面等应用资源部署到标准Web服务器,通过浏览器或本地app壳访问(编译方式一); 部署方式三:页面等应用资源部署到UIServer,通过浏览器或本地app壳访问(编译方式二); 如果是前两种部署方式,需要将应用所用的资源打包到本地app或复制到标准的Web服务器。“应用所用的资源”一般情况下都在应用的自己目录下,如果需要依赖应用目录之外的资源,就需要显示声明资源依赖。声明资源依赖有以下几种: 声明cordova插件依赖(针对移动应用); 声明window文件依赖; 声明res资源依赖; 声明cordova插件依赖(针对移动应用) WeX5移动应用中,可以使用cordova插件调用手机或PAD提供的本地功能或服务,平台提供了丰富的cordova插件,如下图:   我们不仅可以直接使用WeX5中自带的cordova插件,也可以扩展定义自己的cordova插件,参考“WeX5如何使用和扩展本地插件(Cordova plugin)”。 有了cordova插件之后,我们在应用如何引用呢?引用的方式如下: require("cordova!应用包名") 其中“应用包名”就是cordova插件所在的目录名,例如“com.justep.cordova.plugin.alipay”、“com.justep.cordova.plugin.weixin”; 例如,在WeX5自带的“摄像头拍照/录像”案例中,引用的“cordova!cordova-plugin-camera”和“cordova!cordova-plugin-inappbrowser”插件, /UI2/demo/device/camera/mainActivity.js中的代码如下: define(function(require) { var $ = require("jquery"); var justep = require("$UI/system/lib/justep"); require("$UI/system/lib/cordova/cordova"); require("css!$UI/demo/device/common/pub").load(); require("cordova!cordova-plugin-camera"); require("cordova!cordova-plugin-media-capture"); require("cordova!cordova-plugin-inappbrowser"); //... [...]

WeX5快速集成Echarts

ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10/11,chrome,firefox,Safari等),底层依赖轻量级的Canvas类库ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。 […]

WeX5界面模块化的使用—引用css和text

在上一篇文章中,介绍了WeX5中如何引用JS,本文章继续介绍界面模块化的使用:引用css和text。 WeX5如何引用CSS 运行效果: 代码实现: define(function(require){ var $ = require("jquery"); var justep = require("$UI/system/lib/justep"); //加载UI2下的css文件 require("css!./innerCss1").load(); require("css!$UI/demo/misc/importCss/innerCss2").load(); //加载外网的css文件 require("css!http://doc.wex5.com/wp-content/uploads/2015/04/outterCss1.css").load(); ... }); 说明:如代码所示,在WeX5中,通过require("css!xxx").load()的方式引用css文件,require的参数必须符合以下规则: 1. 参数必须是以"css!"开头的常量; 2. 路径支持以下几种情况:以"./"或"../"开头的相对路径(相对于当前js文件所在的路径),不需要扩展名;以"$UI/"开头的绝对路径($UI表示UI2目录),不需要扩展名;以"http://"开头的绝对路径,且必须带扩展名(如果有扩展名)。 WeX5如何引用Text 在WeX5中,如果想下载服务端文本文件,也是通过require机制实现的,例如: //加载UI2下的text文件 var innerText1 = require("text!./innerText1.txt"); [...]

By |7月 15th, 2015|未分类|WeX5界面模块化的使用—引用css和text已关闭评论

WeX5快速集成地图功能

WeX5作为一个快速前端开发利器,它不仅有丰富的组件和强大的能力,而且能快速与第三方的功能进行集成,今天介绍如何在WeX5中快速集成主流的地图功能:百度地图、高德地图和Mapbar地图。 集成百度地图 我们先看看集成后的运行效果: 代码实现: <div class="tab-content" xid="div1"> <div class="tab-pane active" xid="tabContent1"> <div xid="baiduMap" style="height:600px;width:100%;"/> </div> <div class="tab-pane" xid="tabContent3"> <div xid="gaodeMap" style="height:600px;width:100%;"/> </div> </div> Model.prototype.loadBaiduMap = function() { var id = this.getIDByXID("baiduMap"); window._baiduInit [...]

By |7月 14th, 2015|未分类|WeX5快速集成地图功能已关闭评论

WeX5界面模块化的使用—JS引用

WeX5的JS是基于AMD规范, 通过requirejs技术实现AMD规范。本文章主要介绍在WeX5中,如何引用JS,具体分为: 1.如何引用符合AMD规范的JS? 2.如何引用不符合AMD规范的JS? 3.如何引用外部的JS? 针对JS引用,平台自带了一个专门的演示案例importJs,目录结构如下: 1.如何引用符合AMD规范的JS文件? 方式一:通过require('xx')引用 AMD1.js是UI2下符合AMD规范的一个文件,代码如下: AMD1.js文件内容: define(function(require){ return { fnOfAMD1: function(){ alert("hello AMD1"); } }; }); importJs.js中引用AMD1.js的代码如下: define(function(require){ var $ = require("jquery"); var justep = require("$UI/system/lib/justep"); //加载UI2下, 符合AMD规范的文件 [...]

WeX5页面生命周期

在WeX5中,每个页面上的model组件有以下事件: 1. 页面模型构造前事件(onModelConstruct) 2. 页面模型构造完事件(onModelConstructDone) 3. 页面加载完事件(onLoad) 4. 页面关闭事件(onunLoad) 5. 页面激活事件(onActive) 6. 页面离开事件(onInactive) 打开功能页面时,事件的触发顺序 当打开一个页面时,先加载页面对应的js和展现,构建页面对应的js对象实例,接着构建页面上的所有组件对象,最后按以下顺序触发model上的事件: 1. 页面模型构造前事件(onModelConstruct) 2. 页面模型构造完事件(onModelConstructDone) 3. 页面加载完事件(onLoad) 在触这三个事件之前,页面上下文和所有的界面组件都已经初始化完成,因此,在这些事件中,可以操作页面上下文和所有的界面组件。 注意:Data组件(或BeX5中的bizData组件)的数据是在“页面模型构造前事件(onModelConstruct)”之后,“ 页面模型构造完事件(onModelConstructDone)”之前加载的。 关闭功能页面时,触发页面关闭事件(onunLoad) 切换到别的功能页面时,触发页面离开事件(onInactive) 激活功能页面时,触发页面激活事件(onActive) 本文由WeX5君整理,WeX5一款开源免费的html5开发工具,H5 App开发就用WeX5! 阅读其他app 开发相关文章:http://doc.wex5.com/?p=3443

WeX5页面逻辑

WeX5页面逻辑基础 WeX5每个页面由w文件、w文件同名的js文件和w文件同名的css文件三个文件构成,其中页面逻辑代码写在w文件同名的js文件中。w文件同名的js文件是一个符合AMD规范的js模块,在这个js模块中定义了一个js类并作为模块的返回结果,这个js类是页面逻辑的核心,所有的页面逻辑都在这个js类中实现。 例如,以下是“TODO MVC”案例的页面逻辑文件/UI2/demo/misc/todoMVC/index.js的内容: define(function(require) { var $ = require("jquery"); var justep = require("$UI/system/lib/justep"); var Model = function() { this.callParent(); this.STORE_ID = "todoData"; }; Model.prototype.titleInputKeydown = function(event) { if (event.keyCode == 13) { this.addTodo(); [...]