管控:对于一个可以发布“小应用”的平台,微信必须对其下发布的“小应用”用着绝对的管控能力。
体验:作为微信一个小程序需要让其体验接近原声,普通H5的体验不能达到这一需求。括页面切换,启动速度,页面的整体体验,相对于原生都是无法相比的。
1.DLS:想要对开发者进行管控,最好的方法就是自己设计一套框架,让开发者按照自己框架的规范进行编码,利用这套DLS(针对某一特定的领域设计的计算机语言)可以更好的针对不同的需求去优化。
2.JS环境:写过小程序的开发者都了解,小程序中是无法调用任何DOM API的,为什么呢?是因为小程序实现了js的运行环境与浏览器分离,运行在单独的js引擎上,脱离了浏览器,一切DOM操作在你的JS中是无法操作的,而小程序的核心JS是运行在浏览器中的,这样做的好处和坏处是什么呢?
1.避免开发者进行DOM操作,因为开发者可能会通过不同的方式进行上线后,绕过检查,注入js文件,自由操作DOM接口去修改的界面和内容,变成和审核时候不一样的小程序来达到自己的目的,这中现象和之前iOS的热更新原理是一样的,在APP上线后,通过js脚本,去修改界面的样式,内容,或者调用官方私有API来做一些非法的操作,这种现象对于苹果,微信这种超级平台是很不敬的,同时对其安全也是有很大威胁的,它不会允许这种不可控的事件在自己的眼皮底下发生。但是热更新对于原生APP来说还是一个非常重要的需求。
2.js和页面渲染并行执行,不会出现由于js执行而卡住页面的现象,提高渲染的性能。
1.做过iOS和JS交互的同学应该清楚大致流程,在iOS中执行JS需要讲JS代码转化为字符串,所以,微信小程序中的js要传输给原声webview使用,需要进行转换为字符串来执行。
2.iOS上原生的WKWebView的JS引擎比javaCore框架做了很多的优化(使用和Safari相同的JS引擎),微信小程序上的js则无法享受这一优点。
1.因为微信小程序是寄生在原生下的应用,通过native接口,我们可以用js调用一些原生的组件和方法,做出一些H5无法完成的任务和体验。
2.退出微信小程序后,小程序可以在后台运行5分钟,用户再次打开时,不需要重洗渲染小程序。
3.同时得益于在原生环境下,微信小程序可以预加载多个WKWebView,可以省去WKWebView加载时间,提高用户体验。
这之间的取舍就是对于业务和技术之间的取舍。在对用户体验影响不大的情况下,对于技术上的取舍在业务上至关重要。返回搜狐,查看更多
*请认真填写需求信息,我们会在24小时内与您取得联系。