女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>源碼下載>通訊/手機編程>

從iOS Basecam3探索混合應用開發的最佳實踐

大小:0.6 MB 人氣: 2017-09-27 需要積分:2

  Hybrid 的定義

  首先,我們需要清楚理解什么是”hybrid”。這個詞在很多不同的場合中被使用,但這對于我們而言幾乎沒有任何意義。在我們的開發中,我們所指的”混合”是具有大量 web 渲染內容的標準原生應用。我們沒有使用通過 HTML/CSS 來模擬原生控件的框架,也沒有使用將另一種編程語言編譯成原生開發語言的框架,亦或者是通過一份代碼庫開發一個跨平臺的 App 的框架。

  對于我們而言,這意味著我們需要使用 Xcode+Swift,并且要遵守開發平臺關于導航和展示的所有規范。在 App 中構建的內容大多由 UINavigationController、UIViewController、UITabViewController、UISplitViewController 等組成。在這些容器中,有很多內容是通過 UITableView 或 UICollectionView 組建的,當然了更多的是通過 WKWebView。

  深入理解

  在 iOS 版本的 Basecamp 3 App 中我們使用的全部是 Swift 3.1,并且通過最新版本的 Xcode 進行編譯。我們只有很少的依賴,并且這些都是通過 Carthage 進行管理。Turbolinks 是我們能夠使用混合架構的核心庫。Turbolinks 不僅可以用在 Web 上,在 iOS 和 Android 的原生應用上也可以進行使用。此框架主要解決了原生應用和 Turbolinks.js 之間的通訊問題,并且允許開發者在多個界面間共享單個 WKWebView。

  路由/導航

  除了 Turbolinks,我們還需要許多其他的組建進行支持。在 iOS 應用中大多數都是通過 URL 進行的導航。一個 URL 可以有很多來源(web 鏈接、推送通知、來自另一個 App 的通用鏈接、本地跳轉等),但是它們都要通過路由進行中轉。路由需要清楚地知道對于一個給定的 URL 下一步操作是什么。如果 URL 是另一個域,應用還可能打開 Safari;如果是圖像/視頻,則需要展示一個媒體視圖,又或者是在大多數情況下,應用都是創建一個新的控制器進行展示。大多數的控制器都需要被推入當前導航控制器的棧中,但是我們也支持通過模態的方式彈出一個視圖(類似新的/編輯視圖) 以及在合適的時候替換當前視圖。

  橋接

  組成混合架構的最后一個組件是橋接(盡管我們有許多其他的組件,但它們都和混合模塊沒關系)。這是一個在 App 不同部分之間進行通訊的統稱術語,比如原生-》web通訊(或web-》原生)。其中最核心的代碼是一份嵌入到本地 App 的 Java 文件(用 Type 編寫)并且通過 WKUser 注入到 web 視圖中。這種橋接方式給原生代碼提供了一個在不需要直接查詢 DOM 和進行復雜 JS 操作的情況下與 web 視圖進行通訊的 API。利用 WKMessageHandle,我們可以通過橋接來響應從 Web 發送的消息。

  從iOSBasecam3探索混合應用開發的最佳實踐

  以上是一個關于橋接的例子。我們使用橋接來隱藏一些在 web 上需要顯示但在 Basecamp 界面中不需要的元素。由于我們給頂層導航控制器提供了一個標簽條,所以我們需要隱藏 web 界面最下面的部分。同時,也不需要 web 的導航記錄了因為我們已經有了一個導航控制器。最后,我們隱藏了 Web 的編輯/書簽/動作菜單并且提供了一個原生版本的界面。

 

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?