1 基本原理
手機操作系統-原生App-瀏覽器-Web 應用
原則上:
原生代碼不實現業務邏輯,只處理 js 不擅長或手機操作系統提供的 API,比如:相片和視頻處理,與其他App交互,SDK 對接
界面、業務邏輯由 Web 實現
2 出發點
基於現實原因,沒有足夠的原生App開發人員,業務的不確定性,導致了產品的頻繁變更。總的來說就是開發成本、開發效率和產品體驗之間平衡。
3 技術實現
3.1 js 與 Native 的互相調用
使用 DSBridge 處理兩者交互,在 Android 和 IOS 中都可以使用,但不清楚項目現在為何不更新了。
基本上是 js 調用 Native,印象中沒有使用 Native 調用 js 發式,這樣會簡單一點,應用會健壯點吧。
3.2 本地Html VS 線上網站
目前上架的應用使用的是將 html 相關文件打包到應用安裝包內,這樣體驗會好一點。開發時使用線上地址便於調試。
3.3 劉海屏和底部危險區域
應用啟動后計算出劉海屏和底部危險區域高度,web 初始化是獲取相關高度並做適配性處理。
4 應用實例
安卓原生功能示例

ios原生功能示例

如果想看下實際效果可以在主流應用商店搜索【有才貓】demo App,如:小米應用商店,App Store
5 不足
第一次安裝啟動時會有明顯白屏出現,安卓通過在 Web 初始化完成后,再關閉啟動圖,減少白屏時間。iOS 的白屏時間短暫暫未做優化處理。
