vue+cordova 調用攝像頭並對vue項目進行打包

參考文章:https://blog.csdn.net/u011042316/article/details/83828371

                 https://segmentfault.com/a/1190000014101362

 

一、建立vue項目和cordova項目步驟略過....

---------------------以下修改的都是vue項目--------------------------------

二、使用最簡單的方法調用相機接口 (HelloCordova.vue)

<template>
  <div>
    <button id="btn1" @click='takePic'>點擊拍照</button>
    <button id="btn2">從相冊中獲取</button>
    <img style="display:block;width:100%;" id="image">
  </div>
</template>

<script>
export default {
  data: function (){
    return {
    }
    
  },
  
  methods: {
      takePic() {
        navigator.camera.getPicture(success,error,{});

        function success(fileurl) {
            var image=document.getElementById("image")
            image.src=fileurl;
        }
        function error() {
        }
    }
  },
};
</script>

這裏面省略的很多配置,如getPicture裏面的option參數都未配置,詳細可見官網https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-camera/index.html

三、main.js文件裏面主要就是這一段:添加deviceready事件監聽,當cordova設備準備完成後再new vue

document.addEventListener('deviceready', function() {
  new Vue({
    el: '#app',
    router,
    render: h => h(App),
  })
 
}, false);

四、index.html裏面修改爲,主要是添加幾行meta信息和cordova.js:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;">
    <meta name="format-detection" content="telephone=no">
    <meta name="msapplication-tap-highlight" content="no">
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
  </head>
  <body>
    <script type="text/javascript" src="cordova.js"></script>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

五、修改config/index.js文件:

我跟參考的文件不一樣,我沒有修改生成文件的路徑,只修改了assetsSubDirectory和assetsPublicPath:,最後是通過拷貝的方式覆蓋cordova項目的www文件的

build: {
    // Template for index.html
    index: path.resolve(__dirname, '../dist/index.html'),

    // Paths
    assetsRoot: path.resolve(__dirname, '../dist'),
    assetsSubDirectory: '',
    assetsPublicPath: '',
    proxyTable: {
      '/api': {
        target: 'http://10.70.61.83:8093',
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    },

-----------------------------------以上結束vuei項目修改-------------------------------

 執行vue項目的編譯命令npm run build。 在根目錄下生成dist文件夾,將所有文件複製到cordova的www文件夾下。

-----------------------------------以下修改cordova項目---------------------------------

 

一、使用cordova plugin add cordova-plugin-camera 添加相機插件,可用cordova plugin ls檢查

二、使用cordova build android對項目進行打包

-----------------------------------結束對cordova項目操作----------------------------

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章