Weex在苏宁移动办公开发中是如何实践的?

丰富的线上&线下活动,深入探索云世界

做任务,得社区积分和周边

最真实的开发者用云体验

让每位学生受益于普惠算力

让创作激发创新

资深技术专家手把手带教

遇见技术追梦人

技术交流,直击现场

海量开发者使用工具、手册,免费下载

极速、全面、稳定、安全的开源镜像

开发手册、白皮书、案例集等实战精华

为开发者定制的Chrome浏览器插件

Weex是什么?

Weex是一套简单易用的跨平台开发方案,能以web的开发体验构建高性能、可扩展的native应用,为了做到这些,Weex与Vue合作,使用Vue作为上层框架,并遵循W3C标准实现了统一的JSEngine和DOMAPI,打造三端一致的native应用。其架构如下所示:

将weex工程文件编译成JSbundle,发布到云端,由客户端下载后,通过浏览器里的JavaScript引擎或WeexSDK运行起来的。

Weex页面结构

界面展示、逻辑处理、设备能力使用、生命周期管理等部分。

Dom模型

Weex页面通过类似HTMLDOM的方式管理界面,首先页面会被分解为一个DOM树,每个DOM结点都代表了一个相对独立的native视图的单元。然后不同的视图单元之间通过树形结构组合在了一起,构成一个完整的页面。

组件

Weex支持文字text、图片image、视频video等内容型组件,也支持div、list、scroller等容器型组件,还包括slider、input、textarea、switch等多种特殊的组件。Weex的界面就是由这些组件以DOM树的方式构建出来的。

布局系统

Weex页面中的组件会按照一定的布局规范来进行排布,我们这里提供了CSS中的盒模型、flexbox和绝对/相对/固定/吸附布局这三大块布局模型。

功能

Weex提供了非常丰富的系统功能API,包括弹出存储、网络、导航、弹对话框和toast等,开发者可以在Weex页面通过获取一个nativemodule的方式引入并调用这些客户端功能API。

生命周期

每个Weex页面都有其自身的生命周期,页面从开始被创建到最后被销毁,会经历到整个过程。这是通过对Weex页面的创建和销毁,在路由中通过SDK自行定义并实现的。

注:涉及代码均以Android端为例。

(一)前端遵循weex移动应用的设计理念

weex认为一个具有高并行研发能力、动态化和标准化规范化的移动应用应该由以下几个方面构成:

这样的话,在构建一个完整的移动应用之前,先确定你的应用有多少页面,每个页面分别是什么URL,页面之间的路由逻辑是怎样的,然后梳理整个移动应用需要的所有API和服务。最后通过Weex创建不同的页面,并分别进行开发、调试。

(二)构建自己的标杆工程

我们基于github上的Playground项目,构建了自己的标杆工程。

除了用vue封装页面,还封装了公用的样式,构建了常用的控件库。

(三)整合weex引擎,完善移动办公微应用的接入方案

挂接glide用于替换默认的picasso图库的实现,因为目前picasso的版本没法支持gif动图。另一个好处是,可以定制图库缓冲区的大小。

在项目迭代中,扩展自定义控件。这块自定义控件特指通过WXSDKEngine.registerComponent()注册的Native控件。需要严格控制这部分控件的实现。基于以下几个方面考虑:

1.Native控件需要IOS、Android同时实现,增加了开发工作量。

2.页面使用了这种控件,老版本的应用就没法进行兼容,会需要提示用户升级。

3.开发者需要充分考虑纯vue的方式是否能实现,一般都是有方法的。

定义一套开放接口,通过WXSDKEngine.registerModule()注册,weex可以适度复用H5的开放接口实现。

(四)静态资源的缓冲和缓冲更新策略配置

静态资源(js、css、图片)默认不支持缓冲策略,导致使用微应用页面总是打开较慢,且浪费流量,没能达到离线web应用的顺滑操作体验。针对此问题,移动端和服务端均需做出调整。

前面我们讲到了,在客户端一侧,针对图片适配器我们设置了glide图库,且修改了缓冲配置。而针对静态页面的加载,weex的支撑模块是WXHttpManager和WXOkHttpDispatcher。如下图所示:

对defaultOkHttpClient进行缓冲路径和大小的配置。在服务端一侧,配上Etag策略,如果不支持则配置较老的Last-Modified+If-Modified-Since策略。其实现效果如下:

第一次请求:

第二次请求:

需要补充的是,对于网络请求失败或是缓冲加载失败的情况,本地需要挂接回调方法处理,并定制加载失败页面,让用户在失败页面有机会点击刷新按钮进行重试。

(五)开放接口和接口权限控制

weex引擎加载的页面包括weex和H5两种,针对H5页面,通过JavascriptInterface我们挂接与其他H5应用相同的一套开发接口。

(六)打通Native、weex、H5的登陆凭证

1.包装一个CookieManager,实现cookie的读写接口以兼容新老版本。

2.进程初始化时,初始化CookieManager;账号登出时,移除Cookies。

