在項目開發中,須要將h5頁面打包成app,這個時候咱們可使用cordova來打包。在官方文檔中,咱們能夠了解到建立一個app十分簡單,你的電腦上有nodejs就行,咱們能夠跟着官方文檔一步一步來,添加安卓平臺和ios平臺。整個項目結構搭建完畢後,咱們能夠將咱們須要打包的webapp頁面所有塞到這個項目結構中。接下來就是麻煩的地方了,如何進行平臺開發,也就是如何將咱們的項目打包成一個可安裝的文件。html
一:設置環境變量:vue
JAVA_HOME
環境變量,指定爲JDK安裝路徑ANDROID_HOME
環境變量,指定爲Android SDK安裝路徑tools
和platform-tools
目錄到你的PATH
這裏須要注意的是設置ANDROID_HOME
環境變量,咱們能夠將android studio安裝到咱們的電腦中,在安裝過程當中android studio會自動將Android SDK安裝到咱們的電腦裏,這個時候記住這個地址就好了,如圖(下面那一行的路徑就是Android SDK):node
二:報這種錯誤的時候:Error:Minimum supported Gradle version is xxxx. Current version is xxxx.android
當時我在打包的時候報這鐘錯誤,在網上查到了緣由,是由於android studio更新了Gradle的版本,這個時候解決的步驟以下:ios
1:打開android studio,找到setting,搜索gradle,如圖進行設置(具體路徑各異):web
三:Windows cordova build Error: Could not find gradle wrapper within Android SDK. Might need to updatenpm
解決辦法:windows
四:安裝cordova-plugin-splashscreen報錯:app
這個時候可能的緣由是你已經打包過apk文件了,你須要將apk文件刪除,而後再安裝。框架
五:打包vue項目時遇到的問題
1:使用npm run build打包到哪?
如圖,Qianne是我vue項目的名稱,我在這個文件夾打開了dos窗口,而後建立一個app框架,名爲myApp1。而後我將config裏index.js中修改:
index: path.resolve(__dirname, '../myApp1/www/index.html'),
assetsRoot: path.resolve(__dirname, '../myApp1/www'),
assetsSubDirectory: 'static',
assetsPublicPath: './',
這裏的路徑直接指向了myApp1下www文件夾。而後咱們在vue項目中運行npm run build。這個時候咱們就把打包後的文件直接放在了myApp1下www文件夾。此時咱們還要將
cordova.js和cordova_plugins.js文件放進www文件夾中,與index.html同級。(記住此時會覆蓋index.html,咱們要將index.html中引用cordova.js的那句代碼複製到打包後的index.html中)。
2:直接打開打包後的index.html,路由竟然沒做用?
個人解決辦法:
找到vue項目中的main.js,將其中路由的代碼的mode改成「hash」,我以前是「history」因此路由一直沒用
const router = new VueRouter({ mode: 'hash', routes })
以後咱們再打包一次,若是打包後的index.html打開後路由正常,那麼恭喜你。這個時候咱們在myApp1下進入dos窗口,輸入cordova build android,打包成apk文件。
六:app的logo啓動頁面應該放在哪裏?
在項目結構中, 咱們須要安裝splashscreen插件:
cordova plugin add cordova-plugin-splashscreen
咱們在config.xml中插入如下代碼:
<platform name="android"> <allow-intent href="market:*" /> <icon density="ldpi" src="./res/icon/android/mipmap-ldpi/icon.png" /> <icon density="mdpi" src="./res/icon/android/mipmap-mdpi/icon.png" /> <icon density="hdpi" src="./res/icon/android/mipmap-hdpi/icon.png" /> <icon density="xhdpi" src="./res/icon/android/mipmap-xhdpi/icon.png" /> <!-- 如下是歡迎頁面,可根據須要進行添加 --> <splash density="land-hdpi" src="./res/screen/android/drawable-land-hdpi/screen.png" /> <splash density="land-ldpi" src="./res/screen/android/drawable-land-ldpi/screen.png" /> <splash density="land-mdpi" src="./res/screen/android/drawable-land-mdpi/screen.png" /> <splash density="land-xhdpi" src="./res/screen/android/drawable-land-xhdpi/screen.png" /> <splash density="port-hdpi" src="./res/screen/android/drawable-port-hdpi/screen.png" /> <splash density="port-ldpi" src="./res/screen/android/drawable-port-ldpi/screen.png" /> <splash density="port-mdpi" src="./res/screen/android/drawable-port-mdpi/screen.png" /> <splash density="port-xhdpi" src="./res/screen/android/drawable-port-xhdpi/screen.png" /> </platform> <platform name="ios"> <!-- iOS 8.0+ --> <!-- iPhone 6 Plus --> <icon src="./res/icon/ios/icon-60@3x.png" width="180" height="180" /> <!-- iOS 7.0+ --> <!-- iPhone / iPod Touch --> <icon src="./res/icon/ios/icon-60.png" width="60" height="60" /> <icon src="./res/icon/ios/icon-60@2x.png" width="120" height="120" /> <!-- iPad --> <icon src="./res/icon/ios/icon-76.png" width="76" height="76" /> <icon src="./res/icon/ios/icon-76@2x.png" width="152" height="152" /> <!-- iOS 6.1 --> <!-- Spotlight Icon --> <icon src="./res/icon/ios/icon-40.png" width="40" height="40" /> <icon src="./res/icon/ios/icon-40@2x.png" width="80" height="80" /> <!-- iPhone / iPod Touch --> <icon src="./res/icon/ios/icon.png" width="57" height="57" /> <icon src="./res/icon/ios/icon@2x.png" width="114" height="114" /> <!-- iPad --> <icon src="./res/icon/ios/icon-72.png" width="72" height="72" /> <icon src="./res/icon/ios/icon-72@2x.png" width="144" height="144" /> <!-- iPhone Spotlight and Settings Icon --> <icon src="./res/icon/ios/icon-small.png" width="29" height="29" /> <icon src="./res/icon/ios/icon-small@2x.png" width="58" height="58" /> <!-- iPad Spotlight and Settings Icon --> <icon src="./res/icon/ios/icon-50.png" width="50" height="50" /> <icon src="./res/icon/ios/icon-50@2x.png" width="100" height="100" /> <!-- 如下是歡迎頁面,可根據須要進行添加 --> <splash src="./res/screen/ios/Default~iphone.png" width="320" height="480"/> <splash src="./res/screen/ios/Default@2x~iphone.png" width="640" height="960"/> <splash src="./res/screen/ios/Default-Portrait~ipad.png" width="768" height="1024"/> <splash src="./res/screen/ios/Default-Portrait@2x~ipad.png" width="1536" height="2048"/> <splash src="./res/screen/ios/Default-Landscape~ipad.png" width="1024" height="768"/> <splash src="./res/screen/ios/Default-Landscape@2x~ipad.png" width="2048" height="1536"/> <splash src="./res/screen/ios/Default-568h@2x~iphone.png" width="640" height="1136"/> <splash src="./res/screen/ios/Default-667h.png" width="750" height="1334"/> <splash src="./res/screen/ios/Default-736h.png" width="1242" height="2208"/> <splash src="./res/screen/ios/Default-Landscape-736h.png" width="2208" height="1242"/> </platform>
一樣的,咱們要在res文件夾下的對應文件夾中放入相應的logo或者圖片.