• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > 如何快速开发多端应用?

如何快速开发多端应用?

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含native,react,apicloud,phonegap,HBuilder等相关知识,匿名希望在学习及工作中可以帮助到您
现在一个应用需要有IOS,Android,webapp(通过phonegap等打包工具可变成app),这个是最基本的,有可能还需要微信端等等。现在国内有一些工具,比如:wex5,appcan,apicloud,HBuilder等等这些工具说是可以开发多端应用,在这么多工具之中我们应该如何选择呢?如果不使用这些工具用h5开发多端应用是否有更好的选择呢?比如:react native,可能后续vue也会出一个类似react native的解决方案。请了解的童鞋分析一下各种方案利弊或者你们有更好的选择求分享。

回复内容:

上周写了一篇文章:

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:phodal
链接:http://zhuanlan.zhihu.com/phodal/20548041
来源:知乎

Web本身就是跨平台的,这意味着这中间存在着无限的可能性。

我是一名Web Developer,对于我来能用Web开发的事情就用Web来完成就好了——不需要编译,不需要等它编译完。我想到哪我就可以写到哪,我改到哪我就可以发生哪发生了变化。

最近我在写Growth——一个帮助开发人员成长的应用,在近一个月的业余时间里,完成了这个应用的:

  • 移动应用版:Android、Windows Phone、iOS(等账号和上线)
  • Web版
  • 桌面版:Mac OS、Windows、GNU/Linux

截图合并如下:

而更重要的是它们使用了同一份代码——除了对特定设备进行一些处理就没有其他修改。相信全栈的你已经看出来了:

Web = Chrome + Angular.js + Ionic

Desktop = Electron + Angular.js + Ionic

Mobile = Cordova + Angular.js + Ionic

除了前面的WebView不一样,后面都是Angular.js + Ionic。

从Web到混合应用,再到桌面应用

在最打开的时候它只是一个单纯的混合应用,我想总结一下我的学习经验,分享一下学习的心得,如:

  • 完整的Web开发,运维,部署,维护介绍
  • 如何写好代码——重构、测试、模式
  • 遗留代码、遗留系统的形成
  • 不同阶段所需的技能
  • 书籍推荐
  • 技术栈推荐
  • Web应用解决方案

接着我用Ionic创建了这个应用,这是一个再普通不过的过程。在这个过程里,我一直使用Chrome在调度我的代码。因为我是Android用户,我有Google Play的账号,便发布了Android版本。这时候遇到了一个问题,我并没有Apple Developer账号(现在在申请ing。。),而主要的用户对象程序员,这是一群不土的土豪。

偶然间我才想到,我只要上传Web版本的代码就可以暂时性实现这个需求了。接着找了个AWS S3的插件,直接上传到了AWS S3上托管成静态文件服务。

几天前在Github上收到一个issue——关于创造桌面版, 我便想着这也是可能的,我只需要写一个启动脚本和编译脚本即可。

所以,最后我们的流程图就如下所示:

除了显示到VR设备上,好像什么也不缺了。并且在我之前的文章《Oculus + Node.js + Three.js 打造VR世界》,也展示了Web在VR世界的可能性。

在这实现期间有几个点可以分享一下:

  1. 响应式设计
  2. 平台/设备特定代码
响应式设计

响应式设计可以主要依赖于Media Query,而响应式设计主要要追随的一点是不同的设备不同的显示,如:


这也意味着,我们需要对不同的设备进行一些处理,如在大的屏幕下,我们需要展示菜单:


而这可以依赖于Ionic的expose-aside-when="large",而并非所有的情形都是这么简单的。如我最近遇到的问题就是图片缩放的问题,之前的图片针对的都是手机版——经过了一定的缩放。

这时在桌面应用上就会出现问题,就需要限定大小等等。

而这个问题相比于平台特定问题则更容易解决。

平台特定代码

对于特定平台才有的问题就不是一件容易解决的事,分享一下:

存储

我遇到的第一个问题是数据存储的问题。最开始的时候,我只需要开始混合应用。因此我可以用Preferences、或者SQLite来存储数据。

后来,我扩展到了Web版,我只好用LocalStoarge。于是,我就开始抽象出一个$storageServices来做相应的事。接着遇到一系列的问题,我舍弃了原有的方案,直接使用LocalStoarge。

数据分析

为了开发方便,我使用Google Analytics来分析用户的行为——毕竟数据对我来说也不是特别重要,只要可以看到有人使用就可以了。

这时候遇到的一个问题是,我不需要记录Web用户的行为,但是我希望可以看到有这样的请求发出。于是对于Web用户来说,只需要:


trackView: function (view) { console.log(view); } Ionic + LeanCloud; react 方面暂时没有能够像 ionic 提供这么充足的满足移动场景的框架体系 wex5,appcan,apicloud,HBuilder等等这些工具确实是都在推广一次开发多端运行,不过宣传是宣传,具体操作也都有自己非常明显的优缺点,在这里简单的说一下(谨代表个人观点,不喜勿喷)
wex5的界面比较赏心悦目一些,开发过程比较爽,数据和视图是分离的,当然这个东西是锦上添花并非关键,混合开发最受质疑的是性能问题,运行卡顿,在这几款工具中,能够把这个问题处理的最好的应该是wex5,唯一一个用单页加载的开发工具,页面加载极速,这个想必也是他铁杆粉丝大爱的原因之一吧,虽然开发中会遇到一些问题,不过还好都不是重点。
appcan是这个行业中最古老的了,宣传也一直以领导者倡导者自居,在互联网世界中历史悠久难道是好事么,这个总觉着有点奇怪,不过话说产品是王道,各方面来说总的还可以,不过比较致命的是打包好的app会加入他们的一些代码,这些代码会做一些服务器请求,然后呢,由于他们的服务器非常不稳定,经常导致无法请求成功,其结果就是app没法打开或者直接崩溃,这点让人很无语,就我个人的观察来看,基本上可以保证每个月都出问题,官方的响应也非常慢经常一两天搞不定(要是周六周末就更惨,肯定找不到人-_-)。基本上你喊破喉咙也没人理你。总之,就我个人的使用经验来看,appcan对免费版的支持相当差(你可以认为是没支持-,-),至于企业版,我没买,所以不知道是个什么程度。所以如果你做的东西不是什么要紧的东西,那么用它就无所谓,如果是打算开发靠谱的东西,建议你绕道
apicloud是以前appcan里的一位核心技术人员,后来走了,就自己创办的apicloud,这个是背景,也不能说因为此就断定apicloud肯定是没有appcan有实力的,我只发表我个人使用过的观点,所谓的组件化(UzModule)开发,对Android的生命周期支持非常不到位,常见的onPause,onResume都无法实现;onCreate也没有使用,在社区里逛了之后,感觉很多东西都是二手的,抄袭无疑是apicloud让开发者最反感的一点,2015年

您可能想查找下面的文章:

  • React Native 之ScrollView轮播图实现方法实例
  • 这个问题已有了答案?
  • 百度小说推出专为平板电脑设计的 HTML5 web 应用,体验效果和原生应用类似,是否意味着随着 HTML5 技术的成熟,原生应用未来将输给 web app?
  • 新浪微博的 HTML5 页面体验已经和 native app 差不多了,是否意味着 HTML5 可以取代 native 了?
  • 淘宝的HTML5页面,为什么要把默认滚动给禁了?
  • html5将来会取代native app 吗,我现在学native app,比如android,会不会白学了,以后被淘汰?
  • 为什么移动平台还是 Native 更流行,较少 HTML5 应用?
  • 如何快速开发多端应用?

相关文章

  • 2018-12-03HTML5 Web Storage的图文详解
  • 2018-12-03html5中关于canvas画图之画圆形的实例介绍
  • 2018-12-03HTML5学习笔记(四)-列表, 块和布局代码实例
  • 2018-12-03如何解决滚动条样式问题
  • 2018-12-03如果一个仅靠培训学习html5 如何才能使自己真正做到符合市场所需要的人才标准?
  • 2018-12-03详解HTML5中rel属性的prefetch预加载功能使用_html5教程技巧
  • 2018-12-03html5中文件域+FileReader分段读取文件并上传到服务器的案例
  • 2018-12-03H5的语义化标签新特性应该如何使用
  • 2018-12-03为什么HTML5移除了big标签却新增了small标签?
  • 2017-08-06使用 HTML5 Canvas 制作水波纹效果点击图片就会触发

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • HTML 5-交互
    • 一款带有发光动画的HTML5表单
    • H5设计时的小技巧总结
    • 使用HTML5拍照示例代码介绍
    • HTML5实现一个能够移动的小坦克示例代码_html5教程技巧
    • 基于HTML5代码实现折叠菜单附源码下载_html5教程技巧
    • HTML5属性:margin属性的用法实例
    • html5中为audio标签增加停止按钮动作实现方法_html5教程技巧
    • 谷歌AMP和百度MIP对SEO的影响
    • vue的本地静态图片路径

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有