現在解析一下modular的核心源碼,代碼在上一個博文中給出了git下載地址。如今都在喊大前前端研發,但HTML要依賴Native端的能力還是需要對應的原生研發,本人開源了框架代碼,也希望有志同道合的碼農一起繼續完善框架代碼,歡迎各位來拍磚!大家有什麼建議,可以直接給我email: [email protected]
接下來我們分幾個部分講解
1. 框架流程圖及實現簡要說明
2. Javascript端的實現
3. WebView引擎的實現
4. 插件池引擎的實現
架構流程圖及核心實現簡要說明
- 圖中1-2構造瀏覽器內核控件WebView,加載渲染HTML;
- 圖中3-4 往HTML中注入JS對象,本質上是給瀏覽器內核控件WebView加載渲染HTML的對象中注入JS對象,此JS對象在HTML DOM中是全局變量Window的一個對象屬性;
- 圖中5-6 APP通過讀取資源目錄裏的插件配置,根據配置中配置的參數,利用反射機制構造插件對象,並將構造的插件對象存儲到插件池中,併爲其建一個索引,索引規則:採用插件配置中唯一性字段name;
- 上述1-6個步驟完成插件的註冊過程;
- 圖中7-8 HTML 調用上述注入到Window的對象的方法,WebView的JS橋接器就會調用原生端插件池中的對象方法