官术网_书友最值得收藏!

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的類型轉換

主站蜘蛛池模板: 禹州市| 伊吾县| 庆元县| 白朗县| 沙坪坝区| 旺苍县| 姜堰市| 井陉县| 重庆市| 景宁| 广德县| 保康县| 永寿县| 应用必备| 胶州市| 平乐县| 民丰县| 伽师县| 锦州市| 保靖县| 江津市| 赤水市| 久治县| 会泽县| 格尔木市| 元氏县| 咸丰县| 岗巴县| 治多县| 奉节县| 贺州市| 兴化市| 米泉市| 凭祥市| 永吉县| 新乐市| 隆回县| 天长市| 花莲县| 林芝县| 齐河县|