Cordova結(jié)合Vue學(xué)習(xí)Camera

簡單聊兩句

學(xué)習(xí)Vue+Cordova打包編譯App,首先你要安裝Cordova與vue药有,在這里本人就不說明了,自行看文檔與搜索相關(guān)資料。

Cordova中文官網(wǎng)地址

Vue中文官網(wǎng)地址


第一步:首先在vue代碼中加入cordova-plugin-camera的調(diào)用方法

navigator.camera.getPicture是調(diào)用camera的方法桩撮,他會(huì)附帶三個(gè)參數(shù),cameraSuccess是提供圖像數(shù)據(jù)的回調(diào)函數(shù)峰弹。店量,cameraError是提供錯(cuò)誤消息的回調(diào)函數(shù),CameraOptions是可選參數(shù)來自定義相機(jī)設(shè)置參數(shù)(對象類型)鞠呈。

 methods: {
    //顯示選擇框事件
    selectcamera: function() {
      return this.sheetVisible=true;
    },
    //調(diào)用拍照
    camera:function(){
      //拍照設(shè)置參數(shù)
      var cameraOptions={
        quality: 50,
        sourceType:1,
        destinationType: Camera.DestinationType.FILE_URI, 
      };
      //此處是官網(wǎng)提供的調(diào)用方法
      navigator.camera.getPicture(this.cameraSuccess, this.cameraError, cameraOptions);
    },
    //調(diào)用相冊
    photo:function(){
      //拍照設(shè)置參數(shù)
      var cameraOptions={
        quality: 50,
        sourceType:0,
        destinationType: Camera.DestinationType.FILE_URI, 
      };
      navigator.camera.getPicture(this.cameraSuccess, this.cameraError, cameraOptions);
    },
    //調(diào)取成功觸發(fā)事件
    cameraSuccess:function(imageData){
      return this.image=imageData;
    },
    //調(diào)取失敗觸發(fā)事件
    cameraError:function(message){
      alert(message);
    },
  },

上面的代碼是整個(gè)調(diào)用的過程融师,注意下圖是自定義相機(jī)設(shè)置參數(shù)的詳細(xì)屬性鍵值對說明

var cameraOptions = {
      //這些參數(shù)可能要配合使用,如選擇了sourcetype是0蚁吝,destinationtype要相應(yīng)的設(shè)置為1:【返回文件的URI(content://media/external/images/media/2 for Android)】
      quality: 50,                                            //相片質(zhì)量0-100
      destinationType: Camera.DestinationType.FILE_URI,       //返回類型:DATA_URL= 0旱爆,返回作為 base64 編碼字串舀射。 FILE_URI=1,返回影像檔的 URI怀伦。NATIVE_URI=2后控,返回圖像本機(jī)URI 
      sourceType: Camera.PictureSourceType.CAMERA,            //從哪里選擇圖片:PHOTOLIBRARY=0(從設(shè)備相冊選擇圖片),相機(jī)拍照=1,SAVEDPHOTOALBUM=2,0和1其實(shí)都是本地圖庫
      allowEdit: true,                                        //在選擇之前允許修改截圖
      encodingType:Camera.EncodingType.JPEG,                  //保存的圖片格式: JPEG = 0, PNG = 1
      targetWidth: 200,                                     //照片寬度
      targetHeight: 200,                                    //照片高度
      mediaType:0,                                            //可選媒體類型:圖片=0,默認(rèn)值,只允許選擇圖片將返回指定DestinationType的參數(shù)。 視頻格式=1空镜,允許選擇視頻浩淘,最終返回 FILE_URI(網(wǎng)址)。ALLMEDIA= 2吴攒,允許所有媒體類型的選擇张抄。
      cameraDirection:0,                                      //選擇攝像頭類型(前置攝像頭或者后面的攝像頭):Back= 0(后置),Front-facing = 1(前置)
      popoverOptions: CameraPopoverOptions,                   //CameraPopoverOptions,iOS特供,從iPad的系統(tǒng)相冊選擇圖片,指定popover的定位元素的位置箭頭方向和參數(shù)
      saveToPhotoAlbum: true                                  //保存進(jìn)手機(jī)相冊
  };

第二步 使用Vue打包到Cordova生成的項(xiàng)目中

