在項(xiàng)目開發(fā)中,需要將h5頁面打包成app,這個(gè)時(shí)候我們可以使用cordova來打包。在官方文檔中,我們可以了解到創(chuàng)建一個(gè)app十分簡單,你的電腦上有nodejs就行,我們可以跟著官方文檔一步一步來,添加安卓平臺和ios平臺。整個(gè)項(xiàng)目結(jié)構(gòu)搭建完畢后,我們可以將我們需要打包的webapp頁面全部塞到這個(gè)項(xiàng)目結(jié)構(gòu)中。接下來就是麻煩的地方了,如何進(jìn)行平臺開發(fā),也就是如何將我們的項(xiàng)目打包成一個(gè)可安裝的文件。
一:設(shè)置環(huán)境變量:
1.設(shè)置JAVA_HOME環(huán)境變量,指定為JDK安裝路徑
2.設(shè)置ANDROID_HOME環(huán)境變量,指定為Android SDK安裝路徑
3.同時(shí)也要添加Android SDK的tools和platform-tools目錄到你的PATH
這里需要注意的是設(shè)置ANDROID_HOME環(huán)境變量,我們可以將android studio安裝到我們的電腦中,在安裝過程中android studio會自動將Android SDK安裝到我們的電腦里,這個(gè)時(shí)候記住這個(gè)地址就行了,如圖(下面那一行的路徑就是Android SDK):
二:報(bào)這種錯(cuò)誤的時(shí)候:Error:Minimum supported Gradle version is xxxx. Current version is xxxx.
當(dāng)時(shí)我在打包的時(shí)候報(bào)這鐘錯(cuò)誤,在網(wǎng)上查到了原因,是因?yàn)閍ndroid studio更新了Gradle的版本,這個(gè)時(shí)候解決的步驟如下:
1:打開android studio,找到setting,搜索gradle,如圖進(jìn)行設(shè)置(具體路徑各異):
三:Windows cordova build Error: Could not find gradle wrapper within Android SDK. Might need to update
解決辦法:
四:安裝cordova-plugin-splashscreen報(bào)錯(cuò):
這個(gè)時(shí)候可能的原因是你已經(jīng)打包過apk文件了,你需要將apk文件刪除,然后再安裝。
五:打包vue項(xiàng)目時(shí)遇到的問題
1:使用npm run build打包到哪?
如圖,Qianne是我vue項(xiàng)目的名稱,我在這個(gè)文件夾打開了dos窗口,然后創(chuàng)建一個(gè)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項(xiàng)目中運(yùn)行npm run build。這個(gè)時(shí)候我們就把打包后的文件直接放在了myApp1下www文件夾。此時(shí)我們還要將
cordova.js和cordova_plugins.js文件放進(jìn)www文件夾中,與index.html同級。(記住此時(shí)會覆蓋index.html,我們要將index.html中引用cordova.js的那句代碼復(fù)制到打包后的index.html中)。
2:直接打開打包后的index.html,路由居然沒作用?
我的解決辦法:
找到vue項(xiàng)目中的main.js,將其中路由的代碼的mode改為“hash”,我之前是“history”所以路由一直沒用
const router = new VueRouter({ mode: 'hash', routes })
之后我們再打包一次,如果打包后的index.html打開后路由正常,那么恭喜你。這個(gè)時(shí)候我們在myApp1下進(jìn)入dos窗口,輸入cordova build android,打包成apk文件。
六:app的logo啟動頁面應(yīng)該放在哪里?
在項(xiàng)目結(jié)構(gòu)中, 我們需要安裝splashscreen插件:
cordova plugin add cordova-plugin-splashscreen
我們在config.xml中插入以下代碼:
<platform name="android"> <allow-intent href="market:*" rel="external nofollow" /> <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" /> <!-- 以下是歡迎頁面,可根據(jù)需要進(jìn)行添加 --> <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" /> <!-- 以下是歡迎頁面,可根據(jù)需要進(jìn)行添加 --> <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文件夾下的對應(yīng)文件夾中放入相應(yīng)的logo或者圖片.
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com