WeX5的正确打开方式(1)
Wex5生成的APP连接扫描枪进行扫码的实现方法

Wex5生成的APP连接扫描枪进行扫码的实现方法一:外设扫描枪型号(测试使用):HoneyWell 1400g连接手机数据线:OTG二、实现原理扫描枪的功能就是阅读条码,然后把它转换为文本字符,转换完成时在文本字符后面增加回车事件(如果你的扫描枪扫描过程中没有回车事件,查阅扫描枪的说明书,找到自动回车设置图。
扫描一遍后即可自动增加回车功能)。
我们在APP中光标定位在输入框,用输入框接收文本字符信息,并利用回车事件触发方法保存扫码结果。
三、实现步骤W文件代码:<?xml version="1.0"encoding="utf-8"?><div xmlns="/1999/xhtml"component="$UI/system/components/justep/window/window"design="device:m;"xid="window"class="window"><div component="$UI/system/components/justep/model/model"xid="model"style="left:18px;top:83px;height:244px;"onLoad="modelLoad"/><div component="$UI/system/components/justep/panel/panel"class="x-panel x-full"xid="panel1"><div class="x-panel-top"xid="top1"><div component="$UI/system/components/justep/titleBar/titleBar" title="扫描枪界面"class="x-titlebar"><div class="x-titlebar-left"><a component="$UI/system/components/justep/button/button" label=""class="btn btn-link btn-only-icon"icon="icon-chevron-left" onClick="backBtnClick"xid="backBtn"><i class="icon-chevron-left"/><span/></a></div><div class="x-titlebar-title">扫描枪界面</div><div class="x-titlebar-right reverse"/></div></div><div class="x-panel-content"xid="content1"><div component="$UI/system/components/justep/row/row"class="x-row"xid="row1"><div class="x-col"xid="col1"><input component="$UI/system/components/justep/input/input" class="form-control"xid="tel"onChange="changeValue"/></div></div></div></div></div>1、页面加载时光标要定位在输入框,调用onLoad方法2、在wex5前端UI界面增加一个输入框,回车事件调用onChange方法Js文件代码:1、页面加载时光标定位在输入框Model.prototype.modelLoad = function(event) {var me = this;var tel = me.getElementByXid('tel');tel.focus();};2、扫码时响应回车事件,保存记录至数据库Model.prototype.changeValue = function(event) {var me = this;var mobilephone = $.trim(p('tel').val());if (mobilephone === "" || mobilephone === null) {return;} else if (mobilephone.length > 11) {me.getElementByXid('tel').value = "";} else {var params = {"mobilephone" : mobilephone};var error = function(msg) {Baas.showError(msg);};var success = function(resultData) {if (resultData == "1") {Common.hintInfo("扫码成功!");me.getElementByXid('tel').value = "";} else {Common.hintErr('扫码失败!');me.getElementByXid('tel').value = "";}};params = Common.addDevice(params);Baas.sendRequest({"url" : "/webservice/parkServer/saveParkRecordInfo1","params" : params,"success" : success,"error" : error});}};。
viewer软件操作说明

