善用iOS App中Web View控件的好处


iOS开发中webview和native code写这是一件纠结的事。我写这篇文章, 介绍一下我做iOS两年来总结的一些在webview和native code的配合上的一些经验和技巧,当然,都是基于互联网App的,希望对大家有所帮助。

首先提两句两者的优劣。webview与运维成本低, 更新几乎不依赖App的版本;但在交互和性能上与跟native code有很大差距。native code与之对应。

注,我这里不说HTML5,因为我认为,HTML5确实给web带入了一个新时代。这个时代是什么,web app。也就是说,只有脱离native的这个前提,在浏览器的环境下,HTML5的意义才能显现,而我们讨论iOS App的时候,HTML5显然没什么意义。

不管是用webview还是native code,我有两个原则:

1,用户体验不打折 
2,运维成本低

注,为什么不提开发成本。因为做web开发和iOS开发根本就是两回事。当然,web开发发展了这么多年,对于某些功能实现是要比native app快。但多数情况,同一个功能,对于iOS开发者和web开发者,用各自擅长的方式开发成本都最低,所以说某个功能开发成本低,往往是一个伪命题。

刚刚说了,webview的优势在于更新不依赖版本,那么在一款App中,只有会频繁更新的界面考虑webview才有意义。那么哪些界面会频繁更新,这就要因App而异了,我只说两年来,我接触到的一些。

首页。首页资源可谓必争之地,内容一天一换是正常现象,一天几换也不稀奇。而如果仅仅是内容的更换,非要上个webview就显得有些激进了。而事实上首页的变化千奇百怪,逢年过节变个脸,特殊情况挂个公告,偶尔还要特批强推一把某个业务,等等。 
此前,我在设计App首页的时候,把首页配置设计的非常复杂。App端要处理n种情况,n各参数,server端要记住n种规则,直到一天,我崩溃了,把首页完全换成webview,才豁然开朗。

活动页。做互联网都知道,活动,是一个最常见的运营手段。特点是,周期短,功能少,但基本不能复用。这些特点都标识了活动不适合做native,要用webview实现。 
即使有人告诉你说,我的活动是一个长期活动而且形式不变,也不要相信他。因为在第二期,第三期,第四期他会分别加上一些非常诡异,却有很合理的小变更,而这些变更是你在那个版本根本无法实现的。

试水的新功能。这种界面,往往设计不成熟,需要在运行过程中不断收集用户反馈,更新升级,甚至决定去留。所以,只有webview才能hold住如此不稳定的功能。 
切记在一个功能还没有确定之前,不要大张旗鼓单位开发native code,要知道,你写的这些代码,三天后就要改一遍,而且要发布上线。

富文本内容。这个不用多说了吧,按照HTML的常用标签做一个webtext可不是小工程。而且富文本的变化太多了,一点无法匹配,都会导致整个界面巨丑。

OK,上边说了我认为最该使用webview的4个界面,分别带有不同的特点,用这些特点去描述一个界面,如果符合了,那么别犹豫了,做成webview吧。说了哪些界面做成webviev,再说说怎么做webview才能避其短处。

刚刚说了,webview的交互是个短板,因此webview在一个App中,只能作为界面,不允许在界面中出现动作。

而一个webview的界面如何跟native code结合起来呢,我的答案是,超链接。在webview上点击超链接,会调用webview delegate的shouldload方法,自这里拦截请求,进行处理。

由于webview的链接都是URL,因此我建议,把整个App的界面都用URL管理起来。从320框架对VC的管理中获得灵感,构建一个新的应用,总是先制定一套协议,封装一个方法,每一次VC的切换都通过URL。如此一来,server与App的交互就简单了许多,webview也如是。

