Cordova Firefoxos проблема веб-доступа

Я пытаюсь перенести мое корректно работающее (в iOS, Android) приложение Cordova на Firefoxos.

Симулятор запускается правильно, и его браузер может загружать веб-страницы, НО мое приложение не может загружать данные из Интернета.

Глядя на консоль, я вижу следующие ошибки:

"JavaScript error: app://aa2a2c24-a8d6-447d-92da-4f2e9af65661/plugins/org.apache.cordova.network-information/src/firefoxos/NetworkProxy.js, line 33: missing : after property id" simulator-process.js:44
"JavaScript error: app://aa2a2c24-a8d6-447d-92da-4f2e9af65661/cordova.js, line 1120: Module org.apache.cordova.network-information.NetworkProxy does not exist."

Любое предложение? Благодарю.

Кордова 3.5.0

Симулятор FirfeoxOS 1.3 и FirfeoxOS 1.4

1 ответ

После некоторого исследования я выяснил проблемы

1- Несмотря на обновление Cordova до 3.5.0, я должен помнить, что плагины не обновляются автоматически.

Чтобы обновить код плагина для Firefoxos, я снова добавил тот же плагин, удалил платформу Firefoxos и заново установил его. В этот момент ошибки JavaScript исчезли

2- Тогда вызов ajax все еще не был доступен из-за разрешений. Чтобы убедиться, что у вас есть вызов ajax, вы должны поместить в свой manifest.webapp следующий код

 "type": "privileged",
  "permissions": {
    "systemXHR": { "description": "Required for AJAX calls in app"}
  }

Требуются оба типа и разрешения

3- Наконец, вы должны убедиться, что использование вызовов ajax

mozSystem: true

Специально для jquery, вы можете поместить что-то вроде следующего поверх вашего файла js:

 if (device.platform == 'firefoxos') { 
  $.ajaxPrefilter( function( options ) {
  if ( options.firefoxOS ) {
    options.xhr = function() {
      return new window.XMLHttpRequest( {
    mozSystem: true
      } );
    }
  }
} );

$.ajaxSetup( {
  firefoxOS: true
} );

}

Теперь я могу правильно обрабатывать вызовы ajax.

Другие вопросы по тегам