cordova打包webapp

cordova打包webapp

在項目開發中,須要將h5頁面打包成app,這個時候咱們可使用cordova來打包。在官方文檔中,咱們能夠了解到建立一個app十分簡單,你的電腦上有nodejs就行,咱們能夠跟着官方文檔一步一步來,添加安卓平臺和ios平臺。整個項目結構搭建完畢後,咱們能夠將咱們須要打包的webapp頁面所有塞到這個項目結構中。接下來就是麻煩的地方了,如何進行平臺開發,也就是如何將咱們的項目打包成一個可安裝的文件。html

一:設置環境變量:vue

  1. 設置JAVA_HOME環境變量,指定爲JDK安裝路徑
  2. 設置ANDROID_HOME環境變量,指定爲Android SDK安裝路徑
  3. 同時也要添加Android SDK的toolsplatform-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或者圖片.

相關文章
相關標籤/搜索