viewer软件操作说明Viewer软件操作说明引言Viewer是一款功能强大的文件查看和编辑工具,适用于多种文件格式,如PDF、Office文档、图片等。
它能够在没有安装相应应用程序的情况下直接打开和查看文件,并且提供了一些基本的编辑功能。
本文将详细介绍Viewer软件的操作方法,帮助您更好地利用这款工具。
安装与准备要使用Viewer软件,首先需要从官方网站或第三方应用商店下载并安装。
在安装过程中,请确保您的计算机满足系统要求,包括操作系统、内存和硬件配置等。
安装完成后,根据提示进行简单的软件配置,如语言设置、文件关联等。
操作指南启动Viewer后,您会看到一个简洁的界面。
下面是一些基本的操作步骤:1、打开文件:点击“打开”按钮,选择要查看的文件,支持多种格式。
2、文档导航:使用滚动条、缩放按钮等工具浏览文档。
3、编辑功能:在Viewer中,您可以对文档进行一些基本的编辑操作,如高亮、添加注释、签名等。
4、打印文档:点击“打印”选项,设置打印参数,将文档输出为纸质版本。
5、文件保存:在编辑完成后,点击“保存”按钮将文档保存到本地。
实用技巧以下是几个常用的操作技巧:1、设置默认打开方式:将Viewer设置为默认的文档查看器,避免每次都要选择打开方式。
2、全屏模式:在查看文档时,点击“全屏”按钮可进入全屏模式,提供更沉浸的阅读体验。
3、搜索功能:在文档中使用“搜索”框,快速查找特定内容。
4、自定义工具栏:根据个人习惯,自定义工具栏中的图标和按钮,提高操作效率。
应用案例下面以一个具体的应用场景为例,说明Viewer软件的操作方法。
场景:需要在没有安装Office应用程序的计算机上查看并编辑一个Word文档。
步骤:1、下载并安装Viewer软件。
2、在Viewer中打开需要编辑的Word文档。
3、对文档进行编辑,如修改文本、添加注释等。
4、将编辑后的文档保存到本地。
5、在其他计算机或设备上打开保存的文档,查看编辑结果。
WeX5的UI部分和传统Web页面开发的差异

WeX5是跨端移动开发框架,BeX5是基于WeX5的企业快速开发平台,它们都采用前后端分离的开发模式,和Web传统的前端页面开发(例如extjs)比较类似,和jsp存在差异。
WeX5、BeX5和Web传统的前端页面开发最大的差异在于,WeX5、BeX5采用了单页模式,实现资源不重复加载:∙由于采用单页模式,X5引入了RequireJS,实现资源异步按需加载,且只加载一次∙作为快速开发工具,X5提供了可视化界面设计器∙作为快速开发工具,对界面常用功能进行封装,实现界面全面组件化这样的UI开发与传统UI开发有哪些不同呢?下面就从页面部分、页面中的数据、js部分、发布等几个方面具体说明。
∙1、页面部分o 1.1、页面加载事件o 1.2、页面关闭事件o 1.3、获取url的参数o 1.4、引用jso 1.5、引用csso 1.6、使用xid而非ido 1.7、获取到input输入框的输入内容o 1.8、页面跳转o 1.9、图片路径 <img src=?>o 1.10、信息提示o 1.11、上传文件o 1.12、详细页面的制作o 1.13、界面控制o 1.14、路由o 1.15、背景图片o 1.16、事件o 1.17、调用actiono 1.18、在前端获得session的值o 1.19、在前端访问全局变量∙2、页面中的数据∙3、js部分o 3.1、全局变量o 3.2、自定义js方法o 3.3、自定义公共js文件o 3.4、获取elemento 3.5、获取jQuery对象o 3.6、创建节点,删除节点o 3.7、增加事件,删除事件∙4、发布o 4.1、设置首页标题o 4.2、更换图标o 4.3、部署到Web 应用服务器1、页面部分1.1、页面加载事件∙传统——window.onload 事件 ∙ X5——model 组件的onload 事件1.2、页面关闭事件∙传统——window.onunload 事件 ∙ X5——model 组件的onunload 事件1.3、获取url 的参数∙ 传统JS ——只有一种参数,就是url 中?后面的参数,从location.href 中截取 ∙JSP ——使用<% String 参数值 = request.getParameter(“参数名”);%>获取 ∙ X5—— 有三种参数,url 中可以显示出来的有两种参数,一种是?后面的参数,另一种是#!后面的JSON 格式的参数,还有一种是url 中不显示的复杂参数。
手机WPs使用技巧

