- Ionic 基礎教程
- Ionic - 首頁
- Ionic - 概述
- Ionic - 環境設定
- Ionic CSS 元件
- Ionic - 顏色
- Ionic - 內容
- Ionic - 頁首
- Ionic - 頁尾
- Ionic - 按鈕
- Ionic - 列表
- Ionic - 卡片
- Ionic - 表單
- Ionic - 開關
- Ionic - 複選框
- Ionic - 單選按鈕
- Ionic - 範圍選擇器
- Ionic - 選擇器
- Ionic - 標籤頁
- Ionic - 網格
- Ionic - 圖示
- Ionic - 內邊距
- Ionic Javascript 元件
- Ionic - JS 動作面板
- Ionic - JS 背景
- Ionic - JS 內容
- Ionic - JS 表單
- Ionic - JS 事件
- Ionic - JS 頁首
- Ionic - JS 頁尾
- Ionic - JS 鍵盤
- Ionic - JS 列表
- Ionic - JS 載入
- Ionic - JS 模態框
- Ionic - JS 導航
- Ionic - JS 彈出框
- Ionic - JS 彈窗
- Ionic - JS 滾動
- Ionic - JS 側邊選單
- Ionic - JS 滑塊
- Ionic - JS 標籤頁
- Ionic 高階概念
- Ionic - Cordova 整合
- Ionic - AdMob
- Ionic - 攝像頭
- Ionic - Facebook
- Ionic - 應用內瀏覽器
- Ionic - 原生音訊
- Ionic - 定位
- Ionic - 媒體
- Ionic - 閃屏
- Ionic 有用資源
- Ionic - 快速指南
- Ionic - 有用資源
- Ionic - 討論
Ionic - Cordova 攝像頭
Cordova 攝像頭外掛使用**原生攝像頭**拍照或從圖片庫獲取圖片。
使用攝像頭
在命令提示符中開啟專案根資料夾,然後使用以下命令下載並安裝 Cordova 攝像頭外掛。
C:\Users\Username\Desktop\MyApp> cordova plugin add org.apache.cordova.camera
現在,我們將建立一個用於使用攝像頭外掛的服務。我們將使用**AngularJS 工廠**和需要注入到工廠中的 promise 物件**$q**。
services.js 程式碼
.factory('Camera', function($q) {
return {
getPicture: function(options) {
var q = $q.defer();
navigator.camera.getPicture(function(result) {
q.resolve(result);
}, function(err) {
q.reject(err);
}, options);
return q.promise;
}
}
});
要在應用程式中使用此服務,我們需要將其作為依賴項注入控制器。Cordova 攝像頭 API 提供了**getPicture**方法,該方法用於使用原生攝像頭拍照。
可以透過將**options**引數傳遞給**takePicture**函式來進一步自定義原生攝像頭設定。將上述程式碼示例複製到您的控制器以觸發此行為。它將開啟相機應用程式並返回帶有影像資料的成功回撥函式或帶有錯誤訊息的錯誤回撥函式。我們還需要兩個按鈕來呼叫我們將要建立的函式,並且我們需要在螢幕上顯示影像。
HTML 程式碼
<button class = "button" ng-click = "takePicture()">Take Picture</button>
<button class = "button" ng-click = "getPicture()">Open Gallery</button>
<img ng-src = "{{user.picture}}">
控制器程式碼
.controller('MyCtrl', function($scope, Camera) {
$scope.takePicture = function (options) {
var options = {
quality : 75,
targetWidth: 200,
targetHeight: 200,
sourceType: 1
};
Camera.getPicture(options).then(function(imageData) {
$scope.picture = imageData;;
}, function(err) {
console.log(err);
});
};
})
輸出將如下面的螢幕截圖所示。
如果要使用相簿中的圖片,只需更改**options**引數中的**sourceType**方法即可。此更改將開啟一個對話方塊彈出視窗而不是攝像頭,並允許您從裝置中選擇所需的影像。
您可以看到以下程式碼,其中**sourceType**選項已更改為**0**。現在,當您點選第二個按鈕時,它將開啟裝置的檔案選單。
控制器程式碼
.controller('MyCtrl', function($scope, Camera) {
$scope.getPicture = function (options) {
var options = {
quality : 75,
targetWidth: 200,
targetHeight: 200,
sourceType: 0
};
Camera.getPicture(options).then(function(imageData) {
$scope.picture = imageData;;
}, function(err) {
console.log(err);
});
};
})
輸出將如下面的螢幕截圖所示。
儲存拍攝的影像後,它將顯示在螢幕上。您可以根據需要對其進行樣式設定。
還可以使用其他一些選項,其中一些在下面的表格中給出。
| 引數 | 型別 | 詳情 |
|---|---|---|
| quality | 數字 | 影像質量,範圍 0-100 |
| destinationType | 數字 | 影像格式。 |
| sourceType | 數字 | 用於設定圖片的來源。 |
| allowEdit | 布林值 | 用於允許編輯影像。 |
| encodingType | 數字 | 值為 0 設定 JPEG,值為 1 設定 PNG。 |
| targetWidth | 數字 | 用於縮放影像寬度。 |
| targetHeight | 數字 | 用於縮放影像高度。 |
| mediaType | 字串 | 用於設定媒體型別。 |
| cameraDirection | 數字 | 值為 0 設定後置攝像頭,值為 1 設定前置攝像頭。 |
| popoverOptions | 字串 | 僅限 iOS 的選項,用於指定 iPad 中的彈出視窗位置。 |
| saveToPhotoAlbum | 布林值 | 用於將影像儲存到照片庫。 |
| correctOrientation | 布林值 | 用於校正捕獲影像的方向。 |
廣告