多個APP合併為一個APP開發的實現方案
需求
目前開發了線上娛樂、收音機、本地音樂三個APP,需要開發一款APP整合這三個模組功能。
具體要求:左側顯示導航欄,包含“線上娛樂”、“收音機”、“本地音樂”按鈕,點選可進入相應模組功能。
目前已知有兩種實現方案,具體如下:
一、方案一——仍然分三個APP開發
三個APP具有佈局完全一致的左側導航欄,點選導航欄完成APP之間的切換。這裡通過三個APP來回跳轉的方式,實現了讓使用者看起來是一個APP。其中需要注意:
1.在每個APP中,在BaseActivity中統一顯示、控制左側導航欄。注意每個活動取消切換動畫,背景設定為透明色,這樣可保證APP之間來回切換時看著像一個APP。
2.多個娛樂類應用在後臺時,需要考慮點選圖示應該開啟哪個應用,需要每個APP都需要通過傳送接收廣播來記錄應該啟動哪個APP,這個過程就相當繁瑣;
2.靈活度低,如果導航欄需要新增/刪除/修改時,需要去三個APP中進行修改。
二、方案二——合併為一個APP開發
按照一般的開發會存在一個問題:如果按照預設活動啟動模式,記錄三個模組的棧頂Activity,模組A依次開啟A1-A2-A3,再點選導航欄按鈕模組B依次開啟B1-B2-B3,再次點選模組A按鈕跳轉到A3後,點選返回按鈕則會跳轉到B3頁面而非A2。
1.結合singleTask和taskAffinity實現一個APP中有三個任務棧,使用三個任務棧分別管理相應模組(可避免上述問題);
2.使用MyApplication在活動關閉、開啟、退出APP時分別記錄三個模組的任務棧列表;
3.存在的問題,由於會建立三個任務棧,所以在建立第二個、第三個任務棧時會出現黑屏現象,目前仍未解決。考慮到手機APP之間跳轉貌似沒有此現象,應該是能夠解決的;
4.後續開發建議可考慮元件化開發,三個功能模組分別為三個模組,這樣每個模組可單獨執行。
總結
很多車機已經將娛樂類APP融為一個大的APP,大多數車廠的案例也只是左側導航欄點選控制介面的切換,再點選了導航欄按鈕後只有一個頁面,不會存在從這個頁面切換到下一個頁面的情況,即每個模組只有一個頁面,這種情況使用fragment就能實現。
參考吉利、領克車型,每個模組會有很多個頁面,這個就與我們的需求類似。
參考了手機APP,比如支付寶中巢狀了很多第三方應該,跳轉會有一個類似loading的頁面後才會跳轉到第三方應用,而且支付寶與第三方應用沒有共同佈局,即類似於我們需求的左側統一導航欄,查詢資料用的可能是外掛化技術,故不滿足我們的需求。
請教了同行,同行給出了兩個解決思路,也即上述的兩種方案思路,故按照這兩種思路進行了實踐有了上述的總結。
相關文章
- django中多個app的路由實現DjangoAPP路由
- rsscombine:將多個RSS源合併為一個源
- 多個commit合併成一個MIT
- 如何實現一個手帳 AppAPP
- 如何開發一個免費的app?APP
- 多個excel檔案合併成一個excel表的方法 如何快速合併多個excel檔案Excel
- webpack + Vue + Hbuilder 打包成App,混合app開發,一個人搞定WebVueUIAPP
- app開發的幾個步驟APP
- PhoneGap Hybrid APP 開發實戰(1):第一個 Android APKAPPAndroidAPK
- 如何快速開發一個鴻蒙原生app鴻蒙APP
- 同app下多個react-native jsBundle的解決方案APPReactJS
- 用Flutter實現一個小說閱讀AppFlutterAPP
- 混合開發實戰:App里拉起一個小程式(IOS篇)APPiOS
- 一種app模組化實現方案APP
- 遊戲陪玩app開發,前端實現一個輪詢需要如何做?遊戲APP前端
- python多個txt合併Python
- 如何把多個pdf合併成一個pdf文件?
- Flutter Scheme 使用(瀏覽器開啟App,App內開啟另一個App)FlutterScheme瀏覽器APP
- 微信配置Universal Link解決方案支援多個appAPP
- 如何使用Flutter+Dart開發一個Android APPFlutterDartAndroidAPP
- 多個excel檔案合併到一個檔案中的多個sheet表中Excel
- MySQL-17-mysql alter 語句如何實現?如何合併為一個MySql
- 教育APP開發_教育培訓APP開發解決方案APP
- 一個基於 React 開發的PC端音樂AppReactAPP
- 直播賣貨APP開發多場景開發解決方案APP
- 多個 EXCEL 檔案如何合併成一個檔案Excel
- Redcord 一個可以實時定位Ta的AppAPP
- python合併多個csv檔案需要注意的問題(合併多個列名問題)Python
- 開發一個題庫系統App和小程式的心得APP
- 通過Guava實現兩個包含不同物件的List合併成一個ListGuava物件
- StudyFlutter——我的第一個APPFlutterAPP
- 生活服務app開發的三個問題APP
- 【從零開始擼一個App】PKCEAPP
- 【從零開始擼一個App】KotlinAPPKotlin
- 物流APP開發解決方案APP
- K8S 實用工具之一 - 如何合併多個 kubeconfig?K8S
- 教育類app開發的解決方案APP
- APP開發帶來的五個能看到的效果:APP