我想在我的phonegap
應用程序中拍照時顯示兩種信號源類型之前檢查相機是否存在。例如,iPad 1沒有相機,因此我不想顯示彈出框以從Camera
和My Photos
中選擇來源類型。在phonegap
中有沒有告訴我相機是否存在於此設備中?在ios phonegap中檢查相機是否存在
回答
你可以得到的UIDevice類設備型號字符串,並檢查該
應該能夠調用此代碼來檢查任何設備上的攝像頭的存在。
if (typeof navigator.camera !== "undefined") {
// We are safe to use the camera
} else {
// Bad news no camera
}
只是好奇,如果你試過這個,並且它是否適合你,謝謝 – user511530
不,它不適合我 – GauravSTomar
這不起作用,在Cordova 3.2和iPad 1 – silverchair
我已經嘗試使用的拍照HTML5的方式的時候做了這樣的事情:
if (typeof navigator.device !== 'undefined' && typeof navigator.device.capture !== 'undefined' && typeof navigator.device.capture.captureImage !== 'undefined') {
// Can take a picture
} else {
// No camera
}
請記住,如果你已經使用該解決方案或前一個在IOS模擬器,它會給你一個可靠的答案,模擬器似乎返回,它有一個相機,但無法模擬拍攝的圖片,並會返回一個錯誤20 ...
我不滿意if聲明,如果有人知道如何以更合乎邏輯的方式寫這個,請讓我知道,我的JS知識是有限的。
上測試,這不起作用,在Cordova 3.2和iPad 1上測試 – silverchair
我覺得這解釋得很好,如果你還沒有找到答案作爲尚未:http://docs.phonegap.com/en/1.4.1/phonegap_camera_camera.md.html#Camera
目前,似乎沒有要查詢相機的存在的一種方式。
這並不理想,但它可能是您的失敗保險箱。如果設備沒有攝像頭,則對getPicture的調用將落入失敗處理程序,該處理程序會返回一條消息。當相機不可用時,該消息是:「沒有相機可用」。所以你可以一次處理這個失敗,然後在用戶設置中堅持一些東西,你可以向前查詢。就像我說的,不理想。如果API可以報告這個特定的失敗,它也應該提供一種檢查存在的方法。
失敗:函數(消息){ 如果(消息==「沒有可用的相機」){// 保存這個地方所以下次我們不必依靠故障處理程序來告訴我們這個攝像頭沒有按'不存在 } }
我需要這樣做,所以我將它添加到我做的各種任務的插件中。目前只有iOS版本。
TomPhonegapUtility.h
#import <Foundation/Foundation.h>
#import <Cordova/CDV.h>
@interface TomPhonegapUtility : CDVPlugin
- (void) isCameraAvailable:(CDVInvokedUrlCommand*)command;
@end
TomPhonegapUtility.m
#import "TomPhonegapUtility.h"
#import <Cordova/CDV.h>
@implementation TomPhonegapUtility
- (void) isCameraAvailable:(CDVInvokedUrlCommand*)command {
CDVPluginResult *pluginResult = nil;
if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) {
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsInt:1];
} else {
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsInt:0];
}
[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
}
@end
TomPhonegapUtility.js
function TomPhoneGapUtility() {
this.isCameraAvailable = function(successCallback) {
cordova.exec(successCallback, function(){}, "TomPhonegapUtility", "isCameraAvailable", []);
}
}
如何使用
var util = new TomPhoneGapUtility();
util.isCameraAvailable(function(hasCamera) {
if (hasCamera) alert("YES");
else alert("NO");
});
- 1. iOS檢查相機是否被遮擋
- 2. 檢查記錄是否存在SQL PhoneGap
- 3. 定位iOS 6+時是否需要檢查相機是否存在?
- 4. 檢查產品是否存在iOS
- 5. 檢查JSON值是否存在 - iOS
- 6. 檢查是否存在相對URI
- 7. 在PHP中檢查URL是否存在
- 8. 檢查值是否存在
- 9. 檢查NSURLCredential是否存在
- 10. 檢查URL是否存在
- 11. 檢查param是否存在
- 12. 檢查是否存在location.hash
- 13. 檢查包是否存在
- 14. 檢查表是否存在
- 15. PHP - 檢查是否存在
- 16. 檢查源是否存在
- 17. 檢查@ variable.method是否存在?
- 18. 檢查行是否存在
- 19. 檢查是否存在Jsoup
- 20. 檢查是否存在
- 21. 檢查[i]是否存在
- 22. 檢查是否存在webservice
- 23. 檢查Cookie是否存在?
- 24. 檢查navigator.app.backHistory是否存在
- 25. 檢查是否存在Oracle.DataAccess
- 26. 檢查表是否存在
- 27. 檢查表是否存在
- 28. 檢查valueForKey是否存在
- 29. 檢查是否存在,是否存在,是否爲某個值
- 30. 檢查相機是否打開?
你有答案嗎? –
我已添加設備專用檢查{DEVICE_TYPE!=「ipad」} – GauravSTomar
我沒有收到..我怎麼知道它是ipad1或ipad2 –