南昌网站建设赣icp南昌,唐山网站建设找汉狮,信阳做网站的,word模板免费下载素材写一个易于维护使用方便性能可靠的Hybrid框架#xff08;二#xff09;—— 插件化 写一个易于维护使用方便性能可靠的Hybrid框架#xff08;三#xff09;—— 配置插件 前言 本来上一篇博文写完#xff0c;我就告诉自己#xff0c;这是最后一篇#xff0c;之后不再总结…写一个易于维护使用方便性能可靠的Hybrid框架二—— 插件化 写一个易于维护使用方便性能可靠的Hybrid框架三—— 配置插件 前言 本来上一篇博文写完我就告诉自己这是最后一篇之后不再总结和Cordova相关和web容器相关的内容但是很不巧我昨天总结完关于Cordova框架对URL拦截导致通信丢失问题的处理之后又看了味精大佬的从零收拾一个hybrid框架二-- WebView容器基础功能设计思路别问我3月份的文章为何才看到因为我才路转的掘金之后我又按耐不住自己了PS我本来是没想研究这么深的但是停不下来了那我就问自己如果是我呢因为我一直在总结Cordova的思想那么如果是我设计一个Hybrid框架我要怎么做于是我又陷入了沉思...因为我本来是想在后续着重研究weex,RN等动态UI方面的实现的讲真的通过味精大佬的分析我现在也不确定到底是我们的web容器更好还是基于weex等的动态UI更好于是我又陷入了沉思...经过深思之后个人觉得后者是大前端的趋势什么是大前端就是各种的各种前端客户端糅合在了一起四处交叉延伸不分你我。 不扯那么多了还是基于这个想法我决定给自己总结一个自己的Hybird框架一方面属于知识的总结年纪大了不总结就忘是真的另一方面算是对自己知识的扩展延伸希望多像大神学习...另外味精大佬的思想是框架内并不自己构建webView而是开发人员完全使用自己的webView即可那么我也在纠结到底要不要开发者自己控制webView还是说框架内控制那么我先在大佬的基础上做下延伸扩展决定框架内不提供webViewwebView的创建由开发者自己控制。 那么现在就有了两个前提一是webView使用WKWebView二是框架内不提供webViewwebView需要开发者自己创建。下面进入正题 一个好的Hybrid框架应该具有哪有特点 1.插件化这个是必须的解耦没毛病什么叫插件化就是可插拔用的时候拽进来不用的时候拖出去其余什么都不用干。说实话这很符合Cordova优点太多离不开了插件化又可以细分 1.webView的代理方法具体实现插件化这样不管哪个webView的代理方法都可以随意设置而不会影响业务。2.js与native交互插件化就是我们所谓的js插件native插件它们统一叫插件比如fetch,io等配对插配对拔具体看业务需求。2.可配置性就是说一切皆可配置所有的插件都是被一个配置文件搞定的也就是说一个配置文件即可搞定上面提到的一切插件。配置又可以细分 1.插件可配置插件的可配置又细分为native端的插件可配置和js端的插件可配置。2.插件是否在加载webView时就加载到缓存里面还是说在调用的时候在加载这个要看具体业务个人觉得常用的插件例如fetch插件js的网络请求都使用native来做这种插件是完全有必要提前加载的像地图这类插件可能偶尔会用一次或者用户一时半会用不到这类插件就完全可以在调用的时候再实例化放入缓存。3.对于前端开发者来说接口统一并且框架内怎么变也不需要js做改动对于前端来说始终是一套接口他不需要关心webView具体是啥。 需要提供出一套前端接口给前端开发者。4.通信上必须用WKWebView因为它对性能的提升是显而易见的而且不得不用webView这一块打算参考味精大佬所选择的通信方式。具体可以参考 1.从零收拾一个hybrid框架一-- 从选择JS通信方案开始2.从零收拾一个hybrid框架二-- WebView容器基础功能设计思路5.js与native插件交互的性能优化。这一块又可以细分三部分 1.js调用native是否需要搞个队列像我上一篇所提到的是不是不需要每次调用都要经过webView那么同样native端是否一样也需要搞个队列出来Cordova思想别问我为什么我也不知道。2.插件回调一旦耗时是否需要将其放入后台线程执行3.我在浅析iOS-Cordova里面提到过一点如果插件执行时间过长造成卡顿向runloop中添加了一个timer来唤醒runloop继续干活防止休眠那么我们是不是也可以将它带过来。我就想到了上面的五点不过感觉有这五点也差不多了就这些吧那接下来要做的事情就是一步一步的解决上面的五个问题主题思想还是抽离前两篇文章外加Cordova框架思想毕竟Cordova有点重量级有些是我们平时开发用不到的而且集成起来也比较麻烦基于此打算造一个性能可靠使用方便易于维护且轻量级的Hybrid框架出来。目前构建了思路具体实现准备放在下一篇PS因为我现在也没想好太晚了就到这吧来写。