最后就是长相问题,webview很难长成native的view。而我的方案是,长不成也要装成。在一些情况下,禁用webview滚动,使用滚动框架(iScroll不错)去实现。webview上下留出200pixel的空白背景,y从-200开始。否则大家知道,webview上下会有阴影的背景,不藏起来会很丑。等等,还有很多其他的方法去伪装webview,是要视情景而用。 
目前,就想到这些,一定有很多纰漏,只求抛砖引玉,能让webview在App中发挥优势,有助于开发者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 是的,有些web前端大作业的源码是可以免费获取的。正如在各种开源社区和代码分享平台上所见,许多前端开发者乐于将他们的作品共享给其他人使用。 免费获取web前端大作业源码有几个好处。首先,对于学习者来说,这些源码可以作为学习和参考的资源。通过查看他人的代码,我们可以学习到他们的开发思路、技术实现以及代码组织方式。这有助于我们提升自己的编程能力和设计水平。 第二,对于那些刚刚开始前端开发的人来说,免费获取源码可以帮助他们更快地入门。通过使用他人开发的代码,他们可以通过修改、调试和实践来快速构建自己的项目。这有助于他们加深对前端开发的理解,并逐渐独立完成自己的作品。 当然,免费获取源码也有一些限制和注意事项。首先,我们必须遵守源码的使用许可协议。有些作品可能会附带特定的开源协议,我们需要在使用时遵守这些协议的规定。其次,我们应该尊重作者的劳动成果,不应该将这些源码用于商业目的,而应该把它们仅限于学习和个人非盈利使用。 总之,免费获取web前端大作业源码是一个很好的资源,可以帮助我们在前端开发领域更好地学习和成长。我们应该充分利用这些开源资源,同时要尊重作者的劳动和知识产权。 ### 回答2: 是的,很多web前端大作业的源码是免费提供的。 由于web前端是一个非常开放的领域,许多人都乐于分享他们的代码和项目。这些开源项目通常以GitHub等代码托管平台的形式存在,任何人都可以免费获取和使用这些源码。 获得免费的web前端大作业源码有几个途径。首先,你可以在搜索引擎输入相关的关键词,例如“web前端大作业开源项目”等,就能找到一些资源分享网站和论坛上的帖子,里面有人分享他们的作业源码和项目。其次,你还可以关注一些web前端开发者的博客和社交媒体账号,他们会定期发布一些开源项目的源码,供其他人学习和使用。此外,还有一些知名的学术机构和在线教育平台也会免费提供他们的课程和相关作业的源码,供学习者参考。 获得免费的web前端大作业源码对于学习者来说是非常有价值的。通过阅读和理解他人的代码,我们可以学习到不同的编程技巧、设计思路和最佳实践。同时,我们也可以借鉴他人的代码,将其应用到自己的项目,提高开发效率和代码质量。在开源社区,我们可以积极参与讨论和贡献自己的代码,与其他开发者一起相互学习和进步。 总之,web前端大作业的源码免费提供给大家,既丰富了学习资源,也促进了开源和协作精神的传播。希望大家能够善用这些资源,不断提升自己的前端技术。 ### 回答3: 当我完成了一个满意的web前端大作业,并且经过我自己的测试验证,我想与其他的前端开发者分享我的成果,帮助他们提高他们的编程技能,所以我决定将我的项目源码免费提供给大家使用。 首先,通过免费提供源码,我能够为其他人提供学习的机会。在web前端开发的学习过程,经常遇到问题和困惑,而参考他人的源码是一种非常实用的学习方法。通过分享源码,其他前端开发者可以学习我在项目使用的各种技术和解决问题的方法,从而提高他们自己的编程水平。 其次,通过免费提供源码,我可以得到其他开发者的反馈和建议。每个人在编程过程都有自己的风格和方法,通过与其他人分享源码,我可以了解到其他前端开发者对我的项目的看法和建议,从而使我自己的编码技能不断地进步和改进。 最后,免费提供源码也是对开源社区的贡献。在开源社区,开发者们相互分享他们的项目,帮助他人解决问题,共同进步。通过将我的项目源码免费提供,我也可以积极参与到这个社区,为社区的发展做出贡献。 总而言之,我免费提供web前端大作业的源码,是为了帮助他人学习和提高编程技能,接收他人的反馈和建议,并为开源社区做出贡献。这是一个互惠互利的过程,通过分享源码,我们可以一起进步,共同推动Web前端开发的发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值