第 28 集:作者:法國巴黎的 Mark Cogan (2022 年 1 月)
上一集
2022 年 Chrome iOS 版將歡慶 10 週年。 Chrome 是目前最受歡迎的 iOS 應用程式之一,目前是美國 App Store 排名第 2 的「公用事業」應用程式。
iOS 版 Chrome 提供了使用者喜愛的所有 Chrome 實用功能,包括同步、翻譯、無痕模式、密碼管理工具、自動填入等。 iOS 版 Chrome 也整合了 iOS 原生功能,例如多視窗模式和裝置層級密碼自動填入功能。
不過,iOS 版 Chrome 與所有其他 Chrome 平台實作項目有很大的差異。
iOS 版 Chrome 不支援 Blink。
根據 Apple 的 App Store 規則,iOS 版 Chrome 必須使用 iOS 平台 API 擷取及顯示網頁內容。因此 iOS 版 Chrome 採用 WebKit、Nitro 和 CFNetwork,其他 Chrome 平台則使用 Blink、V8 和 //net
。因此,以及 iOS 應用程式可以使用的有限 API 與網頁內容互動,許多使用 //content
API 的 Chrome 功能在 iOS 的 Chrome 中都是透過 JavaScript 插入來實作。
//components
中的跨平台功能結構化,可以盡可能在所有平台共用程式碼,同時保持 //content
的依附元件互不流通:
ls components/some_component
content/ # code with dependencies on //content.
core/ # cross-platform code with no //content dependencies.
ios/ # iOS implementation using JavaScript injection.
iOS 版 Chrome 和其他平台上的其他重要差異包括:
- iOS 應用程式必須是單一程序,因此 iOS 版 Chrome 無法
fork()
。 - iOS 版 Chrome 是以 Objective-C++ (C++ 和 Objective-C) 編寫而成,以及一些 Swift。
- 雖然您可以直接在 iOS 裝置上編譯及執行 Chrome,但您也可以使用 Apple 提供的強大裝置模擬器,執行許多功能開發工作。
在 iOS 裝置上開始使用 Chrome
您會需要以下項目:
- 搭載 macOS 11.3 以上版本的 macOS 電腦 (64 位元)。支援 Apple Silicon。
- Xcode (Apple 平台的 IDE 13.0 以上版本)。
- 目前的 JDK 版本。
詳情請參閱建構操作說明。
擷取來源的方式與其他平台類似:
mkdir ${HOME}/chromium-ios
cd ${HOME}/chromium-ios
fetch ios
接著,您可以透過指令列 (或 Xcode) 建構:
autoninja -C out/Debug-iphonesimulator chrome
進一步瞭解如何開發 iOS 版 Chrome
建議您參閱 Chromium 樣式指南。請參閱 Apple 的開發人員說明文件,進一步瞭解 Swift、xCode 和其他 iOS 專用資源。
如果您一般是 iOS 開發人員,且剛開始使用 Chromium,請參閱重要抽象和資料結構說明文件。