2011-12-28 37 views
5

PhoneGap ile bir başlatıcı uygulaması oluşturmaya çalışıyorum. Ben bu hat üzerinde şaşırıp:Phonegap Hatası - "Android undefined özelliği 'yakalama' okunamıyor"

navigator.device.capture.captureAudio(onSuccess, onError, {limits:1, duration:5});

O iOS üzerinde çalışıyor ancak Android emülatörünüzde bu hatayı atar:

tanımsız

malı 'yakalama' okunamıyor İşte navigator nesne hatasının anda var

(bildirimi bu hataya neden olan hiçbir device mülkiyet yoktur)
{ 
    "language": "en-US", 
    "product": "Gecko", 
    "mimeTypes": { 
     "length": 0 
    }, 
    "appVersion": "5.0 (Linux; U; Android 4.0.3; en-us; sdk Build/MR1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30", 
    "plugins": { 
     "length": 0 
    }, 
    "onLine": true, 
    "connection": { 
     "type": 0 
    }, 
    "platform": "Linux armv7l", 
    "vendor": "Google Inc.", 
    "appCodeName": "Mozilla", 
    "geolocation": {}, 
    "cookieEnabled": true, 
    "appName": "Netscape", 
    "productSub": "20030107", 
    "userAgent": "Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; sdk Build/MR1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30", 
    "vendorSub": "" 
} 

Ve burada Phonegap.js yüklendikten hemen sonra PhoneGap nesne var

{ 
    "commandQueue": [], 
    "commandQueueFlushing": false, 
    "_constructors": [ 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null 
    ], 
    "documentEventHandler": {}, 
    "windowEventHandler": {}, 
    "resources": { 
     "base": true, 
     "debugconsole": true, 
     "position": true, 
     "acceleration": true, 
     "accelerometer": true, 
     "battery": true, 
     "camera": true, 
     "device": true, 
     "capture": true, 
     "contact": true, 
     "file": true, 
     "filetransfer": true, 
     "geolocation": true, 
     "compass": true, 
     "media": true, 
     "notification": true, 
     "orientation": true, 
     "sms": true, 
     "telephony": true, 
     "network": true, 
     "splashscreen": true 
    }, 
    "available": false, 
    "sessionKey": 0, 
    "callbackId": 0, 
    "callbacks": {}, 
    "callbackStatus": { 
     "NO_RESULT": 0, 
     "OK": 1, 
     "CLASS_NOT_FOUND_EXCEPTION": 2, 
     "ILLEGAL_ACCESS_EXCEPTION": 3, 
     "INSTANTIATION_EXCEPTION": 4, 
     "MALFORMED_URL_EXCEPTION": 5, 
     "IO_EXCEPTION": 6, 
     "INVALID_ACTION": 7, 
     "JSON_EXCEPTION": 8, 
     "ERROR": 9 
    }, 
    "mediaObjects": {} 
} 

Herhangi bir fikir nasıl bu geçmiş olsun (o device: true diyor dikkat edin)?

+0

sen [PhoneGap API] içinde sayfaya işaret Could (http://docs.phonegap.com/en/1.3.0/index.html) nerede 'navigator.device' nesnesini ve PhoneGap'in nasıl artırıldığını açıklar ...? –

+0

O (http://docs.phonegap.com/en/1.3.0/phonegap_media_capture_capture.md.html#capture.captureAudio) – Mrchief

+0

ses yakalama işlevi simülatörü mevcut olmalı [buradan] var? Aygıtta sınayın ve aynı sonucu alıp almadığınızı görün – sciritai

cevap

2

üzerinde çalışır. Tamam, bu şimdiye kadar yaptığım en karmaşık çözüm!

Android için JS iOS için bundan daha farklı olduğunu. Dosyalar aynı olsa da - phonegap-x.x.x.js. Her diğer mobil platform için farklı olacağını tahmin etmenin hiçbir anlamı yok.

Senin farklı platform için farklı JS olması gerekir anlıyorum, ama bu nasıl bir yere söz hakkında? Ben Android klasörden JS sürüklenen kez

, her şey yerine oturdu. cevap için bu soruya

Teşekkür: deviceready won't fire in Phonegap 1.0.0 on Android

+0

Hayatımın 30 dakikasını harcadım, sonra bu yazıyı buldum. Ne aptal :) Teşekkürler! –

0

www dizinindeki phonegap.js dosya adı index.html referansı uyuyor mu? Phonegap.js'yi phonegap-1.3.0.js olarak değiştirdiğimde, the API docs numaralı telefonun tam örneği, HTC Evo

+0

Evet öyle. Ayrıca, iOS'ta çalışır (iOS ve Android sürümü arasında kod değişikliği olmaz). – Mrchief

+0

Belki de –

+0

sayısını gösteren tek bir html dosyası göndermelisiniz. Merhaba dünya örneğini alabilir, bu satırı kopyalamak için düğmeye tıklayıp sorunu göreceksiniz. – Mrchief

İlgili konular