手机WPs使用技巧WP(Windows Phone)系统是微软推出的一款智能手机操作系统,具有独特的界面风格和丰富的功能。
下面我将介绍几个WP手机的使用技巧。
1. 利用Live Tiles定制主屏幕:WP系统的主屏幕是由一块块方形的图标组成,这些图标被称为“生活磁贴”(Live Tiles),可以将常用的应用程序放在主屏幕上,并根据个人喜好对其进行调整和排序。
点击和按住生活磁贴可以进行移动、调整尺寸和删除。
2. 使用搜索按钮快速查找:WP手机的下方中间通常会有一个专为搜索设计的按钮。
可以利用这个按钮快速搜索应用、联系人、网络等内容。
长按搜索按钮还可以启动语音助手Cortana进行语音操作。
3. 使用Action Center操作快捷方式:WP系统的通知中心称为“操作中心”(Action Center),可以通过向下滑动屏幕来打开。
在操作中心中可以快速开启或关闭Wi-Fi、蓝牙、闪光灯等常用设置,还可以查看来电、短信等通知。
4. 利用Cortana进行语音操作:WP系统内置了语音助手Cortana,可以通过长按搜索按钮或在主屏幕上点击Cortana图标来启动。
Cortana可以识别语音指令并进行操作,比如发送短信、打电话、设置闹钟等。
同时,Cortana还可以与用户进行智能对话,回答问题、提供实时天气、新闻、股票等信息。
5. 通过Kids Corner保护孩子:WP系统的Kids Corner功能可以创建一个给孩子专用的界面,只展示特定的应用程序和内容,避免孩子误操作或访问不适宜的内容。
设置Kids Corner非常简单,只需要在系统设置中找到Kids Corner选项并进行配置即可。
6. 使用Data Sense管理数据使用:Data Sense是一个管理数据流量的功能,可以监控、限制和控制手机的数据使用。
通过Data Sense可以查看数据使用情况、设置通知提醒、限制背景数据等,帮助用户更好地控制手机的流量消耗。
TencentTbs腾讯浏览服务x5内核使用

TencentTbs腾讯浏览服务x5内核使⽤Tencent TBS (下简称TBS)腾讯浏览服务What is it?百度百科解释:腾讯浏览服务(Tencent Browsing Service,以下简称TBS),由腾讯X5浏览服务升级⽽来,作为业界⾸个升级⾄X5 blink内核,与Android 5.0 版本的Chromium M37⼀致,解决了Android 多平台兼容性问题。
在我们的⼿机上如何找到它?微信打开⼀⽚公众号的⽂章,下拉会出现(QQ浏览器X5内核提供技术⽀持)。
QQ/TIM内置浏览器。
QQ浏览器,都使⽤了x5内核。
TIM?如果你还没有⽤过Tim,可以点击下⾯的连接进⾏下载(个⼈感觉⽐QQ好⽤):Why use it?让你的app实现基本⽹页加载(类浏览器功能)让你的app实现播放视频功能让你的app实现播放直播流功能How use it?第⼀步:访问TBS官⽹,下载SDK for Android第⼆步:根据集成⽂档,集成到⾃⼰的项⽬中第三步:编写⾃⼰的代码进⾏测试。
下载TBS SDK点击下载完整版,或者点击分享链接:SDK集成1. 解压SDK压缩包,复制⾥⾯的jar包到⾃⼰⼯程⾥⾯的libs(tbs_sdk_thirdapp_v3.5.0.1004_43500_sharewithdownload_withoutGame_obfs_20170801_113025)⽂件夹中2. 添加jar包到构建路径。
如下图3.4. 添加so⽂件⽀持,解压SDK接⼊⽰例-Android Studio压缩包,复制jniLibs⽂件夹,粘贴到⾃⼰⼯程main包下。
具体的操作查看:5. 添加权限:在清单⽂件中添加如下权限<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/><uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.READ_PHONE_STATE"/>1. 在项⽬的Application中初始化x5内核/***初始化X5*/private void initX5() {QbSdk.initX5Environment(this, new QbSdk.PreInitCallback() {@Overridepublic void onCoreInitFinished() {}@Overridepublic void onViewInitFinished(boolean b) {}});}1. 如果想实现视频播放功能可以在清单⽂件中配置该Activity<activityandroid:name="com.tencent.smtt.sdk.VideoActivity"android:alwaysRetainTaskState="true"android:configChanges="orientation|screenSize|keyboardHidden"android:exported="false"android:launchMode="singleTask"><intent-filter><action android:name="com.tencent.smtt.tbs.video.PLAY"/><category android:name="android.intent.category.DEFAULT"/></intent-filter></activity>编写代码进⾏测试。
Wex5组件的使用

