- 企業數字化轉型:釘釘小程序開發權威指南
- 楊鶴等
- 692字
- 2022-05-05 21:37:42
2.2.2 Page頁面原理解析
Page頁面用來承載小程序的各個頁面,表2-2展示了 Page頁面的組成部分。
表2-2 Page頁面的組成部分

由小程序底層封裝的AXML,可以使得開發者通過使用簡單的類似HTML的語言進行編寫,調用AXML定義好的自帶復雜交互的組件。WKWebView負責對AXML和ACSS進行解析和執行,開發速度提升的同時,比使用H5開發相同復雜度的組件的計算渲染速度更快。小程序的JavaScript解析則是直接由JavaScriptCore負責的,頁面內部的交互行為將繼續通過JavaScript實現,而與App的交互將會解析為Objective-C來與釘釘iOS客戶端交互。
.json文件其實就是一種配置文件,是小程序與釘釘客戶端的約定,直接由Native讀取來控制整個小程序App或者頁面的一些生命周期、導航邊框等通用行為樣式。
所以釘釘小程序本質上就是自定義了多功能標簽、頁面配置項,優化了傳統H5和Native交互,采用了更高效的渲染引擎和更高效的JavaScript解析引擎的類H5的網頁開發,當然由于各種適配與釘釘客戶端的自定義功能,高效的同時,它也只能在釘釘中運行。
1.WKWebView簡介
WKWebView是蘋果公司在iOS 8之后推出的WebKit框架中的瀏覽器控件,其加載速度比UIWebView更快,但內存占用率下降很多,解決了加載網頁時的內存泄漏問題。
對比UIWebView,WKWebView最大的優勢在于:
● 更多地支持HTML5的特性。
● 具有官方宣稱的高達60fps的滾動刷新率及內置手勢。
● 擁有與Safari相同的JavaScript引擎。
● 更多內容可參考官方文檔“鏈接0”。
2.JavaScriptCore簡介
JavaScriptCore建立起Objective-C和JavaScript兩門語言之間溝通的橋梁。無論是這些流行的動態化方案、WebView Hybrid方案,還是之前廣泛流行的JSPatch,JavaScriptCore都在其中發揮了舉足輕重的作用。
iOS官方文檔對JavaScriptCore的介紹很簡單,其實主要就是給App提供了調用JavaScript腳本的能力。而在小程序中釘釘Native也是通過JavaScriptCore調用JavaScript腳本的。
其中最重要的幾個模塊如下:
● JSContext.
● JSManagedValue.
● JSValue.
● JSVirtualMachine.
圖2-2展示了Objective-C和JavaScript的類型轉換。

圖2-2 Objective-C和JavaScript的類型轉換