首先你要改vue項(xiàng)目中config/index.js,修改其中的build打包模塊洼怔,設(shè)置成打包到cordova生成的項(xiàng)目目錄中的www文件署惯,仿照下圖設(shè)置,即可镣隶。

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

    // Paths
    assetsRoot: path.resolve(__dirname, '../../my_app1/www'),
    assetsSubDirectory: '',
    assetsPublicPath: '',

    /**
     * SourceMap
    */
    productionSourceMap: false,
    // https://webpack.js.org/configuration/devtool/#production
    devtool: '#source-map',
    
    // Gzip off by default as many popular static hosts such as
    // Surge or Netlify already gzip all static assets for you.
    // Before setting to `true`, make sure to:
    // npm install --save-dev compression-webpack-plugin
    productionGzip: false,
    productionGzipExtensions: ['js', 'css'],
    
    // Run the build command with an extra argument to
    // View the bundle analyzer report after build finishes:
    // `npm run build --report`
    // Set to `true` or `false` to always turn it on or off
    bundleAnalyzerReport: process.env.npm_config_report
  }
}

第三步 使用Cordova安裝cordova-plugin-camera插件與添加安卓平臺(tái),

進(jìn)入Cordova項(xiàng)目中依次執(zhí)行

cordova plugin cordova-plugin-camera

cordova platform add android@6.2.0

注意:這里為什么要添加安卓平臺(tái)6.2.0呢极谊,因?yàn)槟壳癱ordova-plugin-camera插件需要的安卓平臺(tái)是小與6.3.0的,而你默認(rèn)的添加的就是6.3.0安岂。


第四步 使用Android studio 進(jìn)行真機(jī)調(diào)試即可

這里就不具體寫詳細(xì)步驟了轻猖,這里會(huì)發(fā)現(xiàn)一個(gè)問題,再無任何報(bào)錯(cuò)的且代碼都正常的時(shí)候域那,無法調(diào)用cordova-plugin-camera咙边,

解決辦法,要在vue項(xiàng)目中index.html中添加一個(gè)js次员,然后再重復(fù)上面步驟败许,應(yīng)該就會(huì)解決此問題

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name=viewport content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,minimal-ui">
  <title>vueapp2</title>
</head>
 <script src="cordova.js"></script>
<body>
  <div id="app">
  </div>
  <!-- built files will be auto injected -->
</body>

</html>

結(jié)束語:上述中如有問題,請大家聯(lián)系我更正淑蔚,更希望大家與我交流市殷,共同學(xué)習(xí)。學(xué)習(xí)敏捷開發(fā)的朋友刹衫,不要害怕遇見問題醋寝,嘗試著去解決它,我們一起加油P髅谩I稹!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末邮旷,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蝇摸,更是在濱河造成了極大的恐慌婶肩,老刑警劉巖办陷,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異律歼,居然都是意外死亡民镜,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進(jìn)店門险毁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來制圈,“玉大人,你說我怎么就攤上這事畔况【校” “怎么了?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵跷跪,是天一觀的道長馋嗜。 經(jīng)常有香客問我,道長吵瞻,這世上最難降的妖魔是什么葛菇? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮橡羞,結(jié)果婚禮上眯停,老公的妹妹穿的比我還像新娘。我一直安慰自己卿泽,他們只是感情好庵朝,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著又厉,像睡著了一般九府。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上覆致,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天侄旬,我揣著相機(jī)與錄音,去河邊找鬼煌妈。 笑死儡羔,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的璧诵。 我是一名探鬼主播汰蜘,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼之宿!你這毒婦竟也來了族操?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎色难,沒想到半個(gè)月后泼舱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡枷莉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年娇昙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片笤妙。...
    茶點(diǎn)故事閱讀 39,773評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冒掌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蹲盘,到底是詐尸還是另有隱情股毫,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布辜限,位于F島的核電站皇拣,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏薄嫡。R本人自食惡果不足惜氧急,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望毫深。 院中可真熱鬧吩坝,春花似錦、人聲如沸哑蔫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽闸迷。三九已至嵌纲,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間腥沽,已是汗流浹背逮走。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留今阳,地道東北人师溅。 一個(gè)月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像盾舌,于是被迫代替她去往敵國和親墓臭。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,095評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理妖谴,服務(wù)發(fā)現(xiàn)窿锉,斷路器,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • 前言:用cordova開發(fā)hybrid app的過程中,由于是html5開發(fā)的app榆综,在手機(jī)上很多權(quán)限受限制...
    京東內(nèi)部優(yōu)惠券閱讀 5,371評論 5 65
  • 寫在前面(2017-11-03):現(xiàn)在在做Python研發(fā)妙痹,cordova早已忘卻铸史,尤其是技術(shù)細(xì)節(jié)鼻疮,大家問我我也不...
    DoraLvor閱讀 19,841評論 8 11
  • 也不知道自己寫的是什么…這是想到啥寫啥… 第一次感覺有很多不同的思想植入, 想問題變得立體很多琳轿, 這的確是前所未有...
    LLLiberty閱讀 213評論 0 0