Wex5组件的使⽤panel 组件布局为 top组件 content组件 bottom组件1、contents组件形成多内容页2、bottom组件添加buttonGroup组件形成多按钮3、buttonGroup组件中的button组件通过 target关联contents组件中的content组件,实现内容也与按钮关联默认选择已选定的组件,选择buttonGroup组件的select组件选中默认组件的id<a component="$UI/system/components/justep/button/button" class="btn btn-default btn-icon-top" label="动态" xid="bynBtn"icon="linear linear-map" target="content7">4.panel组件形成上中下等格局titleBar组件,除了设置显⽰的固定头部,还设置苹果颜⾊特有的状态栏颜⾊6.嵌⼊组件在content组件嵌⼊W⽂件windowContain组件 src./xx.w<div component="$UI/system/components/justep/windowContainer/windowContainer" class="x-window-container"xid="windowContainer1" src="./multi-list.w" autoLoad="true"></div>7.数据组件增加数据先设置列model组件 data组件,设置组件列,编辑列,添加商品id fing ,数据组件是⼀个⼆维表,先设置列,再编辑数据8.获取静态数据json数据,img路径data组件autoLoad =true 将数据进⾏⾃动下载可以⾃⼰在js设置⽅法进⾏数据,在data属性是有⼀个onCustonRefresh使⽤ajax进⾏数据请求url require.Url();event.source.loadData(data);将Json数据组件中的数据可以导⼊到数据组件中数据组件中数据同样也可以导出,格式也是json//组件的⾃动刷新Model.prototype.goodsDataCustomRefresh =function (event){//转化为相对路径var url=require.toUrl("./json/goodsData.json");alert(url);//ajax设置为同步请求$.ajaxSettings.async=false;$.getJSON(url,function(data){//将返回的data装载在data组件中event.source.loadData(data);});}9.List组件进⾏页⾯加载scrollview滚动页⾯可以⾃适应加载数据,测试静态数据加载,当连接数据库进⾏可以⾃适应加载显⽰添加list组件<li>组件<img>组件加载<div class="x-panel-content x-scroll-view" xid="content11" _xid="C8F3EEAB140000018DF011D095001720"><div class="x-scroll" component="$UI/system/components/justep/scrollView/scrollView" xid="scrollView1"><div class="x-content-center x-pull-down container" xid="div1"><i class="x-pull-down-img glyphicon x-icon-pull-down" xid="i5"></i><span class="x-pull-down-label" xid="span5">下拉刷新...</span></div><div class="x-scroll-content" xid="div2"><div component="$UI/system/components/justep/list/list" class="x-list" xid="list5" data="goodsData"><ul class="x-list-template" xid="listTemplateUl5"><li xid="li5"><img src=" " alt="" xid="image1" bind-attr-src=' val("fimg")' style="width:100%;"></img></li></ul></div></div><div class="x-content-center x-pull-up" xid="div3"><span class="x-pull-up-label" xid="span6">加载更多...</span></div></div></div>List组件设置绑定data,出错了,最后⼀组数据⽆逗号[{"id": "99","fimg":"pic/0.png"},{"id": "100","fimg":"pic/1.png"},{"id": "101","fimg":"pic/2.png"},{"id": "102","fimg":"pic/3.png"}]<div component="$UI/system/components/justep/list/list" class="x-list" xid="list5" data="goodsData">bind-sttr-src设置对应data组件的属性选择图⽚,需要选择当前⾏<ul class="x-list-template" xid="listTemplateUl5"><li xid="li5"><img src=" " alt="" xid="image1" bind-attr-src=' val("fimg")'></img></li></ul>列表组件封装了ul组件,凡是可以在ul li上⾯的样式都可也设置在listTmplateUI和li上,达到相同的效果10.双列列表BootStrap栅格系统将屏幕分为12列,在class属性设置col-xs-6 col-xs-4 col-xs-3<li xid="li1" class="col-xs-3">使⽤搜索功能,使⽤页⾯调⽤功能,从json⽂件读取数据放⼊data组件中search.w 组件设置 content组件添加list组件li组件下⾯添加media组件,使⽤media的left组件,使⽤属性bind-attr-src组件关联图⽚和mediabody组件设置,h4组件bind-text组件设置val()属性。
基于WeX5平台实现在线自助测试单页