3.在WebView页面加载成功的回调,增加Cookie强制持久化写入的逻辑。WeexWebView也增加相同逻辑。

4.在Http请求、文件传输接口处增加Cookie的读写逻辑,特别要注意的是对重定向请求的处理,需要挂接自己的回调方法,读写Cookie。Weex对应的HttpAdapter和文件传输接口也需做相同修改。

(七)升级策略

无论是通过WXSDKEngine.registerModule()注册的接口还是通过WXSDKEngine.registerComponent()注册的组件,都是在迭代版本中逐步添加进去的。考虑到兼容性,就存在一部分老版本客户端无法使用当前weex页面部分功能的问题,所以在weex页面需要增加平台最小版本号的控制逻辑,当客户端版本低于接口所需的最小版本时,要提示用户升级。

因为用户是可以选择忽略升级的,在每个组件和开放接口的使用点,也需要增加保护,无法使用时应提示是版本过低不支持的原因。

(八)错误的云监测

在Native可以通过接口IWXRenderListener中的onException回调方法监测rendererror、jsexception、networkerror等。在Weex页面,则需要通过开放接口上报错误错误。这些错误最后都通过Native接口上报到云端,做到对用户问题的实时监控。

(九)屏幕适配

Weex是固定以750px作为虚拟屏幕宽度的,所有控件的实际大小要根据设备的屏幕大小进行等比缩放。例如,当一个按钮的尺寸在页面中设定为60x100px,而屏幕实际宽度为1080px,那么按钮的显示宽度则为60x1080/750=86px,高度则为100x1080/750=144px。

(十)引擎升级和平台兼容性的坑

作为一款需要商用的应用,在集成了weex引擎后,面临引擎升级的问题,尤其在阿里官方迭代版本较密集的现状下。强烈建议慎重升级!在引擎升级后要对已上线的应用做回归测试,我们遭遇到的实际状况是引擎升级支持了一些新功能,却把部分老控件、老接口、老页面给搞坏了。例如:

2.18版本IOS横向翻页的页面切换效果会有垂直方向偏移。

3.vue本身是支持v-model给Input来赋值的,Android端的引擎升级到18之后这块功能突然又不支持了。

Weex引擎还存在一些平台兼容性的坑,例如:

1.页面恢复的广播事件,IOS和Android不一致,Android的事件名叫WXApplicationDidBecomeActiveEvent,IOS的叫viewWillAppear。

2.在做自定义组件的时候,需要页面上盖了一个蒙板控件,如果蒙板里没有内容,在Android端,蒙板不会消耗Touch事件,在IOS端,蒙板会消耗touch事件。为了解决这个问题,当蒙板上无内容的时候,需要把IOS端蒙板的透明度改成全透明。

Weex是一个新的开发框架,在技术革新的浪潮中,我们一方面要勇于尝试这样的新技术。另一方面,也要通过软件过程控制的方法来确保应用交付的稳定,实事求是、因地制宜的解决使用中面临的具体问题和挑战。软件工程学本身就是实践者的研究方法,唯有边实践边总结,才能在技术变革中始终不落下风。

