ionic開發遇到的坑及總結
前言
ionic是一個用來開發混合手機應用的,開源的,免費的代碼庫。可以優化html、css和js的性能,構建高效的應用程序,而且還可以用於構建Sass和AngularJS的優化。ionic會是一個可以信賴的框架。到目前為止,ionic已經推出了ionic3,已解決了這個行業的大部分痛點,性能也得到了大幅度提升,但是這個坑。。。。。。,相信用過的人都知道。。。。。。
androud-studio打開後一直在編譯
出現這種出現這種情況,關掉你的as ,找到你的路徑下:C:\Users\cxz\.gradle下面有個gradle文件夾,去網上找一個和這個版本對應gradle包,下載下來是一個zip,然後放到這個當前目錄(不用解壓),同時把原來的刪除,然後啟動as,打開後那個zip包會自動解壓
ionic無法初始化項目
科學上網(掛vpn、代理、改hosts文件)
通常卡住的地方都是在最好一步安裝node模塊的時候,執行到卡住的地方,強制結束命令,在cd切換進入項目目錄,執行npm install –save 或者 cnpm install –sav
註:建議最好少用cnpm ,最好通過npm的方式安裝,等的時間長點也無所謂,ionic用cnpm你會發現坑多的。。。。
ionic添加平臺失敗
通常情況下,添加失敗是環境沒配好,如果這裏提示gradle或者android的錯誤,那麽請把gradle包的路徑加入到系統環境變量中
ionic編譯不成功或者編譯成功生成失敗
打算如果沒問題,刪除你編譯的平臺,重新生成平臺,生成平臺時請執行: npm install platform add android@latese
ionic編譯不通過之gradle
檢查android環境,java環境,沒問題的情況下,在命令行輸入gradle -v ,看看有沒有反應,沒反應把gradle加入環境變量就可以了
ionic編譯不通過之編碼
項目路徑不能包含中文,路徑包含中文,會導致項目打包失敗
ionic真機調試失敗
檢查端口,可能有程序占用了adb.exe 的端口(通常情況下,一些第三方軟件會占用這個端口,如 360mobile 豌豆莢這類軟件)
把adb加入到系統變量
在cmd 裏輸入adb 看有沒有反應,如果報錯,則android環境沒配好
ionic插件無法安裝
安裝ionic插件的時候,很多插件無法安裝,可以從github上面下載zip文件,如果你熟悉git命令,你可以直接復制鏈接拉取文件,如果你不熟悉,可以點擊下載zip文件,下載到本地後本地安裝這個插件。
Ionic cordova plugin add 插件本地路徑
這個路徑最好是相對路徑,我不知道為什麽每次絕對路徑安裝都失敗
ionic androud App 卡頓
可以安裝crosswalk ,這個插件可以讓你的android App性能更好,對App系統的向下支持也有幫助
安裝命令:cordova plugin add cordova-plugin-crosswalk-webview
安裝後,編譯的文件會生成兩種,根據需要選擇對應的安裝類型
安裝crosswalk插件報錯Could not find any version that matches com.android.support:support-v4:[13.0.0,).
ionic打包後頁面布局混亂
我們一般開發在瀏覽器調試選的都是ios的設備,然後打安卓包,ionic的androud和ios的風格不一樣,所有你需要統一風格
另外一種情況就是,你布局不標準,比如在p標簽裏面嵌套div,在sapn裏面嵌套p,這種也會導致打包後布局混亂
ionic插件安裝後不生效
請刪除編譯的平臺,重新生成你需要的平臺(極光推送需要重新生成平臺)
Ionic執行ionic resources報錯
登錄ionic官網,註冊一個賬號,登錄進去
在你的項目下執行這個命令,和官網的項目關聯,然後在執行ionic resources
ionic啟動慢的問題
請參考這篇文章:http://www.jianshu.com/p/102bd23625cb
ionic帶有背景圖片的頁面往上頂
頁面背景沒有圖片頂上去也看不出來,如果有圖片,背景設置成,background-size:cover;
ionic彈出鍵盤把tabs頂上去
可以監聽鍵盤事件打開還是關閉,然後隱藏tabs
can not find module xxxxxxx
沒下載xxxxxx模塊,請執行npm install xxxxxxx
No providers in xxxxxxx
沒添加服務,請把服務添加到app-module裏面的providers裏面
在某些元素上無法添加點擊事件或者點擊延遲
在該點擊元素上 添加 tappable
Ionic圖片資源加載不到
路徑統一寫成 assets/xxxx/xxxxx/xxx, 這樣在瀏覽器或者在app裏面都能加載
在子頁面點擊跳轉到另外的子頁面(不點擊tab的情況下)
從0開始,這裏是調到第二個頁面
Ionic引入第三方js庫(以jq為例)
在index.html裏面引入jq
在聲明這個$對象就可以使用jq了
ionic註冊地圖服務秘鑰,輸入正式版android簽名SHA1碼後始終顯示不正確
例:keytool -genkey -v -keystore test-release.keystore -alias test-release -keyalg RSA -validity 10000
生成的正式版的簽名的名字要一定要帶上-release,否則正式版簽名的SHA1值,百度地圖和高德地圖無法識別,會報錯,這個坑我躺了好久。。。。
ionic開發遇到的坑及總結