基于WeX5平台实现在线自助测试单页WeX5是一款基于HTML5技术开发的移动应用开发平台,可以帮助开发者快速构建跨平台的移动应用。
本文将借助WeX5平台实现一个在线自助测试单页应用。
在实现这个应用之前,我们需要做一些准备工作。
我们需要在WeX5平台上创建一个新的项目。
接下来,在项目中创建一个新的页面,命名为“自助测试”。
然后,我们可以开始编写代码来实现这个应用。
我们需要在页面上添加一个标题,用来介绍这个自助测试的内容。
我们可以使用一个文本组件来实现这个功能。
在文本组件中,我们可以填写标题的内容,比如“在线自助测试”。
接下来,我们需要添加题目和选项。
我们可以使用一个表单组件来实现这个功能。
在表单中,我们可以添加多个问题,并为每个问题添加多个选项。
这样,用户就可以通过选择选项来完成测试。
在表单中,我们可以为每个题目添加一个文本输入框,用来让用户输入答案。
我们还可以为每个选项添加一个单选框或复选框,用来让用户选择答案。
当用户选择了答案后,我们可以在页面上显示用户选择的答案。
在每个题目和选项后面,我们还可以添加一个按钮,用来提交用户的答案。
当用户点击提交按钮时,我们可以触发一个事件,将用户的答案发送到服务器上进行处理。
当用户提交答案后,我们可以在页面上显示用户的得分。
我们可以通过计算用户的答案和正确答案的匹配程度来计算得分。
然后,我们可以通过一个文本组件来显示用户的得分。
除了得分,我们还可以为用户提供一些反馈信息。
如果用户的得分达到一定的标准,我们可以显示一个文本,告诉用户他们通过了测试。
如果用户的得分没有达到标准,我们可以显示一个文本,告诉用户他们没有通过测试,并给出一些建议。
通过以上的步骤,我们就可以实现一个简单的在线自助测试单页应用。
通过WeX5平台,我们可以快速构建这样的应用,并在各个平台上进行部署。
这样,用户就可以在手机、平板或电脑上进行自助测试了。
犀维 e 讯 APP 操作使用手册说明书

