Pebble и firebase js не работают вместе на IOS

Я работаю над приложением для часов Pebble, которое использует Firebase.js. Мне удалось запустить Firebase.js на Android (включив его в файл pebble-js-app.js, аналогичный https://github.com/tyhoff/clock), но не повезло с IOS. Я получил эту ошибку, когда просто включил Firebase.js в свой файл pebble-js-app.js:

TypeError: undefined не является функцией (оценка 'window.addEventListener ("load", c,! 1)')

пользовательский агент на IOS (не работает): Ejecta/1.4 (iPhone6,1; OS 8.4.1)

пользовательский агент на Android (работает): userAgent — Mozilla/5.0 (Linux; Android 5.0.1; SGH-I337M Build/LRX22C; wv) AppleWebKit/537.36 (KHTML, например Gecko) Версия/4.0 Chrome/43.0.2357.121 Mobile Safari/ 537,36

Кажется, Firebase вызывает что-то в браузере, что не поддерживается. Есть ли обходной путь для этого?


person user3070974    schedule 26.08.2015    source источник
comment
Вы смотрели на это решение: stackoverflow.com/questions/29833443/?   -  person sarfata    schedule 28.08.2015


Ответы (1)


Я ничего не знаю о среде Pebble, и у меня нет ее для тестирования, но похоже, что это не полнофункциональный браузер, и в его объекте window отсутствует метод addEventListener? Это заставляет меня подозревать, что, к сожалению, вам, возможно, не очень повезло заставить Firebase работать. :-/

Вы можете попробовать добавить это в начало вашего приложения (перед вызовом new Firebase):

Firebase.INTERNAL.forceWebSockets();

Это позволит избежать пути кода, который пытается подключить прослушиватель событий «загрузить», но это будет работать, только если Pebble поддерживает WebSockets.

В качестве альтернативы вы можете попробовать "полифилл" window.addEventListener и написать фиктивную реализацию, которая просто немедленно вызывает обратный вызов или что-то в этом роде. Но я был бы удивлен, если бы это успешно заставило Firebase работать.

person Michael Lehenbauer    schedule 27.08.2015