Capacitor 1.0發佈:讓混合應用程序開發變得更容易

Ionic的新原生API容器Capacitor發佈了1.0版本。這個容器旨在使用JavaScript創建iOS、Android和Web應用程序,爲構建可訪問原生特性的跨平臺應用程序帶來了新的視角。

Cordova類似,Capacitor的目標是在不需要編寫平臺特定代碼的情況下訪問底層操作系統的原生特性,這使得在iOS、Android和Electron應用程序中使用相同代碼訪問設備攝像頭成爲可能。Capacitor採用了一種完全不同的方法將HTML/CSS/JavaScript應用程序運行在原生Web視圖中,並通過統一的接口將原生功能暴露給應用程序。

與Cordova的一個主要區別是Capacitor要求開發人員處理原生應用程序項目,包括運行Ionic應用程序的Web View,將其作爲Capacitor應用程序的一個組件,而不是反過來。這種方法使得集成外部SDK(在iOS上可能需要調整AppDelegate)變得更加容易,並且無需編寫插件就可以原生地功能集成到Ionic應用程序中,就像Cordova一樣。

Capacitor的另一個好處是它不再需要監聽deviceready事件。Capacitor會在加載Ionic應用程序之前加載所有插件,所以它們是立即可用的。此外,Capacitor插件公開了可調用的方法,所以開發者不需要使用exec。例如,下面是一個非常簡單的iOS Capacitor插件,一個擴展了CAPPlugin的Swift類:

import Capacitor

@objc(MyPlugin)
public class MyPlugin: CAPPlugin {
  @objc func echo(_ call: CAPPluginCall) {
    let value = call.getString("value") ?? ""
    call.resolve([
        "value": value
    ])
  }
}

要使插件的echo方法直接對Capacitor Web運行時可用,需要在.m文件中註冊它:

#
import
 <Capacitor/Capacitor.h>

CAP_PLUGIN(MyPlugin, "MyPlugin",
  CAP_PLUGIN_METHOD(echo, CAPPluginReturnPromise);
)

Capacitor使用npm進行依賴關係管理,包括插件和平臺。因此,如果你需要使用插件,只需像往常一樣運行npm install。而在使用Cordova時,你需要使用cordova plugin add…命令。作爲一個額外的簡化,Capacitor要求將iOS插件的原生組件打包成CocoaPod,對於Android來說可以作爲一個獨立的庫使用。

最後,Ionic官方稱,Capacitor最終將取代Cordova,成爲Ionic應用程序容器化的官方方式,這樣它們就可以跨平臺訪問原生特性,但在未來幾年內,Cordvoa仍然會有人提供支持。

查看英文原文Capacitor 1.0 Aims to Improve the Creation of Hybrid, Web, and Native Apps

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章