犀维e讯APP操作使用手册版本:V1.0时间:2023年3月目录一、登录犀维e讯APP (3)1.下载及安装 (3)2.登录 (5)二、全部公告 (6)3.公告信息 (6)三、订阅 (8)1.查看订阅 (8)2.新增订阅 (9)3.编辑订阅 (10)4.删除订阅 (11)四、我的 (12)1.我的收藏 (13)2.阅读历史 (14)3.联系客服 (15)4.关于我们 (16)5.电商平台 (17)6.设置 (18)一、登录犀维e讯APP1.下载及安装可通过大唐电商平台https:///首页使用微信扫码识别后,下载并安装犀维e讯APP(仅限安卓端4.0版本以上)。
首次打开犀维e讯APP时,手机会弹出“用户协议与隐私政策”的提示,点击“同意”。
如下图所示:2.登录用户可使用手机号完成犀维e讯APP登录。
登录后,页面有全部公告、订阅、我的三个菜单。
如下图所示:二、全部公告3.公告信息点击“全部公告”可查看所有类型的公告信息。
如下图所示:点击项目名称可查看公告详情,在公告详情页面可以“收藏”和“分享”公告。
点击“返回”回到公告信息页面。
如下图所示:三、订阅1.查看订阅点击订阅菜单进入,即可查看到相关的订阅信息。
如下图所示:点击“+新增”将会跳转到“新增订阅”页面,按照个人需求填写相关内容后,点确定,新增订阅成功。
如下图所示:点击订阅信息右上角的“”将会跳转到“编辑订阅”页面,按照个人需求填写相关内容后,点确定,编辑订阅成功。
如下图所示:4.删除订阅点击订阅信息右上角的“”将会跳转到“删除订阅”页面,按照个人需求填写相关内容后,点确定,删除订阅成功。
如下图所示:四、我的点击页面“我的”,可看到“我的收藏”“阅读历史”“联系客服”“关于我们”“电商平台”“设置”。
如下图所示:1.我的收藏在公告详情页面点击左下角的“收藏”后,此公告会显示在我的-“我的收藏”里。
如下图所示:2.阅读历史点击我的-“阅读历史”页面展示之前查看过的内容。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最近在研究WeX5,想在这里记录下使用过程中的点滴,今天先把之前已经掌握的分享一下。
WeX5官方的开发指南难度系数较大,面向的受众可能是已经敲过上万行代码的html5 app开发者。
但是作为一个刚进入代码世界的html5 app开发宝宝,本人表示拿着这份指南也找不到“南”,先抛开官方版的,下面就来看看进击版的Hello World吧。
基础部分1、准备工作:打开hml5 app 开发工具——WeX5(路径:WeX5\studio\studio.exe),在左侧模型资源管理器中建立HelloWorld目录并新建W文件,模板选空白的就好。
这一步有问题找右键。
2、鼠标拖一个Output放到W页面上,效果如下:3、在属性标签页设置Output的外观样式,这里常用的是class(设置类型),style(设置具体的样式),我这里就设置了一下Output的红色边框。
这里都是可视化鼠标操作,就不多说了,各种样式可以尽情探索,不要生怕点错了会弄疼软件哈。
4、一番精心打扮之后,当然要看看运行效果啦,试运行的步骤是:先启动Tomcat,然后在W文件上右键选择“用浏览器运行”。
记得要先保存W文件再试运行才能看到改动效果哦。
通过简单的鼠标操作,很简单就能设置好Output控件的外观,这个也是WeX5的强大之处。
而且更重要的一点是,所有设置都是符合html5 标准的!比如说你要设置一个控件的位置,并不能直接拖动控件到你想要的位置,而要通过边距、定位等设置才能定位。
所以即使是使用WeX5进行开发,还是要懂基本的HTML、CSS、JavaScript的,这里推荐不太熟悉的亲们去稍微学习点基本的html5基础知识。
新手不用太纠结细节,先整体了解,日后碰到具体问题再去找相应的解决办法。
当然,小茄这边也会分享相关的内容,大家可以关注哈~~~ 5、上面的鼠标流操作设置好了外观,但还没看到Hello World的影子呢。
大家肯定也想到了要在Output中输出Hello World,具体操作也非常简单:在属性标签页的“bind-ref”内输入“Hello World”就可以啦,注意要用英文模式的双引号把Hello World引起来。
有点编程基础的同学都知道,用双引号包起来的才是字符串,没有双引号的话就是变量了。
这样就设置好了,试运行时在Output里面就能看到效果了。
PS:这里的“bind-ref”是WeX5中的一个数据绑定机制,可以将其想象成一个管道,通过这个管道可以将不同组件间的数据绑定起来。
例如我这里有两个Output组件,我们可以简单的通过bind来讲两个组件的值绑定起来,但只是绑定的话并没有动态刷新的功能,如果需要像官方Hello World那样做到动态刷新,还需要将绑定的值设置为可观察对象。
这个部分理解起来比较难,后续我会单独开一个章节去讲这部分,本文先略过。
注意:原生的Web写法应该是在标签内写入要显示的内容,例如:Hello World。
但是WeX5将基本的HTML组件进行了封装,而且为了方便管理数据还引入了数据绑定机制,每次进行组件初始化的时候都会调用相应的构造函数去初始化组件,所以即使在Output组件的源码中加入Hello World:<div component="$UI/system/components/justep/output/output" class="x-output"xid="output1" style="height:40px;" dataType="String">Hello World</div>但Output的innerText也还是会根据数据绑定的规则去初始化组件,如果没有绑定,则初始化为空值。
因此,WeX5中除了原生的HTML标签外,都应该按照WeX5的规范使用数据绑定的方式来管理控件。
进阶部分上面这种纯输出的页面没什么意思,现在试试加点交互效果。
比如说加个按钮,点击按钮改变输出信息为”Hello WeX5”。
官方原版的Hello World案例中使用了WeX5的数据双向绑定机制来实现,因为我们都不熟悉WeX5的数据绑定机制,所以理解起来非常吃力。
抛开绑定机制,WeX5的写法其实很简单:Model.prototype.button2Click = function(event){var output = this.getElementByXid('output1');output.innerText = "Hello WeX5";};WeX5提供了一个事件标签页来方便地设置组件的各种事件,这样一来可以一览组件的事件接口,二来也方便集中管理所有组件事件。
使用方法就是在需要的事件中填入函数名(不填则使用默认函数名)并双击,然后就可以进入js源码页了,这里系统会自动生成Model.prototype.函数名= function(event){}代码段。
细心的同学会发现,这里的事件也是带bind前缀的。
没错,这里也采用了数据绑定机制一样的实现方式,不过这里暂时先不用管这些,知道用法即可。
这里小茄也默认大家有Web编程基础的了,先对比原生的web写法:<p id="output1">Hello World</p><button>Button</button><script type="text/javascript">function button2Click(event) {var output = document.getElementById('output1');output.innerText = 'Hello WeX5';}</script>可以看出主要的差异点是WeX5中使用了xid代替了原生的id,所以要用getElementByXid 来获取元素节点。
之所以这样做的原因,主要是为了解决命名冲突的问题,在一个复杂页面中通常是将页面分成很多页面片段来开发的,而很多时候某几个页面片段都可能引用了同一个组件,那么在总页面中就会产生id的命名冲突。
而xid是通过在id后面加入一个页面标示,即使是同一个id在不同的页面片段中的xid也是不同的,这样就解决了id冲突的问题。
另外一点差异是WeX5中还创建了一个Model对象,页面中资源都放入了Model变量中,使用的时候也要在Model中进行操作。
而原生的写法是将所有函数和变量都放在全局环境中,使用的时候直接引用全局中的函数变量。
当一个页面比较复杂的时候,全局下就会有非常多的函数和变量,这样就容易产生变量冲突和变量覆盖,因为js中是可以重复声明的,后声明的变量会覆盖掉前面声明的变量,这样一来后声明的函数就将前面的函数体覆盖掉了。
更为严重的是,浏览器给js提供了很高的权限,你甚至可以覆盖掉系统提供的接口。
比如说:alert = function () { window.close(); }alert("hello");这样alert就由报警变成了关闭页面,但浏览器是允许这种行为的,所以我们应该尽量避免污染全局变量。
最后还有一点就是我们定义的方法是放在Model.prototype之下的,也就是放在Model原型下面的。
也就是说采用了混合模式(构造+原型)来创建对象,当然,直接写在对象下也是OK的,只是不推荐这种写法,例如:var Model = function(){this.callParent();this.button2Click = function(event){var output = this.getElementByXid('output1');output.innerText = "Hello WeX5";};};总结上面的例子实现了一个按钮改变输出文字的功能,通过这个例子,大家应该能掌握WeX5中页面布局设计与简单交互事件的写法,上面介绍的写法与原生比较相似,对有web基础的同学来说应该是很好理解的。
没有基础的同学,还是推荐先到w3school 去学习web基础,过一遍HTML、CSS,熟悉一下js语法即可。
关于Hello World可说的内容还有许多,下一篇我会介绍一下HTML源码以及js源码结构。
附录:官方Hello World的WeX5写法与原生js写法对比,可以看出在页面复杂的时候WeX5的代码更简洁,更方便管理。
原生js写法:Input1: <input type="text" id="input1" value="" /><br />Input2: <input type="text" id="input2" value="" /><script type="text/javascript">var input1 = document.getElementById('input1'),input2 = document.getElementById('input2');input1.addEventListener('input', function (e) {input2.value = this.value;});input2.addEventListener('input', function (e) {input1.value = this.value;});</script>WeX5写法:define(function(require){var $ = require("jquery");var justep = require("$UI/system/lib/justep");var Model = function(){this.callParent();this.input1 = justep.Bind.observable(""); //核心语句};return Model;});。