THE END
1.移动办公平台的优势有哪些?看完这些是不是觉得纷享销客的移动办公平台确实不错。而且就目前的大趋势来看,移动办公平台在未来的竞争市场上会越来越火热。毕竟使用了移动办公平台带来的好处远远不止文中介绍的这些,更多的可能性还有待进一步挖掘。http://www.2006a.com/news/news_view_32760.html
2.移动办公的好处有哪些?看完就知道随着移动互联网和云计算技术的飞速发展,企业信息化需求不断增加,企业移动办公需求孕育而生。移动办公是什么呢,移动办公是一种新型的办公模式,是将现代化办公和计算机技术结合起来的一种新型的办公方式,知道了移动办公是什么之后,那通过移动办公的操作系统的控制,从而实现远程异地或移动办公,实现移动办公好处有哪些? https://www.fanruan.com/bw/fwafea
3.移动应用平台有哪些优势?能为企业带来什么好处?能为企业带来什么好处? 随着移动技术在企业应用的不断深化,对于企业而言,移动战略已经成为其建设的重点,同时移动化也逐渐成为各个行业逐渐关注的焦点。企业在办公协同的工作过程中,可能基于第三方平台进行移动办公,也可能自建各个业务系统APP,但这两种方式都存在不自主、不安全、不可控的问题。为了保证企业的信息安全和https://blog.csdn.net/weixin_53855915/article/details/127103132
4.十大移动办公软件移动办公平台哪家好十大OA移动办公软件排行,云办公-移动OA-移动办公平台,在线办公平台有哪些 移动办公什么牌子好?经专业评测的2024年移动办公十大品牌名单发布啦!居前十的有:钉钉、企业微信、飞书、云之家、Welink、致远M3、泛微weaver、Microsoft Teams、网易灵犀办公、TIM等,上榜移动办公十大品牌榜单和著名移动办公品牌名单的是口碑好或知https://www.maigoo.com/maigoo/7159zxbg_index.html
5.crm软件有哪些好处零代码企业数字化知识站CRM(客户关系管理)软件在现代企业运营中扮演着至关重要的角色。它不仅帮助企业管理客户数据,还能提升客户服务质量和销售效率。以下是CRM软件的一些主要好处: 集中管理客户信息 CRM软件将客户的所有信息集中在一个平台上,包括联系信息、购买历史、偏好设置等。这种集中管理使得团队成员能够迅速获取所需的客户信息,避免了信息https://www.jiandaoyun.com/blog/article/788085/
6.android移动办公系统开发基于安卓平台oa开发软件频道宣传android平台移动办公系统最完美的阅读软件当数ireader阅读软件。它支持自定义效果,能自动显示各类详细信息,增强自动生成封面图片效果等,一应俱全。它的实际应用,带来了全新的文本显示,优化了翻阅效果,同时提供了全新的查找方式,颜色配置明亮,显示位置恰到好处,定位效果有条不紊,可谓面面俱到。 https://www.epwk.com/meijie/14327.html
7.BPM是什么意思?BPM的优势及好处有哪些?如果大家已经了解了BPM的好处,并打算开始尝试BPM的话。下面就来一起看看如何开始使用BPM吧~ 1、为BPM使用低代码平台 在信息化时代,我们已然感受到了低代码开发带来的便捷。这也是为什么我们必须考虑如何将这些平台用于BPM。他们努力消除发展过程中的所有复杂因素。任何企业都可以用最少的资源和努力创建BPM解决方案。你甚https://blog.itpub.net/69933591/viewspace-2908435/
8.使用HyperV虚拟化搭建云桌面51CTO博客hyper云桌面类似于云服务下的saas平台,把一堆的win7或者win10的机器,搬到了服务器上。这对于企业用户来说,相当于是搭建了一套私有云,这样既实现了企业的云办公需求,又完美的保证数据的安全性,所有数据统一存储在自己的服务器上,企业只需要一名管理服务器的工程师,对服务器进行定期维护,安全检查就可以了。不像传统PC,https://blog.51cto.com/u_12622510/2491482
9.每日热点0801加强移动支付等安全监管。升级信息消费,促进信息消费体验中心建设改造,提升信息消费示范城市建设水平,高质量举办信息消费系列特色活动,推动新一代信息技术与更多消费领域融合应用。推动平台经济规范健康持续发展,持续推动创新突破,开辟更多新领域新赛道,进一步完善相关领域服务标准。https://www.sccdc.cn/Article/View?id=31588
10.高波:钉钉和企业微信更多是在学习oa厂商的成果移动办公现状总结SaaS移动办公平台目前还没有一个特别规范的定义,其产品定位、主要研发方向、为客户能解决什么问题等,还在探索之中,但是我觉得可以做初步分析。易观国际某张图的观点跟我的想法比较接近。 从产品特征来看,SaaS移动办公呈现出专业化、智能化和一体化的特点。 https://www.iyiou.com/news/2017022139633
11.汇佳网——知识产权交易平台万向移动平台开发商Virtuix近日宣布已经在股权众筹平台SeedInvest上获得来自4000多名投资者的融资,金额超1100万美元。据悉,这笔融资将用于开发家用版Omni Omni VR跑步机,Virtuix也将继续为用户推出新一代的虚拟现实消费设备。 为了支持Omni One项目,团队选择通过SeedInvest筹措资金,目标金额1500万美元。所述众筹项目将于2021https://www.china-huijiawang.com/Wap/article/detail/id/346.html
12.泛微移动平台集成泛微OA泛微移动平台是一个集成了泛微OA(办公自动化)系统的移动解决方案,旨在通过移动设备提供无缝的办公体验。它支持远程访问、即时通讯和文档管理等功能,以提高企业的工作效率和灵活性。 泛微移动平台的集成 (图片来源网络,侵删) 泛微移动平台是一个基于移动互联网的企业级应用平台,它允许企业通过移动设备访问和管理其业务流https://www.shiwaiyun.com/article/post/291588.html
13.电气系统隐患及整改8篇(全文)针对现存问题, 利用OA办公自动化系统强大的流程定制、印章审批、覆盖范围广等优势对安全隐患排查整改平台进行整合, 最终实现多系统的统一认证、统一登录、统一待办、统一流程、统一办理、统一归档查询。此外, 借助当前的手机移动办公平台还可以实现安全生产隐患排查治理监督信息平台的移动化应用。 https://www.99xueshu.com/w/file22zv0lvn.html
14.三星GALAXYS8评测移动版三星S8评测:半年机皇仍当仁不让(全文从硬件配置上看,三星盖乐世S8是十分亮眼的,搭载一块5.8英寸2960 x 1440分辨率的双曲面全视屏幕,搭载高通骁龙835移动平台,笔者本次拿到的机型为移动定制的4GB RAM+64GB ROM版本。后置摄像头1200万像素,支持全像素双核对焦和OIS光学防抖;支持虹膜识别和面部识别;支持无线充电;防尘防水级别达到IP68。 https://mobile.zol.com.cn/652/6520933_all.html