Phonegap - обновление до 3.0 проблем с функциями API
Работа на Windows с Phonegap 3.0, платформой Android, отладка в Eclipse.
Мне удалось собрать мое старое приложение, но я столкнулся с новой проблемой при попытке использовать функцию, которая теперь является плагином.
Я добавил все нужные мне плагины с помощью инструмента CLI и добавил данные "feature" в файл config.xml, поэтому я предполагаю, что они доступны для вызова. Разрешения также задаются в файле манифеста.
Передача файла
Я вижу, что пример кода API передачи файлов не изменился для 3.0, поэтому я оставил вызов в своем коде таким же. Таким образом, файл будет загружен, но затем я получаю ошибку, которая приводит к сбою приложения
"
D/CordovaLog(12883): file:///android_asset/www/phonegap.js: Line 932 : Uncaught Error: Error calling method on NPObject!
"
Я сделал некоторые поиски этой ошибки, и, кажется, нет стандартного решения?
Возможно, есть новый способ вызова функций, которые находятся внутри плагинов? Потому что я не могу воспроизвести аудиофайл без ошибок. Звуковой файл будет воспроизводиться, но вызовет ошибки.
"
09-01 20:13:17.274: W/PluginManager(13279): THREAD WARNING: exec() call to Media.startPlayingAudio blocked the main thread for 23ms. Plugin should use CordovaInterface.getThreadPool().
"
Я перечитал медиа-API и не упомянул пул потоков. Я делаю все свое программирование в JavaScript.
По сути, где бы я ни использовал функцию плагина, в приложении возникают серьезные ошибки. Я попытался использовать функцию записи звука в моем ранее работающем приложении, и когда я вызываю остановку записи, она выдает ошибку
"
09-01 20:10:04.206: E/AudioPlayer(13279): FAILED renaming /mnt/sdcard/tmprecording.3gp to /sdsub/myapp/Recorded/myRecording.amr
"
Я протестировал API передачи файлов снова через мою функцию удаления файлов, и это также не удалось
"
09-01 20:16:00.884: W/PluginManager(13279): THREAD WARNING: exec() call to File.remove blocked the main thread for 19ms. Plugin should use CordovaInterface.getThreadPool().
"
кажется, что сущность того, как работают функции, изменилась, но нигде не документирована. Вызовы API кажутся неизменными по сравнению со старыми версиями, просто то, как вы устанавливаете функции API, отличается, но я следовал этому руководству и установил их.
Есть ли новое руководство по API, которое я пропустил? потому что документация Phonegap API не изменилась для того, как эти функции называются в 3.0.
Благодарю.
мой конфигурационный файл
<feature name="App">
<param name="android-package" value="org.apache.cordova.App" />
</feature>
<feature name="NetworkStatus">
<param name="android-package" value="org.apache.cordova.networkinformation.NetworkManager" />
</feature>
<feature name="File">
<param name="android-package" value="org.apache.cordova.file.FileUtils" />
</feature>
<feature name="FileTransfer">
<param name="android-package" value="org.apache.cordova.filetransfer.FileTransfer" />
</feature>
<feature name="Media">
<param name="android-package" value="org.apache.cordova.media.AudioHandler" />
</feature>
<feature name="Notification">
<param name="android-package" value="org.apache.cordova.dialogs.Notification" />
</feature>
<feature name="SplashScreen">
<param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" />
</feature>
<feature name="Compass">
<param name="android-package" value="org.apache.cordova.deviceorientation.CompassListener" />
</feature>
мой файл манифеста
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.INTERNET" />
1 ответ
Пока вы обновляете свое приложение, phonegap.js
Файл должен поддерживать весь функциональный скрипт. Вы можете использовать подходящую версию файла JavaScript, как phonegap.0.9.5.js
или более высокая версия тоже. Это может быть связано с тем, что phonegap.js не содержит необходимых функций, необходимых для приложения. Если вы видите API, у них есть телефонная щель.XYZjs . так что вы можете попробовать выше