FNPhotograph 模塊的使用

簡介

APICloud 拍照模塊

https://docs.apicloud.com/Client-API/Func-Ext/FNPhotograph

正如文檔所說,有2種拍照的方案。

(1) 通過 open 接口打開一個自帶 UI 的拍照視圖…
(2) 開發者可通過 openCameraView 接口打開一個純視頻界面的 frame

下面分開進行介紹

方式1

自帶拍照界面,使用方便,流暢。

      var FNPhotograph = api.require('FNPhotograph');
      
      FNPhotograph.open({
          path: 'fs://savePath',
          album: false ,
          quality: 'medium'    //          quality: 'low'
      }, function(ret){
        if (ret.eventType == "show") {
        } else if (ret.eventType == "takePhoto") {
          alert(ret.imagePath);
          FNPhotograph.close();
        } else if (ret.eventType == "close") {
          alert("close");          
        } else {
          alert(JSON.stringify(ret));
        }
    });

備註:有時候機型性能不太好,打開攝像頭可能得等一段時間。

方式2

適合自定義界面的需求,比如:不想要選擇系統相冊圖片的功能。

    // 拍照
    var FNPhotograph = api.require('FNPhotograph');

    FNPhotograph.openCameraView({
      rect: {
        x: 0,
        y: 0,
        w: 'auto',
        h: api.winHeight - 100
      },
      orientation: 'landscapeRight',
      fixedOn: api.frameName
    }, function(ret) {
      if (!ret.status) {
        alert('相機打開失敗,請確認已經授權使用相機!');
      }
      // alert('openCameraView ret:'+JSON.stringify(ret));
    })

可以調整頁面的高度,在頁面底部放上一個拍照按鈕,通過點擊該按鈕,調用拍照功能,拍照成功後,自動關閉照相頁面。

      var FNPhotograph = api.require('FNPhotograph');

      FNPhotograph.takePhoto({
        quality: 'medium',
        path: examPhotoPath,
        album: false
      }, (ret) => {
        var imagePath = (ret.imagePath);
        FNPhotograph.closeCameraView((ret) => {
          if (ret) {
            alert("拍照成功!");
          }
        });
      });

如果app採用橫盤的方式進行拍攝,拍出的照片,會自動旋轉了90度。

【解決方法】簡單地,在顯示拍攝照片的地方,添加 css 樣式旋轉,糾正旋轉的照片

style="transform:rotate(-90deg); " 

總結

官方模塊文檔中的例子代碼,有些地方參數寫得不準,需要覈對文檔參數

拍照模塊調試起來比較麻煩,要多耐下性子進行調試

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